aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/sata_qstor.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/sata_qstor.c')
-rw-r--r--drivers/ata/sata_qstor.c17
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
147static const struct ata_port_operations qs_ata_ops = { 147static 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 */