kernel-ark/arch/mips/pci
Gabor Juhos 6015a856f1 MIPS: ath79: add a workaround for a PCI controller bug in AR7240 SoCs
The PCI controller of the AR724X SoCs has a hardware
bag. If the BAR0 register of the PCI device is set to
the proper base address, the memory address space of
the device is not accessible.

When the device driver tries to access the memory
address space of the PCI device, it leads to data
bus error, similiar to this:

Data bus error, epc == 801f69a0, ra == 801f698c
Oops[#1]:
Cpu 0
$ 0   : 00000000 00000061 deadbeef 000000ff
$ 4   : 00000000 000000ff 00000014 00000000
$ 8   : ff000000 fffffffc 00000000 00000000
$12   : 000001f5 00000006 00000000 6e637920
$16   : 81ca4000 81ca0260 81ca4000 804d70f0
$20   : fffffff4 0000002b 803ad4c4 00000000
$24   : 00000003 00000000
$28   : 81c20000 81c21c60 00000000 801f698c
Hi    : 00000000
Lo    : 00000000
epc   : 801f69a0 ath9k_hw_init+0xd0/0xa70
    Not tainted
ra    : 801f698c ath9k_hw_init+0xbc/0xa70
Status: 1000c103    KERNEL EXL IE
Cause : 1080001c
PrId  : 00019374 (MIPS 24Kc)
Modules linked in:
Process swapper (pid: 1, threadinfo=81c20000, task=81c18000, tls=00000000)
Stack : 00000000 00000000 00000000 00000000 81c21c78 81ca0260 00000000 804d70f0
        81ca0260 81c21cc0 81ca0e80 81ca0260 81ca4000 804d70f0 fffffff4 0000002b
        803ad4c4 00000000 00000000 801e3ae8 81c9d080 81ca0e80 b0000000 800b9b9c
        00000008 81c9d000 8031aeb0 802d38a0 00000000 81c14c00 81c14c60 00000000
        81ca0e80 81ca0260 b0000000 801f08a4 81c9c820 81c21d48 81c9c820 80144320
        ...
Call Trace:
[<801f69a0>] ath9k_hw_init+0xd0/0xa70
[<801e3ae8>] ath9k_init_device+0x174/0x680
[<801f08a4>] ath_pci_probe+0x27c/0x380
[<8019e490>] pci_device_probe+0x74/0x9c
[<801bfadc>] driver_probe_device+0x9c/0x1b4
[<801bfcb0>] __driver_attach+0xbc/0xc4
[<801bea0c>] bus_for_each_dev+0x5c/0x98
[<801bf394>] bus_add_driver+0x1d0/0x2a4
[<801c0364>] driver_register+0x8c/0x16c
[<8019e72c>] __pci_register_driver+0x4c/0xe4
[<803d3d40>] ath9k_init+0x3c/0x88
[<80060930>] do_one_initcall+0x3c/0x1cc
[<803c297c>] kernel_init+0xa4/0x138
[<80063c04>] kernel_thread_helper+0x10/0x18

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/3494/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2012-05-15 17:49:03 +02:00
..
fixup-bcm63xx.c MIPS: BCM63xx: Add support for the Broadcom BCM63xx family of SOCs. 2009-09-17 20:07:52 +02:00
fixup-capcella.c Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
fixup-cobalt.c mips/PCI: get rid of device resource fixups 2012-02-23 20:19:02 -07:00
fixup-emma2rh.c MIPS: Eleminate filenames from comments 2009-08-03 17:52:40 +01:00
fixup-fuloong2e.c Fix typo configue => configure in comments 2010-09-23 11:46:50 +02:00
fixup-ip32.c
fixup-jmr3927.c
fixup-lemote2f.c MIPS: Loongson: Lemote-2F: USB: Not Emulate Non-Posted Writes 2010-02-27 12:53:09 +01:00
fixup-malta.c
fixup-mpc30x.c Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
fixup-pmcmsp.c
fixup-pnx8550.c
fixup-rbtx4927.c
fixup-rbtx4938.c
fixup-rc32434.c MIPS: RB532: Fix build error 2008-10-27 16:18:26 +00:00
fixup-sb1250.c MIPS: Eleminate filenames from comments 2009-08-03 17:52:40 +01:00
fixup-sni.c
fixup-tb0219.c Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
fixup-tb0226.c Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
fixup-tb0287.c Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
fixup-wrppmc.c
fixup-yosemite.c
Makefile MIPS: ath79: rename pci-ath724x.c to make it reflect the real SoC name 2012-05-15 17:49:01 +02:00
msi-octeon.c MIPS: Fix up inconsistency in panic() string argument. 2011-12-07 22:01:45 +00:00
ops-bcm63xx.c MIPS: BCM63xx: Add support for the Broadcom BCM63xx family of SOCs. 2009-09-17 20:07:52 +02:00
ops-bonito64.c MIPS: Bonito64: Make Loongson independent from Bonito64 code. 2009-12-17 01:57:06 +00:00
ops-bridge.c
ops-emma2rh.c MIPS: Eleminate filenames from comments 2009-08-03 17:52:40 +01:00
ops-gt64xxx_pci0.c
ops-lantiq.c MIPS: Lantiq: Add PCI controller support. 2011-05-19 09:55:42 +01:00
ops-loongson2.c MIPS: Lemote 2F: Ensure atomic execution of _rdmsr and _wrmsr 2010-04-12 17:26:12 +01:00
ops-mace.c
ops-msc.c
ops-nile4.c MIPS: NILE4: Remove useless inclusion of GT64120 header. 2011-07-20 23:12:09 +01:00
ops-pmcmsp.c MIPS: irq: Remove IRQF_DISABLED 2011-12-07 22:03:45 +00:00
ops-pnx8550.c
ops-rc32434.c
ops-sni.c
ops-titan-ht.c MIPS: PCI: RM9000 checkpatch cleanup 2010-08-05 13:25:44 +01:00
ops-titan.c
ops-tx3927.c MIPS: irq: Remove IRQF_DISABLED 2011-12-07 22:03:45 +00:00
ops-tx4927.c MIPS: Add missing #inclusions of <linux/irq.h> 2010-10-07 14:08:54 +01:00
ops-vr41xx.c Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
pci-alchemy.c MIPS: Fix Jazz 64-bit build error. 2011-12-07 22:01:45 +00:00
pci-ar724x.c MIPS: ath79: add a workaround for a PCI controller bug in AR7240 SoCs 2012-05-15 17:49:03 +02:00
pci-bcm47xx.c bcma: add PCIe host controller 2012-02-06 14:53:04 -05:00
pci-bcm63xx.c MIPS: BCM63XX: Add support for bcm6368 CPU. 2011-12-07 22:03:04 +00:00
pci-bcm63xx.h MIPS: BCM63xx: Add support for the Broadcom BCM63xx family of SOCs. 2009-09-17 20:07:52 +02:00
pci-bcm1480.c mips/PCI: replace pci_probe_only with pci_flags 2012-02-23 20:18:57 -07:00
pci-bcm1480ht.c MIPS: Remove useless zero initializations. 2009-09-17 20:07:51 +02:00
pci-emma2rh.c MIPS: Eleminate filenames from comments 2009-08-03 17:52:40 +01:00
pci-ip27.c mips/PCI: replace pci_probe_only with pci_flags 2012-02-23 20:18:57 -07:00
pci-ip32.c
pci-lantiq.c mips/PCI: replace pci_probe_only with pci_flags 2012-02-23 20:18:57 -07:00
pci-lantiq.h MIPS: Lantiq: Add PCI controller support. 2011-05-19 09:55:42 +01:00
pci-lasat.c
pci-octeon.c MIPS: Octeon: Update PCI Latency timer and enable more error reporting. 2011-12-08 12:26:28 +00:00
pci-rc32434.c MIPS: RC32434: Fix PCI build error 2011-09-21 17:51:57 +02:00
pci-sb1250.c mips/PCI: replace pci_probe_only with pci_flags 2012-02-23 20:18:57 -07:00
pci-tx4927.c MIPS: irq: Remove IRQF_DISABLED 2011-12-07 22:03:45 +00:00
pci-tx4938.c MIPS: irq: Remove IRQF_DISABLED 2011-12-07 22:03:45 +00:00
pci-tx4939.c MIPS: irq: Remove IRQF_DISABLED 2011-12-07 22:03:45 +00:00
pci-vr41xx.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
pci-vr41xx.h Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
pci-xlr.c mips/PCI: replace pci_probe_only with pci_flags 2012-02-23 20:18:57 -07:00
pci-yosemite.c MIPS: Set io_map_base for several PCI bridges lacking it 2010-07-26 19:08:19 +01:00
pci.c mips/PCI: get rid of device resource fixups 2012-02-23 20:19:02 -07:00
pcie-octeon.c MIPS: Octeon: Add support for OCTEON II PCIe 2011-12-08 12:32:57 +00:00