aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/sata_sx4.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/sata_sx4.c')
-rw-r--r--drivers/ata/sata_sx4.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/drivers/ata/sata_sx4.c b/drivers/ata/sata_sx4.c
index b425061dbe8c..9f9f7b30654a 100644
--- a/drivers/ata/sata_sx4.c
+++ b/drivers/ata/sata_sx4.c
@@ -1381,9 +1381,8 @@ static int pdc_sata_init_one (struct pci_dev *pdev, const struct pci_device_id *
1381 const struct ata_port_info *ppi[] = 1381 const struct ata_port_info *ppi[] =
1382 { &pdc_port_info[ent->driver_data], NULL }; 1382 { &pdc_port_info[ent->driver_data], NULL };
1383 struct ata_host *host; 1383 struct ata_host *host;
1384 void __iomem *base;
1385 struct pdc_host_priv *hpriv; 1384 struct pdc_host_priv *hpriv;
1386 int rc; 1385 int i, rc;
1387 1386
1388 if (!printed_version++) 1387 if (!printed_version++)
1389 dev_printk(KERN_DEBUG, &pdev->dev, "version " DRV_VERSION "\n"); 1388 dev_printk(KERN_DEBUG, &pdev->dev, "version " DRV_VERSION "\n");
@@ -1409,11 +1408,17 @@ static int pdc_sata_init_one (struct pci_dev *pdev, const struct pci_device_id *
1409 return rc; 1408 return rc;
1410 host->iomap = pcim_iomap_table(pdev); 1409 host->iomap = pcim_iomap_table(pdev);
1411 1410
1412 base = host->iomap[PDC_MMIO_BAR] + PDC_CHIP0_OFS; 1411 for (i = 0; i < 4; i++) {
1413 pdc_sata_setup_port(&host->ports[0]->ioaddr, base + 0x200); 1412 struct ata_port *ap = host->ports[i];
1414 pdc_sata_setup_port(&host->ports[1]->ioaddr, base + 0x280); 1413 void __iomem *base = host->iomap[PDC_MMIO_BAR] + PDC_CHIP0_OFS;
1415 pdc_sata_setup_port(&host->ports[2]->ioaddr, base + 0x300); 1414 unsigned int offset = 0x200 + i * 0x80;
1416 pdc_sata_setup_port(&host->ports[3]->ioaddr, base + 0x380); 1415
1416 pdc_sata_setup_port(&ap->ioaddr, base + offset);
1417
1418 ata_port_pbar_desc(ap, PDC_MMIO_BAR, -1, "mmio");
1419 ata_port_pbar_desc(ap, PDC_DIMM_BAR, -1, "dimm");
1420 ata_port_pbar_desc(ap, PDC_MMIO_BAR, offset, "port");
1421 }
1417 1422
1418 /* configure and activate */ 1423 /* configure and activate */
1419 rc = pci_set_dma_mask(pdev, ATA_DMA_MASK); 1424 rc = pci_set_dma_mask(pdev, ATA_DMA_MASK);