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:
parent
899110fe4e
commit
8b45499ccb
2 changed files with 14 additions and 10 deletions
|
@ -551,13 +551,13 @@ int ssb_pcicore_dev_irqvecs_enable(struct ssb_pcicore *pc,
|
|||
might_sleep_if(pdev->id.coreid != SSB_DEV_PCI);
|
||||
|
||||
/* Enable interrupts for this device. */
|
||||
if (bus->host_pci &&
|
||||
((pdev->id.revision >= 6) || (pdev->id.coreid == SSB_DEV_PCIE))) {
|
||||
if ((pdev->id.revision >= 6) || (pdev->id.coreid == SSB_DEV_PCIE)) {
|
||||
u32 coremask;
|
||||
|
||||
/* Calculate the "coremask" for the device. */
|
||||
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);
|
||||
if (err)
|
||||
goto out;
|
||||
|
|
|
@ -269,7 +269,8 @@ struct ssb_bus {
|
|||
|
||||
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;
|
||||
union {
|
||||
/* 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. */
|
||||
spinlock_t bar_lock;
|
||||
|
||||
/* The bus this backplane is running on. */
|
||||
/* The host-bus this backplane is running on. */
|
||||
enum ssb_bustype bustype;
|
||||
/* Pointer to the PCI bus (only valid if bustype == SSB_BUSTYPE_PCI). */
|
||||
struct pci_dev *host_pci;
|
||||
/* Pointer to the PCMCIA device (only if bustype == SSB_BUSTYPE_PCMCIA). */
|
||||
struct pcmcia_device *host_pcmcia;
|
||||
/* Pointer to the SDIO device (only if bustype == SSB_BUSTYPE_SDIO). */
|
||||
struct sdio_func *host_sdio;
|
||||
/* 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). */
|
||||
struct pci_dev *host_pci;
|
||||
/* Pointer to the PCMCIA device (only if bustype == SSB_BUSTYPE_PCMCIA). */
|
||||
struct pcmcia_device *host_pcmcia;
|
||||
/* Pointer to the SDIO device (only if bustype == SSB_BUSTYPE_SDIO). */
|
||||
struct sdio_func *host_sdio;
|
||||
};
|
||||
|
||||
/* See enum ssb_quirks */
|
||||
unsigned int quirks;
|
||||
|
|
Loading…
Reference in a new issue