ssb: Put host pointers into a union
This slightly shrinks the structure. Signed-off-by: Michael Buesch <mb@bu3sch.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
899110fe4e
commit
8b45499ccb
@@ -551,13 +551,13 @@ int ssb_pcicore_dev_irqvecs_enable(struct ssb_pcicore *pc,
|
|||||||
might_sleep_if(pdev->id.coreid != SSB_DEV_PCI);
|
might_sleep_if(pdev->id.coreid != SSB_DEV_PCI);
|
||||||
|
|
||||||
/* Enable interrupts for this device. */
|
/* Enable interrupts for this device. */
|
||||||
if (bus->host_pci &&
|
if ((pdev->id.revision >= 6) || (pdev->id.coreid == SSB_DEV_PCIE)) {
|
||||||
((pdev->id.revision >= 6) || (pdev->id.coreid == SSB_DEV_PCIE))) {
|
|
||||||
u32 coremask;
|
u32 coremask;
|
||||||
|
|
||||||
/* Calculate the "coremask" for the device. */
|
/* Calculate the "coremask" for the device. */
|
||||||
coremask = (1 << dev->core_index);
|
coremask = (1 << dev->core_index);
|
||||||
|
|
||||||
|
SSB_WARN_ON(bus->bustype != SSB_BUSTYPE_PCI);
|
||||||
err = pci_read_config_dword(bus->host_pci, SSB_PCI_IRQMASK, &tmp);
|
err = pci_read_config_dword(bus->host_pci, SSB_PCI_IRQMASK, &tmp);
|
||||||
if (err)
|
if (err)
|
||||||
goto out;
|
goto out;
|
||||||
|
@@ -269,7 +269,8 @@ struct ssb_bus {
|
|||||||
|
|
||||||
const struct ssb_bus_ops *ops;
|
const struct ssb_bus_ops *ops;
|
||||||
|
|
||||||
/* The core in the basic address register window. (PCI bus only) */
|
/* The core currently mapped into the MMIO window.
|
||||||
|
* Not valid on all host-buses. So don't use outside of SSB. */
|
||||||
struct ssb_device *mapped_device;
|
struct ssb_device *mapped_device;
|
||||||
union {
|
union {
|
||||||
/* Currently mapped PCMCIA segment. (bustype == SSB_BUSTYPE_PCMCIA only) */
|
/* Currently mapped PCMCIA segment. (bustype == SSB_BUSTYPE_PCMCIA only) */
|
||||||
@@ -281,14 +282,17 @@ struct ssb_bus {
|
|||||||
* On PCMCIA-host busses this is used to protect the whole MMIO access. */
|
* On PCMCIA-host busses this is used to protect the whole MMIO access. */
|
||||||
spinlock_t bar_lock;
|
spinlock_t bar_lock;
|
||||||
|
|
||||||
/* The bus this backplane is running on. */
|
/* The host-bus this backplane is running on. */
|
||||||
enum ssb_bustype bustype;
|
enum ssb_bustype bustype;
|
||||||
|
/* Pointers to the host-bus. Check bustype before using any of these pointers. */
|
||||||
|
union {
|
||||||
/* Pointer to the PCI bus (only valid if bustype == SSB_BUSTYPE_PCI). */
|
/* Pointer to the PCI bus (only valid if bustype == SSB_BUSTYPE_PCI). */
|
||||||
struct pci_dev *host_pci;
|
struct pci_dev *host_pci;
|
||||||
/* Pointer to the PCMCIA device (only if bustype == SSB_BUSTYPE_PCMCIA). */
|
/* Pointer to the PCMCIA device (only if bustype == SSB_BUSTYPE_PCMCIA). */
|
||||||
struct pcmcia_device *host_pcmcia;
|
struct pcmcia_device *host_pcmcia;
|
||||||
/* Pointer to the SDIO device (only if bustype == SSB_BUSTYPE_SDIO). */
|
/* Pointer to the SDIO device (only if bustype == SSB_BUSTYPE_SDIO). */
|
||||||
struct sdio_func *host_sdio;
|
struct sdio_func *host_sdio;
|
||||||
|
};
|
||||||
|
|
||||||
/* See enum ssb_quirks */
|
/* See enum ssb_quirks */
|
||||||
unsigned int quirks;
|
unsigned int quirks;
|
||||||
|
Reference in New Issue
Block a user