ata_piix: SITRE handling fix
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Thu, 13 Oct 2011 13:28:30 +0000 (15:28 +0200)
committerJeff Garzik <jgarzik@redhat.com>
Fri, 14 Oct 2011 17:37:32 +0000 (13:37 -0400)
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>
drivers/ata/ata_piix.c

index cc431d6bc97fd4c2e91880b553d6a0f9c28753b2..75fdd026a9971e918603957b978ed0cc7a8bc751 100644 (file)
@@ -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);