diff options
Diffstat (limited to 'drivers/ata/sata_qstor.c')
-rw-r--r-- | drivers/ata/sata_qstor.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/ata/sata_qstor.c b/drivers/ata/sata_qstor.c index 5e1dfdda698f..c4c4cd29eebb 100644 --- a/drivers/ata/sata_qstor.c +++ b/drivers/ata/sata_qstor.c | |||
@@ -145,7 +145,6 @@ static struct scsi_host_template qs_ata_sht = { | |||
145 | }; | 145 | }; |
146 | 146 | ||
147 | static const struct ata_port_operations qs_ata_ops = { | 147 | static const struct ata_port_operations qs_ata_ops = { |
148 | .port_disable = ata_port_disable, | ||
149 | .tf_load = ata_tf_load, | 148 | .tf_load = ata_tf_load, |
150 | .tf_read = ata_tf_read, | 149 | .tf_read = ata_tf_read, |
151 | .check_status = ata_check_status, | 150 | .check_status = ata_check_status, |
@@ -159,7 +158,6 @@ static const struct ata_port_operations qs_ata_ops = { | |||
159 | .eng_timeout = qs_eng_timeout, | 158 | .eng_timeout = qs_eng_timeout, |
160 | .irq_clear = qs_irq_clear, | 159 | .irq_clear = qs_irq_clear, |
161 | .irq_on = ata_irq_on, | 160 | .irq_on = ata_irq_on, |
162 | .irq_ack = ata_irq_ack, | ||
163 | .scr_read = qs_scr_read, | 161 | .scr_read = qs_scr_read, |
164 | .scr_write = qs_scr_write, | 162 | .scr_write = qs_scr_write, |
165 | .port_start = qs_port_start, | 163 | .port_start = qs_port_start, |
@@ -404,7 +402,7 @@ static inline unsigned int qs_intr_pkt(struct ata_host *host) | |||
404 | struct qs_port_priv *pp = ap->private_data; | 402 | struct qs_port_priv *pp = ap->private_data; |
405 | if (!pp || pp->state != qs_state_pkt) | 403 | if (!pp || pp->state != qs_state_pkt) |
406 | continue; | 404 | continue; |
407 | qc = ata_qc_from_tag(ap, ap->active_tag); | 405 | qc = ata_qc_from_tag(ap, ap->link.active_tag); |
408 | if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) { | 406 | if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) { |
409 | switch (sHST) { | 407 | switch (sHST) { |
410 | case 0: /* successful CPB */ | 408 | case 0: /* successful CPB */ |
@@ -437,7 +435,7 @@ static inline unsigned int qs_intr_mmio(struct ata_host *host) | |||
437 | struct qs_port_priv *pp = ap->private_data; | 435 | struct qs_port_priv *pp = ap->private_data; |
438 | if (!pp || pp->state != qs_state_mmio) | 436 | if (!pp || pp->state != qs_state_mmio) |
439 | continue; | 437 | continue; |
440 | qc = ata_qc_from_tag(ap, ap->active_tag); | 438 | qc = ata_qc_from_tag(ap, ap->link.active_tag); |
441 | if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) { | 439 | if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) { |
442 | 440 | ||
443 | /* check main status, clearing INTRQ */ | 441 | /* check main status, clearing INTRQ */ |
@@ -637,9 +635,14 @@ static int qs_ata_init_one(struct pci_dev *pdev, | |||
637 | return rc; | 635 | return rc; |
638 | 636 | ||
639 | for (port_no = 0; port_no < host->n_ports; ++port_no) { | 637 | for (port_no = 0; port_no < host->n_ports; ++port_no) { |
640 | void __iomem *chan = | 638 | struct ata_port *ap = host->ports[port_no]; |
641 | host->iomap[QS_MMIO_BAR] + (port_no * 0x4000); | 639 | unsigned int offset = port_no * 0x4000; |
642 | qs_ata_setup_port(&host->ports[port_no]->ioaddr, chan); | 640 | void __iomem *chan = host->iomap[QS_MMIO_BAR] + offset; |
641 | |||
642 | qs_ata_setup_port(&ap->ioaddr, chan); | ||
643 | |||
644 | ata_port_pbar_desc(ap, QS_MMIO_BAR, -1, "mmio"); | ||
645 | ata_port_pbar_desc(ap, QS_MMIO_BAR, offset, "port"); | ||
643 | } | 646 | } |
644 | 647 | ||
645 | /* initialize adapter */ | 648 | /* initialize adapter */ |