OpenWrt – Diff between revs 2 and 3
?pathlinks?
Rev 2 | Rev 3 | |||
---|---|---|---|---|
Line 1... | Line 1... | |||
1 | --- a/arch/arm/mach-cns3xxx/pcie.c |
1 | --- a/arch/arm/mach-cns3xxx/pcie.c |
|
2 | +++ b/arch/arm/mach-cns3xxx/pcie.c |
2 | +++ b/arch/arm/mach-cns3xxx/pcie.c |
|
3 | @@ -86,6 +86,79 @@ static void __iomem *cns3xxx_pci_map_bus |
3 | @@ -86,6 +86,79 @@ static void __iomem *cns3xxx_pci_map_bus |
|
4 | return base + where + (devfn << 12); |
4 | return base + (where & 0xffc) + (devfn << 12); |
|
5 | } |
5 | } |
|
Line 6... | Line 6... | |||
6 | |
6 | |
|
7 | +static inline int check_master_abort(struct pci_bus *bus, unsigned int devfn, int where) |
7 | +static inline int check_master_abort(struct pci_bus *bus, unsigned int devfn, int where) |
|
8 | +{ |
8 | +{ |
|
Line 80... | Line 80... | |||
80 | static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn, |
80 | static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn, |
|
81 | int where, int size, u32 *val) |
81 | int where, int size, u32 *val) |
|
82 | { |
82 | { |
|
83 | @@ -95,6 +168,11 @@ static int cns3xxx_pci_read_config(struc |
83 | @@ -95,6 +168,11 @@ static int cns3xxx_pci_read_config(struc |
|
Line 84... | Line 84... | |||
84 | |
84 | |
|
Line 85... | Line 85... | |||
85 | ret = pci_generic_config_read(bus, devfn, where, size, val); |
85 | ret = pci_generic_config_read32(bus, devfn, where, size, val); |
|
86 | |
86 | |
|
87 | + if (check_master_abort(bus, devfn, where)) { |
87 | + if (check_master_abort(bus, devfn, where)) { |
|
88 | + printk(KERN_ERR "pci error: %04d:%02x:%02x.%02x %02x(%d)= master_abort on read\n", pci_domain_nr(bus), bus->number, PCI_SLOT(devfn), PCI_FUNC(devfn), where, size); |
88 | + printk(KERN_ERR "pci error: %04d:%02x:%02x.%02x %02x(%d)= master_abort on read\n", pci_domain_nr(bus), bus->number, PCI_SLOT(devfn), PCI_FUNC(devfn), where, size); |