libata on SATA only (non-combined) & legcy mode
PATCH 1/1 libata on SATA only (non-combined) & legcy mode
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 -----------------------
drivers/pci/quirks.c renamed from drivers/pci/quirks.c.orig +8 -3
@@ -1195,7 +1195,7 @@ static void __devinit quirk_intel_ide_coelse 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_coelse 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 --------------------
Signature · 1 line
Seiichi Ikarashi <[email protected]>