Add changes from the Linux-2.6 tree.
[linux-2.6.git] / include / asm-i386 / ide.h
index 438d461..0fc240c 100644 (file)
@@ -13,7 +13,6 @@
 
 #ifdef __KERNEL__
 
-#include <linux/config.h>
 
 #ifndef MAX_HWIFS
 # ifdef CONFIG_BLK_DEV_IDEPCI
@@ -41,20 +40,28 @@ static __inline__ int ide_default_irq(unsigned long base)
 
 static __inline__ unsigned long ide_default_io_base(int index)
 {
-       if(pci_find_device(PCI_ANY_ID, PCI_ANY_ID, NULL) == NULL) {
+       struct pci_dev *pdev;
+       /*
+        *      If PCI is present then it is not safe to poke around
+        *      the other legacy IDE ports. Only 0x1f0 and 0x170 are
+        *      defined compatibility mode ports for PCI. A user can 
+        *      override this using ide= but we must default safe.
+        */
+       if ((pdev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, NULL)) == NULL) {
                switch(index) {
                        case 2: return 0x1e8;
                        case 3: return 0x168;
                        case 4: return 0x1e0;
                        case 5: return 0x160;
-                       }
+               }
        }
+       pci_dev_put(pdev);
        switch (index) {
                case 0: return 0x1f0;
                case 1: return 0x170;
                default:
                        return 0;
-       }               
+       }
 }
 
 #define IDE_ARCH_OBSOLETE_INIT