aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
author <jgarzik@pretzel.yyz.us>2005-06-04 00:59:09 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-06-04 00:59:09 -0400
commit31c94a6e987af162ac5ede83cddf49870cd1f2ed (patch)
tree9e4bb09503eed0692082a1cd0afa3c7b39afcba9 /drivers
parent1700c80d8778cf0d024bf6cbdd1c9e9014764530 (diff)
parent60bf09a366c873aab36e3b3110ee9f5bd89a1a6d (diff)
Automatic merge of /spare/repo/libata-dev branch svw
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/sata_svw.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/drivers/scsi/sata_svw.c b/drivers/scsi/sata_svw.c
index edef1fa969fc..189744887628 100644
--- a/drivers/scsi/sata_svw.c
+++ b/drivers/scsi/sata_svw.c
@@ -344,6 +344,7 @@ static int k2_sata_init_one (struct pci_dev *pdev, const struct pci_device_id *e
344 void *mmio_base; 344 void *mmio_base;
345 int pci_dev_busy = 0; 345 int pci_dev_busy = 0;
346 int rc; 346 int rc;
347 int i;
347 348
348 if (!printed_version++) 349 if (!printed_version++)
349 printk(KERN_DEBUG DRV_NAME " version " DRV_VERSION "\n"); 350 printk(KERN_DEBUG DRV_NAME " version " DRV_VERSION "\n");
@@ -421,11 +422,11 @@ static int k2_sata_init_one (struct pci_dev *pdev, const struct pci_device_id *e
421 probe_ent->mwdma_mask = 0x7; 422 probe_ent->mwdma_mask = 0x7;
422 probe_ent->udma_mask = 0x7f; 423 probe_ent->udma_mask = 0x7f;
423 424
424 /* We have 4 ports per PCI function */ 425 /* different controllers have different number of ports - currently 4 or 8 */
425 k2_sata_setup_port(&probe_ent->port[0], base + 0 * K2_SATA_PORT_OFFSET); 426 /* All ports are on the same function. Multi-function device is no
426 k2_sata_setup_port(&probe_ent->port[1], base + 1 * K2_SATA_PORT_OFFSET); 427 * longer available. This should not be seen in any system. */
427 k2_sata_setup_port(&probe_ent->port[2], base + 2 * K2_SATA_PORT_OFFSET); 428 for (i = 0; i < ent->driver_data; i++)
428 k2_sata_setup_port(&probe_ent->port[3], base + 3 * K2_SATA_PORT_OFFSET); 429 k2_sata_setup_port(&probe_ent->port[i], base + i * K2_SATA_PORT_OFFSET);
429 430
430 pci_set_master(pdev); 431 pci_set_master(pdev);
431 432
@@ -445,11 +446,17 @@ err_out:
445 return rc; 446 return rc;
446} 447}
447 448
448 449/* 0x240 is device ID for Apple K2 device
450 * 0x241 is device ID for Serverworks Frodo4
451 * 0x242 is device ID for Serverworks Frodo8
452 * 0x24a is device ID for BCM5785 (aka HT1000) HT southbridge integrated SATA
453 * controller
454 * */
449static struct pci_device_id k2_sata_pci_tbl[] = { 455static struct pci_device_id k2_sata_pci_tbl[] = {
450 { 0x1166, 0x0240, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, 456 { 0x1166, 0x0240, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 },
451 { 0x1166, 0x0241, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, 457 { 0x1166, 0x0241, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 },
452 { 0x1166, 0x0242, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, 458 { 0x1166, 0x0242, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 8 },
459 { 0x1166, 0x024a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 },
453 { } 460 { }
454}; 461};
455 462