aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/sata_promise.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/sata_promise.c')
-rw-r--r--drivers/scsi/sata_promise.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/drivers/scsi/sata_promise.c b/drivers/scsi/sata_promise.c
index b18c90582e67..5c1d4411457a 100644
--- a/drivers/scsi/sata_promise.c
+++ b/drivers/scsi/sata_promise.c
@@ -59,6 +59,7 @@ enum {
59 59
60 board_2037x = 0, /* FastTrak S150 TX2plus */ 60 board_2037x = 0, /* FastTrak S150 TX2plus */
61 board_20319 = 1, /* FastTrak S150 TX4 */ 61 board_20319 = 1, /* FastTrak S150 TX4 */
62 board_20619 = 2, /* FastTrak TX4000 */
62 63
63 PDC_HAS_PATA = (1 << 1), /* PDC20375 has PATA */ 64 PDC_HAS_PATA = (1 << 1), /* PDC20375 has PATA */
64 65
@@ -147,6 +148,17 @@ static struct ata_port_info pdc_port_info[] = {
147 .udma_mask = 0x7f, /* udma0-6 ; FIXME */ 148 .udma_mask = 0x7f, /* udma0-6 ; FIXME */
148 .port_ops = &pdc_ata_ops, 149 .port_ops = &pdc_ata_ops,
149 }, 150 },
151
152 /* board_20619 */
153 {
154 .sht = &pdc_ata_sht,
155 .host_flags = ATA_FLAG_NO_LEGACY | ATA_FLAG_SRST |
156 ATA_FLAG_MMIO | ATA_FLAG_SLAVE_POSS,
157 .pio_mask = 0x1f, /* pio0-4 */
158 .mwdma_mask = 0x07, /* mwdma0-2 */
159 .udma_mask = 0x7f, /* udma0-6 ; FIXME */
160 .port_ops = &pdc_ata_ops,
161 },
150}; 162};
151 163
152static struct pci_device_id pdc_ata_pci_tbl[] = { 164static struct pci_device_id pdc_ata_pci_tbl[] = {
@@ -172,6 +184,9 @@ static struct pci_device_id pdc_ata_pci_tbl[] = {
172 { PCI_VENDOR_ID_PROMISE, 0x3d18, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 184 { PCI_VENDOR_ID_PROMISE, 0x3d18, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
173 board_20319 }, 185 board_20319 },
174 186
187 { PCI_VENDOR_ID_PROMISE, 0x6629, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
188 board_20619 },
189
175 { } /* terminate list */ 190 { } /* terminate list */
176}; 191};
177 192
@@ -636,6 +651,15 @@ static int pdc_ata_init_one (struct pci_dev *pdev, const struct pci_device_id *e
636 case board_2037x: 651 case board_2037x:
637 probe_ent->n_ports = 2; 652 probe_ent->n_ports = 2;
638 break; 653 break;
654 case board_20619:
655 probe_ent->n_ports = 4;
656
657 pdc_ata_setup_port(&probe_ent->port[2], base + 0x300);
658 pdc_ata_setup_port(&probe_ent->port[3], base + 0x380);
659
660 probe_ent->port[2].scr_addr = base + 0x600;
661 probe_ent->port[3].scr_addr = base + 0x700;
662 break;
639 default: 663 default:
640 BUG(); 664 BUG();
641 break; 665 break;
@@ -676,7 +700,7 @@ static void __exit pdc_ata_exit(void)
676 700
677 701
678MODULE_AUTHOR("Jeff Garzik"); 702MODULE_AUTHOR("Jeff Garzik");
679MODULE_DESCRIPTION("Promise SATA TX2/TX4 low-level driver"); 703MODULE_DESCRIPTION("Promise ATA TX2/TX4/TX4000 low-level driver");
680MODULE_LICENSE("GPL"); 704MODULE_LICENSE("GPL");
681MODULE_DEVICE_TABLE(pci, pdc_ata_pci_tbl); 705MODULE_DEVICE_TABLE(pci, pdc_ata_pci_tbl);
682MODULE_VERSION(DRV_VERSION); 706MODULE_VERSION(DRV_VERSION);