[POWERPC] Pass the pci_controller into pci_exclude_device
There are times that we need to know which controller we are on to decide how to exclude devices properly. We now pass the pci_controller that we are going to use down to the pci_exclude_device function. This will greatly simplify being able to exclude the PHBs in multiple controller setups. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
@@ -5,7 +5,6 @@ endif
|
||||
mpic-msi-obj-$(CONFIG_PCI_MSI) += mpic_msi.o mpic_u3msi.o
|
||||
obj-$(CONFIG_MPIC) += mpic.o $(mpic-msi-obj-y)
|
||||
|
||||
obj-$(CONFIG_PPC_INDIRECT_PCI) += indirect_pci.o
|
||||
obj-$(CONFIG_PPC_MPC106) += grackle.o
|
||||
obj-$(CONFIG_PPC_DCR) += dcr.o
|
||||
obj-$(CONFIG_PPC_DCR_NATIVE) += dcr-low.o
|
||||
@@ -25,6 +24,7 @@ obj-$(CONFIG_PM) += timer.o
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_PPC_MERGE),y)
|
||||
obj-$(CONFIG_PPC_INDIRECT_PCI) += indirect_pci.o
|
||||
obj-$(CONFIG_PPC_I8259) += i8259.o
|
||||
obj-$(CONFIG_PPC_83xx) += ipic.o
|
||||
obj-$(CONFIG_4xx) += uic.o
|
||||
|
@@ -39,7 +39,7 @@ indirect_read_config_pcie(struct pci_bus *bus, unsigned int devfn, int offset,
|
||||
u32 temp;
|
||||
|
||||
if (ppc_md.pci_exclude_device)
|
||||
if (ppc_md.pci_exclude_device(bus->number, devfn))
|
||||
if (ppc_md.pci_exclude_device(hose, bus->number, devfn))
|
||||
return PCIBIOS_DEVICE_NOT_FOUND;
|
||||
|
||||
/* Possible artifact of CDCpp50937 needs further investigation */
|
||||
@@ -90,7 +90,7 @@ indirect_write_config_pcie(struct pci_bus *bus, unsigned int devfn, int offset,
|
||||
u32 temp;
|
||||
|
||||
if (ppc_md.pci_exclude_device)
|
||||
if (ppc_md.pci_exclude_device(bus->number, devfn))
|
||||
if (ppc_md.pci_exclude_device(hose, bus->number, devfn))
|
||||
return PCIBIOS_DEVICE_NOT_FOUND;
|
||||
|
||||
/* Possible artifact of CDCpp50937 needs further investigation */
|
||||
|
@@ -35,14 +35,14 @@ indirect_read_config(struct pci_bus *bus, unsigned int devfn, int offset,
|
||||
u8 cfg_type = 0;
|
||||
|
||||
if (ppc_md.pci_exclude_device)
|
||||
if (ppc_md.pci_exclude_device(bus->number, devfn))
|
||||
if (ppc_md.pci_exclude_device(hose, bus->number, devfn))
|
||||
return PCIBIOS_DEVICE_NOT_FOUND;
|
||||
|
||||
if (hose->set_cfg_type)
|
||||
if (bus->number != hose->first_busno)
|
||||
cfg_type = 1;
|
||||
|
||||
PCI_CFG_OUT(hose->cfg_addr,
|
||||
PCI_CFG_OUT(hose->cfg_addr,
|
||||
(0x80000000 | ((bus->number - hose->bus_offset) << 16)
|
||||
| (devfn << 8) | ((offset & 0xfc) | cfg_type)));
|
||||
|
||||
@@ -74,14 +74,14 @@ indirect_write_config(struct pci_bus *bus, unsigned int devfn, int offset,
|
||||
u8 cfg_type = 0;
|
||||
|
||||
if (ppc_md.pci_exclude_device)
|
||||
if (ppc_md.pci_exclude_device(bus->number, devfn))
|
||||
if (ppc_md.pci_exclude_device(hose, bus->number, devfn))
|
||||
return PCIBIOS_DEVICE_NOT_FOUND;
|
||||
|
||||
if (hose->set_cfg_type)
|
||||
if (bus->number != hose->first_busno)
|
||||
cfg_type = 1;
|
||||
|
||||
PCI_CFG_OUT(hose->cfg_addr,
|
||||
PCI_CFG_OUT(hose->cfg_addr,
|
||||
(0x80000000 | ((bus->number - hose->bus_offset) << 16)
|
||||
| (devfn << 8) | ((offset & 0xfc) | cfg_type)));
|
||||
|
||||
|
@@ -64,9 +64,10 @@ tsi108_direct_write_config(struct pci_bus *bus, unsigned int devfunc,
|
||||
int offset, int len, u32 val)
|
||||
{
|
||||
volatile unsigned char *cfg_addr;
|
||||
struct pci_controller *hose = bus->sysdata;
|
||||
|
||||
if (ppc_md.pci_exclude_device)
|
||||
if (ppc_md.pci_exclude_device(bus->number, devfunc))
|
||||
if (ppc_md.pci_exclude_device(hose, bus->number, devfunc))
|
||||
return PCIBIOS_DEVICE_NOT_FOUND;
|
||||
|
||||
cfg_addr = (unsigned char *)(tsi_mk_config_addr(bus->number,
|
||||
@@ -149,10 +150,11 @@ tsi108_direct_read_config(struct pci_bus *bus, unsigned int devfn, int offset,
|
||||
int len, u32 * val)
|
||||
{
|
||||
volatile unsigned char *cfg_addr;
|
||||
struct pci_controller *hose = bus->sysdata;
|
||||
u32 temp;
|
||||
|
||||
if (ppc_md.pci_exclude_device)
|
||||
if (ppc_md.pci_exclude_device(bus->number, devfn))
|
||||
if (ppc_md.pci_exclude_device(hose, bus->number, devfn))
|
||||
return PCIBIOS_DEVICE_NOT_FOUND;
|
||||
|
||||
cfg_addr = (unsigned char *)(tsi_mk_config_addr(bus->number,
|
||||
|
Reference in New Issue
Block a user