diff options
author | Tobias Lorenz <tobias.lorenz@gmx.net> | 2005-05-12 15:51:01 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-05-12 15:51:01 -0400 |
commit | f497ba735fc9ff4e35a19641143708b3be1c7061 (patch) | |
tree | c4762d5796283c3b8fac0ec476e279ed0c5307a8 /drivers/scsi/sata_promise.c | |
parent | 88d7bd8cb9eb8d64bf7997600b0d64f7834047c5 (diff) |
[libata sata_promise] pdc20619 (PATA) support
Diffstat (limited to 'drivers/scsi/sata_promise.c')
-rw-r--r-- | drivers/scsi/sata_promise.c | 26 |
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 | ||
151 | static struct pci_device_id pdc_ata_pci_tbl[] = { | 163 | static 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 | ||
675 | MODULE_AUTHOR("Jeff Garzik"); | 699 | MODULE_AUTHOR("Jeff Garzik"); |
676 | MODULE_DESCRIPTION("Promise SATA TX2/TX4 low-level driver"); | 700 | MODULE_DESCRIPTION("Promise ATA TX2/TX4/TX4000 low-level driver"); |
677 | MODULE_LICENSE("GPL"); | 701 | MODULE_LICENSE("GPL"); |
678 | MODULE_DEVICE_TABLE(pci, pdc_ata_pci_tbl); | 702 | MODULE_DEVICE_TABLE(pci, pdc_ata_pci_tbl); |
679 | MODULE_VERSION(DRV_VERSION); | 703 | MODULE_VERSION(DRV_VERSION); |