summary refs log tree commit diff
path: root/drivers/ata
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2011-10-13 15:28:30 +0200
committerJeff Garzik <jgarzik@redhat.com>2011-10-14 13:37:32 -0400
commitce986690d9bfabb8c61fd8fe785fce5d95210b66 (patch)
treeac4ebfbbe9c382e7fab20489c417e62fa0da8865 /drivers/ata
parent418fae2751b0d1a362ad9e0b45d446dc92e9157f (diff)
downloadlinux-ce986690d9bfabb8c61fd8fe785fce5d95210b66.tar.gz
ata_piix: SITRE handling fix
Set SITRE (separate slave timing register) bit also in master-only
configurations to match other PIIX-alike drivers and make further
changes easier.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata')
-rw-r--r--drivers/ata/ata_piix.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index cc431d6bc97f..75fdd026a997 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -786,8 +786,6 @@ static void piix_set_piomode(struct ata_port *ap, struct ata_device *adev)
 	if (is_slave) {
 		/* clear TIME1|IE1|PPE1|DTE1 */
 		master_data &= 0xff0f;
-		/* Enable SITRE (separate slave timing register) */
-		master_data |= 0x4000;
 		/* enable PPE1, IE1 and TIME1 as needed */
 		master_data |= (control << 4);
 		pci_read_config_byte(dev, slave_port, &slave_data);
@@ -805,6 +803,9 @@ static void piix_set_piomode(struct ata_port *ap, struct ata_device *adev)
 			(timings[pio][0] << 12) |
 			(timings[pio][1] << 8);
 	}
+
+	/* Enable SITRE (separate slave timing register) */
+	master_data |= 0x4000;
 	pci_write_config_word(dev, master_port, master_data);
 	if (is_slave)
 		pci_write_config_byte(dev, slave_port, slave_data);