aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTobias Lorenz <tobias.lorenz@gmx.net>2005-05-12 15:51:01 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-05-12 15:51:01 -0400
commitf497ba735fc9ff4e35a19641143708b3be1c7061 (patch)
treec4762d5796283c3b8fac0ec476e279ed0c5307a8 /drivers
parent88d7bd8cb9eb8d64bf7997600b0d64f7834047c5 (diff)
[libata sata_promise] pdc20619 (PATA) support
Diffstat (limited to 'drivers')
-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 19a13e3590f4..2b5e41f02b8a 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
@@ -146,6 +147,17 @@ static struct ata_port_info pdc_port_info[] = {
146 .udma_mask = 0x7f, /* udma0-6 ; FIXME */ 147 .udma_mask = 0x7f, /* udma0-6 ; FIXME */
147 .port_ops = &pdc_ata_ops, 148 .port_ops = &pdc_ata_ops,
148 }, 149 },
150
151 /* board_20619 */
152 {
153 .sht = &pdc_ata_sht,
154 .host_flags = ATA_FLAG_NO_LEGACY | ATA_FLAG_SRST |
155 ATA_FLAG_MMIO | ATA_FLAG_SLAVE_POSS,
156 .pio_mask = 0x1f, /* pio0-4 */
157 .mwdma_mask = 0x07, /* mwdma0-2 */
158 .udma_mask = 0x7f, /* udma0-6 ; FIXME */
159 .port_ops = &pdc_ata_ops,
160 },
149}; 161};
150 162
151static struct pci_device_id pdc_ata_pci_tbl[] = { 163static struct pci_device_id pdc_ata_pci_tbl[] = {
@@ -169,6 +181,9 @@ static struct pci_device_id pdc_ata_pci_tbl[] = {
169 { PCI_VENDOR_ID_PROMISE, 0x3d18, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 181 { PCI_VENDOR_ID_PROMISE, 0x3d18, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
170 board_20319 }, 182 board_20319 },
171 183
184 { PCI_VENDOR_ID_PROMISE, 0x6629, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
185 board_20619 },
186
172 { } /* terminate list */ 187 { } /* terminate list */
173}; 188};
174 189
@@ -633,6 +648,15 @@ static int pdc_ata_init_one (struct pci_dev *pdev, const struct pci_device_id *e
633 case board_2037x: 648 case board_2037x:
634 probe_ent->n_ports = 2; 649 probe_ent->n_ports = 2;
635 break; 650 break;
651 case board_20619:
652 probe_ent->n_ports = 4;
653
654 pdc_ata_setup_port(&probe_ent->port[2], base + 0x300);
655 pdc_ata_setup_port(&probe_ent->port[3], base + 0x380);
656
657 probe_ent->port[2].scr_addr = base + 0x600;
658 probe_ent->port[3].scr_addr = base + 0x700;
659 break;
636 default: 660 default:
637 BUG(); 661 BUG();
638 break; 662 break;
@@ -673,7 +697,7 @@ static void __exit pdc_ata_exit(void)
673 697
674 698
675MODULE_AUTHOR("Jeff Garzik"); 699MODULE_AUTHOR("Jeff Garzik");
676MODULE_DESCRIPTION("Promise SATA TX2/TX4 low-level driver"); 700MODULE_DESCRIPTION("Promise ATA TX2/TX4/TX4000 low-level driver");
677MODULE_LICENSE("GPL"); 701MODULE_LICENSE("GPL");
678MODULE_DEVICE_TABLE(pci, pdc_ata_pci_tbl); 702MODULE_DEVICE_TABLE(pci, pdc_ata_pci_tbl);
679MODULE_VERSION(DRV_VERSION); 703MODULE_VERSION(DRV_VERSION);