From b739c888dfd9095551cbf13798ed42fe1ec2bfc6 Mon Sep 17 00:00:00 2001 From: nbd Date: Thu, 15 Jun 2006 21:43:59 +0000 Subject: add rb532 support git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@3956 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- target/linux/rb532-2.6/patches/210-pci_fixes.patch | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 target/linux/rb532-2.6/patches/210-pci_fixes.patch (limited to 'target/linux/rb532-2.6/patches/210-pci_fixes.patch') diff --git a/target/linux/rb532-2.6/patches/210-pci_fixes.patch b/target/linux/rb532-2.6/patches/210-pci_fixes.patch new file mode 100644 index 000000000..02cd2f063 --- /dev/null +++ b/target/linux/rb532-2.6/patches/210-pci_fixes.patch @@ -0,0 +1,46 @@ +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 -- cgit v1.2.3