[libata] ata_piix: Consolidate PCS register writing
authorJeff Garzik <jeff@garzik.org>
Tue, 11 Jul 2006 15:48:50 +0000 (11:48 -0400)
committerJeff Garzik <jeff@garzik.org>
Sun, 16 Jul 2006 15:48:28 +0000 (11:48 -0400)
commitea35d29e2fa8b3d766a2ce8fbcce599dce8d2734
tree533e0cac2fd8b9ce860ce6260ef5feb9a3f8e817
parentd96715c1acb119cef4b2443ba9b3777b730139e6
[libata] ata_piix: Consolidate PCS register writing

Prior to this patch, the driver would do this for each port:
read 8-bit PCS
write 8-bit PCS
read 8-bit PCS
write 8-bit PCS

In the field, flaky behavior has been observed related to this register.
In particular, these overzealous register writes can cause misdetection
problems.

Update to do the following once (not once per port) at boot:
read 16-bit PCS
if needs changing,
write 16-bit PCS

And thereafter, we only perform a 'read 16-bit PCS' per port.

This should eliminate all PCS writes in many cases, and be more friendly
in the cases where we do need to enable ports.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/scsi/ata_piix.c