powerpc/fsl_pci: Convert PCI to use generic config accessors
Convert the fsl_pci driver to use the generic config access functions. This changes accesses from (in|out)_(8|le16|le32) to readX/writeX variants. I believe these should be equivalent for PCI config space accesses, but confirmation would be nice. Signed-off-by: Rob Herring <robh@kernel.org> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> CC: Benjamin Herrenschmidt <benh@kernel.crashing.org> CC: Paul Mackerras <paulus@samba.org> CC: Michael Ellerman <mpe@ellerman.id.au> CC: linuxppc-dev@lists.ozlabs.org
This commit is contained in:
Родитель
8d6bd97dc0
Коммит
933d275f1c
|
@ -645,61 +645,21 @@ mapped:
|
|||
return pcie->cfg_type1 + offset;
|
||||
}
|
||||
|
||||
static int mpc83xx_pcie_read_config(struct pci_bus *bus, unsigned int devfn,
|
||||
int offset, int len, u32 *val)
|
||||
{
|
||||
void __iomem *cfg_addr;
|
||||
|
||||
cfg_addr = mpc83xx_pcie_remap_cfg(bus, devfn, offset);
|
||||
if (!cfg_addr)
|
||||
return PCIBIOS_DEVICE_NOT_FOUND;
|
||||
|
||||
switch (len) {
|
||||
case 1:
|
||||
*val = in_8(cfg_addr);
|
||||
break;
|
||||
case 2:
|
||||
*val = in_le16(cfg_addr);
|
||||
break;
|
||||
default:
|
||||
*val = in_le32(cfg_addr);
|
||||
break;
|
||||
}
|
||||
|
||||
return PCIBIOS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
static int mpc83xx_pcie_write_config(struct pci_bus *bus, unsigned int devfn,
|
||||
int offset, int len, u32 val)
|
||||
{
|
||||
struct pci_controller *hose = pci_bus_to_host(bus);
|
||||
void __iomem *cfg_addr;
|
||||
|
||||
cfg_addr = mpc83xx_pcie_remap_cfg(bus, devfn, offset);
|
||||
if (!cfg_addr)
|
||||
return PCIBIOS_DEVICE_NOT_FOUND;
|
||||
|
||||
/* PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS */
|
||||
if (offset == PCI_PRIMARY_BUS && bus->number == hose->first_busno)
|
||||
val &= 0xffffff00;
|
||||
|
||||
switch (len) {
|
||||
case 1:
|
||||
out_8(cfg_addr, val);
|
||||
break;
|
||||
case 2:
|
||||
out_le16(cfg_addr, val);
|
||||
break;
|
||||
default:
|
||||
out_le32(cfg_addr, val);
|
||||
break;
|
||||
}
|
||||
|
||||
return PCIBIOS_SUCCESSFUL;
|
||||
return pci_generic_config_write(bus, devfn, offset, len, val);
|
||||
}
|
||||
|
||||
static struct pci_ops mpc83xx_pcie_ops = {
|
||||
.read = mpc83xx_pcie_read_config,
|
||||
.map_bus = mpc83xx_pcie_remap_cfg,
|
||||
.read = pci_generic_config_read,
|
||||
.write = mpc83xx_pcie_write_config,
|
||||
};
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче