diff options
| -rw-r--r-- | drivers/ata/pata_it821x.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/drivers/ata/pata_it821x.c b/drivers/ata/pata_it821x.c index f828a29d7756..f1bb2f9fecbf 100644 --- a/drivers/ata/pata_it821x.c +++ b/drivers/ata/pata_it821x.c | |||
| @@ -80,7 +80,7 @@ | |||
| 80 | 80 | ||
| 81 | 81 | ||
| 82 | #define DRV_NAME "pata_it821x" | 82 | #define DRV_NAME "pata_it821x" |
| 83 | #define DRV_VERSION "0.4.0" | 83 | #define DRV_VERSION "0.4.2" |
| 84 | 84 | ||
| 85 | struct it821x_dev | 85 | struct it821x_dev |
| 86 | { | 86 | { |
| @@ -494,8 +494,6 @@ static int it821x_smart_set_mode(struct ata_link *link, struct ata_device **unus | |||
| 494 | * special. In our case we need to lock the sector count to avoid | 494 | * special. In our case we need to lock the sector count to avoid |
| 495 | * blowing the brains out of the firmware with large LBA48 requests | 495 | * blowing the brains out of the firmware with large LBA48 requests |
| 496 | * | 496 | * |
| 497 | * FIXME: When FUA appears we need to block FUA too. And SMART and | ||
| 498 | * basically we need to filter commands for this chip. | ||
| 499 | */ | 497 | */ |
| 500 | 498 | ||
| 501 | static void it821x_dev_config(struct ata_device *adev) | 499 | static void it821x_dev_config(struct ata_device *adev) |
| @@ -890,6 +888,13 @@ static int it821x_init_one(struct pci_dev *pdev, const struct pci_device_id *id) | |||
| 890 | .flags = ATA_FLAG_SLAVE_POSS, | 888 | .flags = ATA_FLAG_SLAVE_POSS, |
| 891 | .pio_mask = 0x1f, | 889 | .pio_mask = 0x1f, |
| 892 | .mwdma_mask = 0x07, | 890 | .mwdma_mask = 0x07, |
| 891 | .udma_mask = ATA_UDMA6, | ||
| 892 | .port_ops = &it821x_rdc_port_ops | ||
| 893 | }; | ||
| 894 | static const struct ata_port_info info_rdc_11 = { | ||
| 895 | .flags = ATA_FLAG_SLAVE_POSS, | ||
| 896 | .pio_mask = 0x1f, | ||
| 897 | .mwdma_mask = 0x07, | ||
| 893 | /* No UDMA */ | 898 | /* No UDMA */ |
| 894 | .port_ops = &it821x_rdc_port_ops | 899 | .port_ops = &it821x_rdc_port_ops |
| 895 | }; | 900 | }; |
| @@ -903,7 +908,11 @@ static int it821x_init_one(struct pci_dev *pdev, const struct pci_device_id *id) | |||
| 903 | return rc; | 908 | return rc; |
| 904 | 909 | ||
| 905 | if (pdev->vendor == PCI_VENDOR_ID_RDC) { | 910 | if (pdev->vendor == PCI_VENDOR_ID_RDC) { |
| 906 | ppi[0] = &info_rdc; | 911 | /* Deal with Vortex86SX */ |
| 912 | if (pdev->revision == 0x11) | ||
| 913 | ppi[0] = &info_rdc_11; | ||
| 914 | else | ||
| 915 | ppi[0] = &info_rdc; | ||
| 907 | } else { | 916 | } else { |
| 908 | /* Force the card into bypass mode if so requested */ | 917 | /* Force the card into bypass mode if so requested */ |
| 909 | if (it8212_noraid) { | 918 | if (it8212_noraid) { |
