diff -up ./drivers/ata/pata_ali.c.dist ./drivers/ata/pata_ali.c --- ./drivers/ata/pata_ali.c.dist 2017-02-20 16:04:43.000000000 +0900 +++ ./drivers/ata/pata_ali.c 2017-03-12 18:53:56.000000000 +0900 @@ -512,6 +512,15 @@ static int ali_init_one(struct pci_dev * .udma_mask = ATA_UDMA2, .port_ops = &ali_20_port_ops }; + /* Revision 0xC1 adds UDMA33 */ + static const struct ata_port_info info_c1 = { + .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 | + ATA_FLAG_IGN_SIMPLEX, + .pio_mask = ATA_PIO4, + .mwdma_mask = ATA_MWDMA2, + .udma_mask = ATA_UDMA2, + .port_ops = &ali_c2_port_ops + }; /* Revision 0xC2 adds UDMA66 */ static const struct ata_port_info info_c2 = { .flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 | @@ -563,8 +572,10 @@ static int ali_init_one(struct pci_dev * if (pdev->revision < 0x20) { ppi[0] = &info_early; - } else if (pdev->revision < 0xC2) { + } else if (pdev->revision < 0xC1) { ppi[0] = &info_20; + } else if (pdev->revision == 0xC1) { + ppi[0] = &info_c1; } else if (pdev->revision == 0xC2) { ppi[0] = &info_c2; } else if (pdev->revision == 0xC3) {