libata: reimplement ata_acpi_cbl_80wire() using ata_acpi_gtm_xfermask()
Reimplement ata_acpi_cbl_80wire() using ata_acpi_gtm_xfermask() and while at it relocate the function below ata_acpi_gtm_xfermask(). New ata_acpi_cbl_80wire() implementation takes @gtm, in both pata_via and pata_amd, use the initial GTM value. Both are trying to peek initial BIOS configuration, so using initial caching value makes sense. This fixes ACPI part of cable detection in pata_amd which previously always returned 0 because configuring PIO0 during reset clears DMA configuration. Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
@@ -272,7 +272,8 @@ static int nv_cable_detect(struct ata_port *ap)
|
||||
if ((udma & 0xC4) == 0xC4 || (udma & 0xC400) == 0xC400)
|
||||
cbl = ATA_CBL_PATA80;
|
||||
/* And a triple check across suspend/resume with ACPI around */
|
||||
if (ata_acpi_cbl_80wire(ap))
|
||||
if (ata_acpi_init_gtm(ap) &&
|
||||
ata_acpi_cbl_80wire(ap, ata_acpi_init_gtm(ap)))
|
||||
cbl = ATA_CBL_PATA80;
|
||||
return cbl;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user