aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/sata_inic162x.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/sata_inic162x.c')
-rw-r--r--drivers/ata/sata_inic162x.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/ata/sata_inic162x.c b/drivers/ata/sata_inic162x.c
index f0ea0e166c11..08595f34b3e8 100644
--- a/drivers/ata/sata_inic162x.c
+++ b/drivers/ata/sata_inic162x.c
@@ -693,16 +693,24 @@ static int inic_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
693 host->iomap = iomap = pcim_iomap_table(pdev); 693 host->iomap = iomap = pcim_iomap_table(pdev);
694 694
695 for (i = 0; i < NR_PORTS; i++) { 695 for (i = 0; i < NR_PORTS; i++) {
696 struct ata_ioports *port = &host->ports[i]->ioaddr; 696 struct ata_port *ap = host->ports[i];
697 void __iomem *port_base = iomap[MMIO_BAR] + i * PORT_SIZE; 697 struct ata_ioports *port = &ap->ioaddr;
698 unsigned int offset = i * PORT_SIZE;
698 699
699 port->cmd_addr = iomap[2 * i]; 700 port->cmd_addr = iomap[2 * i];
700 port->altstatus_addr = 701 port->altstatus_addr =
701 port->ctl_addr = (void __iomem *) 702 port->ctl_addr = (void __iomem *)
702 ((unsigned long)iomap[2 * i + 1] | ATA_PCI_CTL_OFS); 703 ((unsigned long)iomap[2 * i + 1] | ATA_PCI_CTL_OFS);
703 port->scr_addr = port_base + PORT_SCR; 704 port->scr_addr = iomap[MMIO_BAR] + offset + PORT_SCR;
704 705
705 ata_std_ports(port); 706 ata_std_ports(port);
707
708 ata_port_pbar_desc(ap, MMIO_BAR, -1, "mmio");
709 ata_port_pbar_desc(ap, MMIO_BAR, offset, "port");
710 ata_port_desc(ap, "cmd 0x%llx ctl 0x%llx",
711 (unsigned long long)pci_resource_start(pdev, 2 * i),
712 (unsigned long long)pci_resource_start(pdev, (2 * i + 1)) |
713 ATA_PCI_CTL_OFS);
706 } 714 }
707 715
708 hpriv->cached_hctl = readw(iomap[MMIO_BAR] + HOST_CTL); 716 hpriv->cached_hctl = readw(iomap[MMIO_BAR] + HOST_CTL);