Hi Jeff,

The libata driver cannot be loaded if a system has a CD-ROM drive
connected via SATA instead of PATA because this is not combined
mode and reserved no ports in quirk_intel_ide_combined() function.
I think SATA only (non-combined) && legacy mode should be treated
as same as such combined mode. How about following patch?

----------------------- Original Message -----------------------
--- linux-2.6.11.7/drivers/pci/quirks.c.orig    2005-04-08 03:57:08.000000000 
+0900
+++ linux-2.6.11.7/drivers/pci/quirks.c 2005-07-15 15:19:21.000000000 +0900
@@ -1195,7 +1195,7 @@ static void __devinit quirk_intel_ide_co
                else if (tmp == 0x6)    /* bits 11x */
                        comb = (1 << 2);        /* PATA port 0, SATA port 1 */
                else
-                       return;                 /* not in combined mode */
+                       comb = 0;               /* not in combined mode */
        } else {
                WARN_ON((ich != 6) && (ich != 7));
                tmp &= 0x3;  /* interesting bits 1:0 */
@@ -1204,7 +1204,7 @@ static void __devinit quirk_intel_ide_co
                else if (tmp & (1 << 1))
                        comb = (1 << 0);        /* SATA port 0, PATA port 1 */
                else
-                       return;                 /* not in combined mode */
+                       comb = 0;               /* not in combined mode */
        }
 
        /*
@@ -1224,8 +1224,13 @@ static void __devinit quirk_intel_ide_co
         */
        if (comb == (1 << 0))
                request_region(0x1f0, 8, "libata");     /* port 0 */
-       else
+       else if (comb == (1 << 2))
                request_region(0x170, 8, "libata");     /* port 1 */
+
+       if (comb == 0 && (prog & 0x5) == 0) {   /* Legacy but SATA only */
+               request_region(0x1f0, 8, "libata");     /* port 0 */
+               request_region(0x170, 8, "libata");     /* port 1 */
+       }
 }
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,    PCI_ANY_ID,      
quirk_intel_ide_combined );
 #endif /* CONFIG_SCSI_SATA */
--------------------- Original Message Ends --------------------

-- 
Seiichi Ikarashi <[EMAIL PROTECTED]>

-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to