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