Change pci_raw_ops to pci_raw_read/write
We want to allow different implementations of pci_raw_ops for standard and extended config space on x86. Rather than clutter generic code with knowledge of this, we make pci_raw_ops private to x86 and use it to implement the new raw interface -- raw_pci_read() and raw_pci_write(). Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
a0ca990960
commit
b6ce068a12
@@ -26,16 +26,37 @@ int pcibios_last_bus = -1;
|
||||
unsigned long pirq_table_addr;
|
||||
struct pci_bus *pci_root_bus;
|
||||
struct pci_raw_ops *raw_pci_ops;
|
||||
struct pci_raw_ops *raw_pci_ext_ops;
|
||||
|
||||
int raw_pci_read(unsigned int domain, unsigned int bus, unsigned int devfn,
|
||||
int reg, int len, u32 *val)
|
||||
{
|
||||
if (reg < 256 && raw_pci_ops)
|
||||
return raw_pci_ops->read(domain, bus, devfn, reg, len, val);
|
||||
if (raw_pci_ext_ops)
|
||||
return raw_pci_ext_ops->read(domain, bus, devfn, reg, len, val);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
int raw_pci_write(unsigned int domain, unsigned int bus, unsigned int devfn,
|
||||
int reg, int len, u32 val)
|
||||
{
|
||||
if (reg < 256 && raw_pci_ops)
|
||||
return raw_pci_ops->write(domain, bus, devfn, reg, len, val);
|
||||
if (raw_pci_ext_ops)
|
||||
return raw_pci_ext_ops->write(domain, bus, devfn, reg, len, val);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static int pci_read(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 *value)
|
||||
{
|
||||
return raw_pci_ops->read(pci_domain_nr(bus), bus->number,
|
||||
return raw_pci_read(pci_domain_nr(bus), bus->number,
|
||||
devfn, where, size, value);
|
||||
}
|
||||
|
||||
static int pci_write(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 value)
|
||||
{
|
||||
return raw_pci_ops->write(pci_domain_nr(bus), bus->number,
|
||||
return raw_pci_write(pci_domain_nr(bus), bus->number,
|
||||
devfn, where, size, value);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user