diff options
author | Jeff Garzik <jgarzik@pretzel.yyz.us> | 2005-06-22 13:10:49 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-06-22 13:10:49 -0400 |
commit | 80bd6d7f5e0d872a0f5a151473d2a39d95d210a8 (patch) | |
tree | b3a36048d6b7de88f7e906624ecb4b98816bb736 /drivers/scsi/sata_svw.c | |
parent | 949d33e70f2c3e93bfe5265a50e40175b1ab1ec1 (diff) | |
parent | 2a5a68b840cbab31baab2d9b2e1e6de3b289ae1e (diff) |
Merge /spare/repo/linux-2.6/
Diffstat (limited to 'drivers/scsi/sata_svw.c')
-rw-r--r-- | drivers/scsi/sata_svw.c | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/drivers/scsi/sata_svw.c b/drivers/scsi/sata_svw.c index 05075bd3a893..858e07185dbd 100644 --- a/drivers/scsi/sata_svw.c +++ b/drivers/scsi/sata_svw.c | |||
@@ -49,7 +49,7 @@ | |||
49 | #endif /* CONFIG_PPC_OF */ | 49 | #endif /* CONFIG_PPC_OF */ |
50 | 50 | ||
51 | #define DRV_NAME "sata_svw" | 51 | #define DRV_NAME "sata_svw" |
52 | #define DRV_VERSION "1.05" | 52 | #define DRV_VERSION "1.06" |
53 | 53 | ||
54 | /* Taskfile registers offsets */ | 54 | /* Taskfile registers offsets */ |
55 | #define K2_SATA_TF_CMD_OFFSET 0x00 | 55 | #define K2_SATA_TF_CMD_OFFSET 0x00 |
@@ -313,6 +313,7 @@ static struct ata_port_operations k2_sata_ops = { | |||
313 | .scr_write = k2_sata_scr_write, | 313 | .scr_write = k2_sata_scr_write, |
314 | .port_start = ata_port_start, | 314 | .port_start = ata_port_start, |
315 | .port_stop = ata_port_stop, | 315 | .port_stop = ata_port_stop, |
316 | .host_stop = ata_host_stop, | ||
316 | }; | 317 | }; |
317 | 318 | ||
318 | static void k2_sata_setup_port(struct ata_ioports *port, unsigned long base) | 319 | static void k2_sata_setup_port(struct ata_ioports *port, unsigned long base) |
@@ -343,6 +344,7 @@ static int k2_sata_init_one (struct pci_dev *pdev, const struct pci_device_id *e | |||
343 | void *mmio_base; | 344 | void *mmio_base; |
344 | int pci_dev_busy = 0; | 345 | int pci_dev_busy = 0; |
345 | int rc; | 346 | int rc; |
347 | int i; | ||
346 | 348 | ||
347 | if (!printed_version++) | 349 | if (!printed_version++) |
348 | printk(KERN_DEBUG DRV_NAME " version " DRV_VERSION "\n"); | 350 | printk(KERN_DEBUG DRV_NAME " version " DRV_VERSION "\n"); |
@@ -420,11 +422,11 @@ static int k2_sata_init_one (struct pci_dev *pdev, const struct pci_device_id *e | |||
420 | probe_ent->mwdma_mask = 0x7; | 422 | probe_ent->mwdma_mask = 0x7; |
421 | probe_ent->udma_mask = 0x7f; | 423 | probe_ent->udma_mask = 0x7f; |
422 | 424 | ||
423 | /* We have 4 ports per PCI function */ | 425 | /* different controllers have different number of ports - currently 4 or 8 */ |
424 | 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 |
425 | 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. */ |
426 | k2_sata_setup_port(&probe_ent->port[2], base + 2 * K2_SATA_PORT_OFFSET); | 428 | for (i = 0; i < ent->driver_data; i++) |
427 | 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); |
428 | 430 | ||
429 | pci_set_master(pdev); | 431 | pci_set_master(pdev); |
430 | 432 | ||
@@ -444,11 +446,17 @@ err_out: | |||
444 | return rc; | 446 | return rc; |
445 | } | 447 | } |
446 | 448 | ||
447 | 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 | * */ | ||
448 | static struct pci_device_id k2_sata_pci_tbl[] = { | 455 | static struct pci_device_id k2_sata_pci_tbl[] = { |
449 | { 0x1166, 0x0240, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, | 456 | { 0x1166, 0x0240, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 }, |
450 | { 0x1166, 0x0241, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, | 457 | { 0x1166, 0x0241, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 }, |
451 | { 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 }, | ||
452 | { } | 460 | { } |
453 | }; | 461 | }; |
454 | 462 | ||