|
@@ -53,7 +53,8 @@ enum {
|
|
|
|
|
|
sil_3112 = 0,
|
|
|
sil_3112_m15w = 1,
|
|
|
- sil_3114 = 2,
|
|
|
+ sil_3512 = 2,
|
|
|
+ sil_3114 = 3,
|
|
|
|
|
|
SIL_FIFO_R0 = 0x40,
|
|
|
SIL_FIFO_W0 = 0x41,
|
|
@@ -90,7 +91,7 @@ static void sil_post_set_mode (struct ata_port *ap);
|
|
|
static const struct pci_device_id sil_pci_tbl[] = {
|
|
|
{ 0x1095, 0x3112, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3112_m15w },
|
|
|
{ 0x1095, 0x0240, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3112_m15w },
|
|
|
- { 0x1095, 0x3512, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3112 },
|
|
|
+ { 0x1095, 0x3512, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3512 },
|
|
|
{ 0x1095, 0x3114, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3114 },
|
|
|
{ 0x1002, 0x436e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3112_m15w },
|
|
|
{ 0x1002, 0x4379, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3112_m15w },
|
|
@@ -185,7 +186,8 @@ static const struct ata_port_info sil_port_info[] = {
|
|
|
.mwdma_mask = 0x07, /* mwdma0-2 */
|
|
|
.udma_mask = 0x3f, /* udma0-5 */
|
|
|
.port_ops = &sil_ops,
|
|
|
- }, /* sil_3112_15w - keep it sync'd w/ sil_3112 */
|
|
|
+ },
|
|
|
+ /* sil_3112_15w - keep it sync'd w/ sil_3112 */
|
|
|
{
|
|
|
.sht = &sil_sht,
|
|
|
.host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
|
|
@@ -195,7 +197,18 @@ static const struct ata_port_info sil_port_info[] = {
|
|
|
.mwdma_mask = 0x07, /* mwdma0-2 */
|
|
|
.udma_mask = 0x3f, /* udma0-5 */
|
|
|
.port_ops = &sil_ops,
|
|
|
- }, /* sil_3114 */
|
|
|
+ },
|
|
|
+ /* sil_3512 */
|
|
|
+ {
|
|
|
+ .sht = &sil_sht,
|
|
|
+ .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
|
|
|
+ ATA_FLAG_SRST | ATA_FLAG_MMIO,
|
|
|
+ .pio_mask = 0x1f, /* pio0-4 */
|
|
|
+ .mwdma_mask = 0x07, /* mwdma0-2 */
|
|
|
+ .udma_mask = 0x3f, /* udma0-5 */
|
|
|
+ .port_ops = &sil_ops,
|
|
|
+ },
|
|
|
+ /* sil_3114 */
|
|
|
{
|
|
|
.sht = &sil_sht,
|
|
|
.host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
|