diff options
Diffstat (limited to 'recipes/linux/linux-2.6.24/oxnas/oxnas-pci-config-delay.patch')
-rw-r--r-- | recipes/linux/linux-2.6.24/oxnas/oxnas-pci-config-delay.patch | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/recipes/linux/linux-2.6.24/oxnas/oxnas-pci-config-delay.patch b/recipes/linux/linux-2.6.24/oxnas/oxnas-pci-config-delay.patch deleted file mode 100644 index 5936b5bbca..0000000000 --- a/recipes/linux/linux-2.6.24/oxnas/oxnas-pci-config-delay.patch +++ /dev/null @@ -1,56 +0,0 @@ ---- linux-2.6.24.org/arch/arm/mach-oxnas/pci.c 2009-03-09 14:26:43.000000000 +0100 -+++ linux-2.6.24/arch/arm/mach-oxnas/pci.c 2009-03-09 14:31:12.000000000 +0100 -@@ -25,6 +25,7 @@ - #include <linux/interrupt.h> - #include <linux/init.h> - #include <linux/delay.h> -+#include <linux/jiffies.h> - - #include <asm/io.h> - #include <asm/hardware.h> -@@ -71,6 +72,12 @@ - - extern spinlock_t oxnas_gpio_spinlock; - -+#ifdef CONFIG_OXNAS_PCI_RESET -+static unsigned long pci_trhfa_startwait = 0; -+static unsigned long pci_trhfa_msec = 0; -+static unsigned long pci_trhfa_timeout = 0; -+#endif // CONFIG_OXNAS_PCI_RESET -+ - #define PCI_BUS_NONMEM_START 0x00000000 - #define PCI_BUS_NONMEM_SIZE 0x00080000 - -@@ -505,6 +512,15 @@ - struct pci_bus *oxnas_pci_scan_bus(int nr, struct pci_sys_data *sys) - { - // printk(KERN_DEBUG "PCI: oxnas_pci_scan_bus\n"); -+ -+#ifdef CONFIG_OXNAS_PCI_RESET -+ printk(KERN_DEBUG "PCI: oxnas_pci_scan_bus now it's %lu, still waiting till %lu to become ready for config\n", jiffies, pci_trhfa_timeout); -+ if (time_after_eq(jiffies + msecs_to_jiffies(pci_trhfa_msec), pci_trhfa_timeout)) /* ensure not wrap */ -+ while(time_before(jiffies, pci_trhfa_timeout)) -+ udelay(100); -+ printk(KERN_DEBUG "PCI: oxnas_pci_scan_bus waited from %lu to %lu to become ready for config\n", pci_trhfa_startwait, jiffies); -+#endif // CONFIG_OXNAS_PCI_RESET -+ - return pci_scan_bus(sys->busnr, &oxnas_pci_ops, sys); - } - -@@ -651,6 +667,16 @@ - - static int __init oxnas_pci_init(void) - { -+#ifdef CONFIG_OXNAS_PCI_RESET -+ // CPU has reset PCI bus via GPIO. -+ // According to PCI spec, we have to wait for 2^25 PCI clocks to meet -+ // the PCI timing parameter Trhfa (RST# high to first access). -+ pci_trhfa_startwait = jiffies; -+ pci_trhfa_msec = 1000; // 1 sec should be fine for 33MHz -+ pci_trhfa_timeout = jiffies + msecs_to_jiffies(pci_trhfa_msec); -+ printk(KERN_DEBUG "PCI: oxnas_pci_init now it's %lu, will wait till %lu to become ready for config\n", pci_trhfa_startwait, pci_trhfa_timeout); -+#endif // CONFIG_OXNAS_PCI_RESET -+ - pci_common_init(&oxnas_pci); - return 0; - } |