aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/ahci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/ahci.c')
-rw-r--r--drivers/ata/ahci.c29
1 files changed, 10 insertions, 19 deletions
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 7c61bc7ebd71..34c5534ed64c 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -170,6 +170,10 @@ enum {
170 AHCI_FLAG_IGN_IRQ_IF_ERR = (1 << 25), /* ignore IRQ_IF_ERR */ 170 AHCI_FLAG_IGN_IRQ_IF_ERR = (1 << 25), /* ignore IRQ_IF_ERR */
171 AHCI_FLAG_HONOR_PI = (1 << 26), /* honor PORTS_IMPL */ 171 AHCI_FLAG_HONOR_PI = (1 << 26), /* honor PORTS_IMPL */
172 AHCI_FLAG_IGN_SERR_INTERNAL = (1 << 27), /* ignore SERR_INTERNAL */ 172 AHCI_FLAG_IGN_SERR_INTERNAL = (1 << 27), /* ignore SERR_INTERNAL */
173
174 AHCI_FLAG_COMMON = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
175 ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA |
176 ATA_FLAG_SKIP_D2H_BSY,
173}; 177};
174 178
175struct ahci_cmd_hdr { 179struct ahci_cmd_hdr {
@@ -323,54 +327,41 @@ static const struct ata_port_operations ahci_vt8251_ops = {
323static const struct ata_port_info ahci_port_info[] = { 327static const struct ata_port_info ahci_port_info[] = {
324 /* board_ahci */ 328 /* board_ahci */
325 { 329 {
326 .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | 330 .flags = AHCI_FLAG_COMMON,
327 ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA |
328 ATA_FLAG_SKIP_D2H_BSY,
329 .pio_mask = 0x1f, /* pio0-4 */ 331 .pio_mask = 0x1f, /* pio0-4 */
330 .udma_mask = 0x7f, /* udma0-6 ; FIXME */ 332 .udma_mask = 0x7f, /* udma0-6 ; FIXME */
331 .port_ops = &ahci_ops, 333 .port_ops = &ahci_ops,
332 }, 334 },
333 /* board_ahci_pi */ 335 /* board_ahci_pi */
334 { 336 {
335 .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | 337 .flags = AHCI_FLAG_COMMON | AHCI_FLAG_HONOR_PI,
336 ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA |
337 ATA_FLAG_SKIP_D2H_BSY | AHCI_FLAG_HONOR_PI,
338 .pio_mask = 0x1f, /* pio0-4 */ 338 .pio_mask = 0x1f, /* pio0-4 */
339 .udma_mask = 0x7f, /* udma0-6 ; FIXME */ 339 .udma_mask = 0x7f, /* udma0-6 ; FIXME */
340 .port_ops = &ahci_ops, 340 .port_ops = &ahci_ops,
341 }, 341 },
342 /* board_ahci_vt8251 */ 342 /* board_ahci_vt8251 */
343 { 343 {
344 .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | 344 .flags = AHCI_FLAG_COMMON | ATA_FLAG_HRST_TO_RESUME |
345 ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA | 345 AHCI_FLAG_NO_NCQ,
346 ATA_FLAG_SKIP_D2H_BSY |
347 ATA_FLAG_HRST_TO_RESUME | AHCI_FLAG_NO_NCQ,
348 .pio_mask = 0x1f, /* pio0-4 */ 346 .pio_mask = 0x1f, /* pio0-4 */
349 .udma_mask = 0x7f, /* udma0-6 ; FIXME */ 347 .udma_mask = 0x7f, /* udma0-6 ; FIXME */
350 .port_ops = &ahci_vt8251_ops, 348 .port_ops = &ahci_vt8251_ops,
351 }, 349 },
352 /* board_ahci_ign_iferr */ 350 /* board_ahci_ign_iferr */
353 { 351 {
354 .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | 352 .flags = AHCI_FLAG_COMMON | AHCI_FLAG_IGN_IRQ_IF_ERR,
355 ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA |
356 ATA_FLAG_SKIP_D2H_BSY |
357 AHCI_FLAG_IGN_IRQ_IF_ERR,
358 .pio_mask = 0x1f, /* pio0-4 */ 353 .pio_mask = 0x1f, /* pio0-4 */
359 .udma_mask = 0x7f, /* udma0-6 ; FIXME */ 354 .udma_mask = 0x7f, /* udma0-6 ; FIXME */
360 .port_ops = &ahci_ops, 355 .port_ops = &ahci_ops,
361 }, 356 },
362 /* board_ahci_sb600 */ 357 /* board_ahci_sb600 */
363 { 358 {
364 .sht = &ahci_sht, 359 .flags = AHCI_FLAG_COMMON |
365 .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
366 ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA |
367 ATA_FLAG_SKIP_D2H_BSY |
368 AHCI_FLAG_IGN_SERR_INTERNAL, 360 AHCI_FLAG_IGN_SERR_INTERNAL,
369 .pio_mask = 0x1f, /* pio0-4 */ 361 .pio_mask = 0x1f, /* pio0-4 */
370 .udma_mask = 0x7f, /* udma0-6 ; FIXME */ 362 .udma_mask = 0x7f, /* udma0-6 ; FIXME */
371 .port_ops = &ahci_ops, 363 .port_ops = &ahci_ops,
372 }, 364 },
373
374}; 365};
375 366
376static const struct pci_device_id ahci_pci_tbl[] = { 367static const struct pci_device_id ahci_pci_tbl[] = {