99 lines
1.9 KiB
Diff
99 lines
1.9 KiB
Diff
## DP: Fix long IDE detection delay by not scanning non-existent channels.
|
|
## DP: Patch author: Peter Horton <pdh@colonel-panic.org>
|
|
## DP: Upstream status: submitted to linux-mips
|
|
|
|
# Fix long delay during Cobalt boot whilst scanning non-existent
|
|
# interfaces. The logic is copied from i386 i.e. we only scan 2 legacy
|
|
# ports if we have PCI IDE.
|
|
|
|
# Signed-off-by: Peter Horton <pdh@colonel-panic.org>
|
|
# Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
|
|
|
|
--- linux.git.orig/include/asm-mips/mach-generic/ide.h 2006-01-24 22:07:36.000000000 +0000
|
|
+++ linux.git/include/asm-mips/mach-generic/ide.h 2006-01-24 23:41:19.000000000 +0000
|
|
@@ -30,7 +30,7 @@
|
|
|
|
#define IDE_ARCH_OBSOLETE_DEFAULTS
|
|
|
|
-static __inline__ int ide_probe_legacy(void)
|
|
+static __inline__ int ide_legacy_ports(void)
|
|
{
|
|
#ifdef CONFIG_PCI
|
|
struct pci_dev *dev;
|
|
@@ -38,11 +38,11 @@
|
|
(dev = pci_get_class(PCI_CLASS_BRIDGE_ISA << 8, NULL)) != NULL) {
|
|
pci_dev_put(dev);
|
|
|
|
- return 1;
|
|
+ return 2;
|
|
}
|
|
return 0;
|
|
#elif defined(CONFIG_EISA) || defined(CONFIG_ISA)
|
|
- return 1;
|
|
+ return 6;
|
|
#else
|
|
return 0;
|
|
#endif
|
|
@@ -50,30 +50,26 @@
|
|
|
|
static __inline__ int ide_default_irq(unsigned long base)
|
|
{
|
|
- if (ide_probe_legacy())
|
|
- switch (base) {
|
|
- case 0x1f0:
|
|
- return 14;
|
|
- case 0x170:
|
|
- return 15;
|
|
- case 0x1e8:
|
|
- return 11;
|
|
- case 0x168:
|
|
- return 10;
|
|
- case 0x1e0:
|
|
- return 8;
|
|
- case 0x160:
|
|
- return 12;
|
|
- default:
|
|
- return 0;
|
|
- }
|
|
- else
|
|
- return 0;
|
|
+ switch (base) {
|
|
+ case 0x1f0:
|
|
+ return 14;
|
|
+ case 0x170:
|
|
+ return 15;
|
|
+ case 0x1e8:
|
|
+ return 11;
|
|
+ case 0x168:
|
|
+ return 10;
|
|
+ case 0x1e0:
|
|
+ return 8;
|
|
+ case 0x160:
|
|
+ return 12;
|
|
+ }
|
|
+ return 0;
|
|
}
|
|
|
|
static __inline__ unsigned long ide_default_io_base(int index)
|
|
{
|
|
- if (ide_probe_legacy())
|
|
+ if (index < ide_legacy_ports())
|
|
switch (index) {
|
|
case 0:
|
|
return 0x1f0;
|
|
@@ -87,11 +83,8 @@
|
|
return 0x1e0;
|
|
case 5:
|
|
return 0x160;
|
|
- default:
|
|
- return 0;
|
|
- }
|
|
- else
|
|
- return 0;
|
|
+ }
|
|
+ return 0;
|
|
}
|
|
|
|
#define IDE_ARCH_OBSOLETE_INIT
|
|
|