diff options
Diffstat (limited to 'drivers/ata')
-rw-r--r-- | drivers/ata/ahci.c | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index bddb14e91d3c..413270b2c794 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c | |||
@@ -167,9 +167,8 @@ enum { | |||
167 | AHCI_FLAG_MSI = (1 << 0), | 167 | AHCI_FLAG_MSI = (1 << 0), |
168 | 168 | ||
169 | /* ap->flags bits */ | 169 | /* ap->flags bits */ |
170 | AHCI_FLAG_RESET_NEEDS_CLO = (1 << 24), | 170 | AHCI_FLAG_NO_NCQ = (1 << 24), |
171 | AHCI_FLAG_NO_NCQ = (1 << 25), | 171 | AHCI_FLAG_IGN_IRQ_IF_ERR = (1 << 25), /* ignore IRQ_IF_ERR */ |
172 | AHCI_FLAG_IGN_IRQ_IF_ERR = (1 << 26), /* ignore IRQ_IF_ERR */ | ||
173 | }; | 172 | }; |
174 | 173 | ||
175 | struct ahci_cmd_hdr { | 174 | struct ahci_cmd_hdr { |
@@ -291,8 +290,7 @@ static const struct ata_port_info ahci_port_info[] = { | |||
291 | .sht = &ahci_sht, | 290 | .sht = &ahci_sht, |
292 | .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | | 291 | .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | |
293 | ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA | | 292 | ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA | |
294 | ATA_FLAG_SKIP_D2H_BSY | | 293 | ATA_FLAG_SKIP_D2H_BSY | AHCI_FLAG_NO_NCQ, |
295 | AHCI_FLAG_RESET_NEEDS_CLO | AHCI_FLAG_NO_NCQ, | ||
296 | .pio_mask = 0x1f, /* pio0-4 */ | 294 | .pio_mask = 0x1f, /* pio0-4 */ |
297 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ | 295 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ |
298 | .port_ops = &ahci_ops, | 296 | .port_ops = &ahci_ops, |
@@ -729,17 +727,6 @@ static int ahci_clo(struct ata_port *ap) | |||
729 | return 0; | 727 | return 0; |
730 | } | 728 | } |
731 | 729 | ||
732 | static int ahci_prereset(struct ata_port *ap) | ||
733 | { | ||
734 | if ((ap->flags & AHCI_FLAG_RESET_NEEDS_CLO) && | ||
735 | (ata_busy_wait(ap, ATA_BUSY, 1000) & ATA_BUSY)) { | ||
736 | /* ATA_BUSY hasn't cleared, so send a CLO */ | ||
737 | ahci_clo(ap); | ||
738 | } | ||
739 | |||
740 | return ata_std_prereset(ap); | ||
741 | } | ||
742 | |||
743 | static int ahci_softreset(struct ata_port *ap, unsigned int *class) | 730 | static int ahci_softreset(struct ata_port *ap, unsigned int *class) |
744 | { | 731 | { |
745 | struct ahci_port_priv *pp = ap->private_data; | 732 | struct ahci_port_priv *pp = ap->private_data; |
@@ -1196,7 +1183,7 @@ static void ahci_error_handler(struct ata_port *ap) | |||
1196 | } | 1183 | } |
1197 | 1184 | ||
1198 | /* perform recovery */ | 1185 | /* perform recovery */ |
1199 | ata_do_eh(ap, ahci_prereset, ahci_softreset, ahci_hardreset, | 1186 | ata_do_eh(ap, ata_std_prereset, ahci_softreset, ahci_hardreset, |
1200 | ahci_postreset); | 1187 | ahci_postreset); |
1201 | } | 1188 | } |
1202 | 1189 | ||