Commit a3cb900cc408977a11519bc7c760f3e499079589

Authored by Alan Cox
Committed by Jeff Garzik
1 parent 65e3164311

[libata] pata_ali: Use IGN_SIMPLEX

Some ALi devices report simplex if they have been disabled and re-enabled, and
restoring the byte does not work. Ignore it - the needed supporting logic is
already present for the SATA ULi ports.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>

Showing 1 changed file with 11 additions and 6 deletions Side-by-side Diff

drivers/ata/pata_ali.c
... ... @@ -497,14 +497,16 @@
497 497 };
498 498 /* Revision 0x20 added DMA */
499 499 static const struct ata_port_info info_20 = {
500   - .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
  500 + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
  501 + ATA_FLAG_IGN_SIMPLEX,
501 502 .pio_mask = ATA_PIO4,
502 503 .mwdma_mask = ATA_MWDMA2,
503 504 .port_ops = &ali_20_port_ops
504 505 };
505 506 /* Revision 0x20 with support logic added UDMA */
506 507 static const struct ata_port_info info_20_udma = {
507   - .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
  508 + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
  509 + ATA_FLAG_IGN_SIMPLEX,
508 510 .pio_mask = ATA_PIO4,
509 511 .mwdma_mask = ATA_MWDMA2,
510 512 .udma_mask = ATA_UDMA2,
... ... @@ -512,7 +514,8 @@
512 514 };
513 515 /* Revision 0xC2 adds UDMA66 */
514 516 static const struct ata_port_info info_c2 = {
515   - .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
  517 + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
  518 + ATA_FLAG_IGN_SIMPLEX,
516 519 .pio_mask = ATA_PIO4,
517 520 .mwdma_mask = ATA_MWDMA2,
518 521 .udma_mask = ATA_UDMA4,
... ... @@ -520,7 +523,8 @@
520 523 };
521 524 /* Revision 0xC3 is UDMA66 for now */
522 525 static const struct ata_port_info info_c3 = {
523   - .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
  526 + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
  527 + ATA_FLAG_IGN_SIMPLEX,
524 528 .pio_mask = ATA_PIO4,
525 529 .mwdma_mask = ATA_MWDMA2,
526 530 .udma_mask = ATA_UDMA4,
... ... @@ -528,7 +532,8 @@
528 532 };
529 533 /* Revision 0xC4 is UDMA100 */
530 534 static const struct ata_port_info info_c4 = {
531   - .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
  535 + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
  536 + ATA_FLAG_IGN_SIMPLEX,
532 537 .pio_mask = ATA_PIO4,
533 538 .mwdma_mask = ATA_MWDMA2,
534 539 .udma_mask = ATA_UDMA5,
... ... @@ -536,7 +541,7 @@
536 541 };
537 542 /* Revision 0xC5 is UDMA133 with LBA48 DMA */
538 543 static const struct ata_port_info info_c5 = {
539   - .flags = ATA_FLAG_SLAVE_POSS,
  544 + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_IGN_SIMPLEX,
540 545 .pio_mask = ATA_PIO4,
541 546 .mwdma_mask = ATA_MWDMA2,
542 547 .udma_mask = ATA_UDMA6,