linux-mips
[Top] [All Lists]

[PATCH 2.6] Cobalt IDE fix, again

To: linux-mips@linux-mips.org
Subject: [PATCH 2.6] Cobalt IDE fix, again
From: Peter Horton <pdh@colonel-panic.org>
Date: Wed, 25 Jan 2006 00:13:03 +0000
Cc: ralf@linux-mips.org
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.9i
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.

P.


Index: linux.git/include/asm-mips/mach-generic/ide.h
===================================================================
--- 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 
22:10:43.000000000 +0000
@@ -20,17 +20,9 @@
 #include <linux/stddef.h>
 #include <asm/processor.h>
 
-#ifndef MAX_HWIFS
-# ifdef CONFIG_BLK_DEV_IDEPCI
-#define MAX_HWIFS      10
-# else
-#define MAX_HWIFS      6
-# endif
-#endif
-
 #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 +30,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 +42,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 +75,8 @@
                        return 0x1e0;
                case 5:
                        return 0x160;
-               default:
-                       return 0;
-               }
-       else
-               return 0;
+       }
+       return 0;
 }
 
 #define IDE_ARCH_OBSOLETE_INIT

<Prev in Thread] Current Thread [Next in Thread>