aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/sata_mv.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/sata_mv.c')
-rw-r--r--drivers/ata/sata_mv.c66
1 files changed, 10 insertions, 56 deletions
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index 52d41edadb72..f341a82d27bf 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -526,23 +526,16 @@ static struct scsi_host_template mv6_sht = {
526 .dma_boundary = MV_DMA_BOUNDARY, 526 .dma_boundary = MV_DMA_BOUNDARY,
527}; 527};
528 528
529static const struct ata_port_operations mv5_ops = { 529static struct ata_port_operations mv5_ops = {
530 .tf_load = ata_tf_load, 530 .inherits = &ata_sff_port_ops,
531 .tf_read = ata_tf_read,
532 .check_status = ata_check_status,
533 .exec_command = ata_exec_command,
534 .dev_select = ata_std_dev_select,
535 531
536 .qc_prep = mv_qc_prep, 532 .qc_prep = mv_qc_prep,
537 .qc_issue = mv_qc_issue, 533 .qc_issue = mv_qc_issue,
538 .data_xfer = ata_data_xfer,
539 534
540 .irq_clear = ata_noop_irq_clear,
541 .irq_on = ata_irq_on,
542
543 .error_handler = mv_error_handler,
544 .freeze = mv_eh_freeze, 535 .freeze = mv_eh_freeze,
545 .thaw = mv_eh_thaw, 536 .thaw = mv_eh_thaw,
537 .error_handler = mv_error_handler,
538 .post_internal_cmd = ATA_OP_NULL,
546 539
547 .scr_read = mv5_scr_read, 540 .scr_read = mv5_scr_read,
548 .scr_write = mv5_scr_write, 541 .scr_write = mv5_scr_write,
@@ -551,57 +544,18 @@ static const struct ata_port_operations mv5_ops = {
551 .port_stop = mv_port_stop, 544 .port_stop = mv_port_stop,
552}; 545};
553 546
554static const struct ata_port_operations mv6_ops = { 547static struct ata_port_operations mv6_ops = {
555 .dev_config = mv6_dev_config, 548 .inherits = &mv5_ops,
556 .tf_load = ata_tf_load,
557 .tf_read = ata_tf_read,
558 .check_status = ata_check_status,
559 .exec_command = ata_exec_command,
560 .dev_select = ata_std_dev_select,
561
562 .qc_prep = mv_qc_prep,
563 .qc_issue = mv_qc_issue,
564 .data_xfer = ata_data_xfer,
565
566 .irq_clear = ata_noop_irq_clear,
567 .irq_on = ata_irq_on,
568
569 .error_handler = mv_error_handler,
570 .freeze = mv_eh_freeze,
571 .thaw = mv_eh_thaw,
572 .qc_defer = ata_std_qc_defer, 549 .qc_defer = ata_std_qc_defer,
573 550 .dev_config = mv6_dev_config,
574 .scr_read = mv_scr_read, 551 .scr_read = mv_scr_read,
575 .scr_write = mv_scr_write, 552 .scr_write = mv_scr_write,
576
577 .port_start = mv_port_start,
578 .port_stop = mv_port_stop,
579}; 553};
580 554
581static const struct ata_port_operations mv_iie_ops = { 555static struct ata_port_operations mv_iie_ops = {
582 .tf_load = ata_tf_load, 556 .inherits = &mv6_ops,
583 .tf_read = ata_tf_read, 557 .dev_config = ATA_OP_NULL,
584 .check_status = ata_check_status,
585 .exec_command = ata_exec_command,
586 .dev_select = ata_std_dev_select,
587
588 .qc_prep = mv_qc_prep_iie, 558 .qc_prep = mv_qc_prep_iie,
589 .qc_issue = mv_qc_issue,
590 .data_xfer = ata_data_xfer,
591
592 .irq_clear = ata_noop_irq_clear,
593 .irq_on = ata_irq_on,
594
595 .error_handler = mv_error_handler,
596 .freeze = mv_eh_freeze,
597 .thaw = mv_eh_thaw,
598 .qc_defer = ata_std_qc_defer,
599
600 .scr_read = mv_scr_read,
601 .scr_write = mv_scr_write,
602
603 .port_start = mv_port_start,
604 .port_stop = mv_port_stop,
605}; 559};
606 560
607static const struct ata_port_info mv_port_info[] = { 561static const struct ata_port_info mv_port_info[] = {