linux/debian/patches/mips-ide-scan.patch

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