]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/ata/ata_piix.c
ata_piix: SITRE handling fix
[karo-tx-linux.git] / 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);