aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/sata_vsc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/sata_vsc.c')
-rw-r--r--drivers/ata/sata_vsc.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/ata/sata_vsc.c b/drivers/ata/sata_vsc.c
index 1920915dfa2c..0d9be1684873 100644
--- a/drivers/ata/sata_vsc.c
+++ b/drivers/ata/sata_vsc.c
@@ -240,7 +240,7 @@ static void vsc_port_intr(u8 port_status, struct ata_port *ap)
240 return; 240 return;
241 } 241 }
242 242
243 qc = ata_qc_from_tag(ap, ap->active_tag); 243 qc = ata_qc_from_tag(ap, ap->link.active_tag);
244 if (qc && likely(!(qc->tf.flags & ATA_TFLAG_POLLING))) 244 if (qc && likely(!(qc->tf.flags & ATA_TFLAG_POLLING)))
245 handled = ata_host_intr(ap, qc); 245 handled = ata_host_intr(ap, qc);
246 246
@@ -317,7 +317,6 @@ static struct scsi_host_template vsc_sata_sht = {
317 317
318 318
319static const struct ata_port_operations vsc_sata_ops = { 319static const struct ata_port_operations vsc_sata_ops = {
320 .port_disable = ata_port_disable,
321 .tf_load = vsc_sata_tf_load, 320 .tf_load = vsc_sata_tf_load,
322 .tf_read = vsc_sata_tf_read, 321 .tf_read = vsc_sata_tf_read,
323 .exec_command = ata_exec_command, 322 .exec_command = ata_exec_command,
@@ -336,7 +335,6 @@ static const struct ata_port_operations vsc_sata_ops = {
336 .post_internal_cmd = ata_bmdma_post_internal_cmd, 335 .post_internal_cmd = ata_bmdma_post_internal_cmd,
337 .irq_clear = ata_bmdma_irq_clear, 336 .irq_clear = ata_bmdma_irq_clear,
338 .irq_on = ata_irq_on, 337 .irq_on = ata_irq_on,
339 .irq_ack = ata_irq_ack,
340 .scr_read = vsc_sata_scr_read, 338 .scr_read = vsc_sata_scr_read,
341 .scr_write = vsc_sata_scr_write, 339 .scr_write = vsc_sata_scr_write,
342 .port_start = ata_port_start, 340 .port_start = ata_port_start,
@@ -408,9 +406,15 @@ static int __devinit vsc_sata_init_one (struct pci_dev *pdev, const struct pci_d
408 406
409 mmio_base = host->iomap[VSC_MMIO_BAR]; 407 mmio_base = host->iomap[VSC_MMIO_BAR];
410 408
411 for (i = 0; i < host->n_ports; i++) 409 for (i = 0; i < host->n_ports; i++) {
412 vsc_sata_setup_port(&host->ports[i]->ioaddr, 410 struct ata_port *ap = host->ports[i];
413 mmio_base + (i + 1) * VSC_SATA_PORT_OFFSET); 411 unsigned int offset = (i + 1) * VSC_SATA_PORT_OFFSET;
412
413 vsc_sata_setup_port(&ap->ioaddr, mmio_base + offset);
414
415 ata_port_pbar_desc(ap, VSC_MMIO_BAR, -1, "mmio");
416 ata_port_pbar_desc(ap, VSC_MMIO_BAR, offset, "port");
417 }
414 418
415 /* 419 /*
416 * Use 32 bit DMA mask, because 64 bit address support is poor. 420 * Use 32 bit DMA mask, because 64 bit address support is poor.