diff options
author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2006-12-19 21:41:04 +0000 |
---|---|---|
committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2006-12-19 21:41:04 +0000 |
commit | d94f1f903602e47db2ea0ec6458627ecddb1bd49 (patch) | |
tree | 558be8f3e03928c0518d80a9a58818ae51eb2a18 /target/linux/rb532-2.6/patches/210-pci_fixes.patch | |
parent | 427f5c53f9815b00374317554fc2a73a9718b151 (diff) |
add a better pci fix for rb532
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5861 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/rb532-2.6/patches/210-pci_fixes.patch')
-rw-r--r-- | target/linux/rb532-2.6/patches/210-pci_fixes.patch | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/target/linux/rb532-2.6/patches/210-pci_fixes.patch b/target/linux/rb532-2.6/patches/210-pci_fixes.patch deleted file mode 100644 index 02cd2f063..000000000 --- a/target/linux/rb532-2.6/patches/210-pci_fixes.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff -urN linux.old/drivers/pci/probe.c linux.dev/drivers/pci/probe.c ---- linux.old/drivers/pci/probe.c 2006-06-08 20:21:20.000000000 +0200 -+++ linux.dev/drivers/pci/probe.c 2006-06-08 20:19:40.000000000 +0200 -@@ -760,15 +760,22 @@ - u32 l; - u8 hdr_type; - int delay = 1; -- -- if (pci_bus_read_config_dword(bus, devfn, PCI_VENDOR_ID, &l)) -- return NULL; -- -- /* some broken boards return 0 or ~0 if a slot is empty: */ -- if (l == 0xffffffff || l == 0x00000000 || -- l == 0x0000ffff || l == 0xffff0000) -- return NULL; -- -+ do { -+ if (pci_bus_read_config_dword(bus, devfn, PCI_VENDOR_ID, &l)) -+ return NULL; -+ /* some broken boards return 0 or ~0 if a slot is empty: */ -+ if (l == 0xffffffff || l == 0x00000000 || -+ l == 0x0000ffff || l == 0xffff0000){ -+ if (delay > 4) -+ return NULL; -+ /* But that could also be the previous dev not settled */ -+ pr_debug("PCI: retrying scan at 0x%x, because config is 0x%x\n",devfn,l); -+ msleep(delay); -+ delay *=2; -+ l=0; -+ } -+ }while (l==0); -+ - /* Configuration request Retry Status */ - while (l == 0xffff0001) { - msleep(delay); -@@ -903,7 +910,10 @@ - - /* Go find them, Rover! */ - for (devfn = 0; devfn < 0x100; devfn += 8) -+ { -+ if (bus->number == 0 && (devfn >> 3) > 21) break; - pci_scan_slot(bus, devfn); -+ } - - /* - * After performing arch-dependent fixup of the bus, look behind |