diff options
Diffstat (limited to 'drivers/ide/pci/alim15x3.c')
-rw-r--r-- | drivers/ide/pci/alim15x3.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/ide/pci/alim15x3.c b/drivers/ide/pci/alim15x3.c index 946a12746cb5..26c27d946c67 100644 --- a/drivers/ide/pci/alim15x3.c +++ b/drivers/ide/pci/alim15x3.c | |||
@@ -783,8 +783,17 @@ static void __devinit init_hwif_common_ali15x3 (ide_hwif_t *hwif) | |||
783 | 783 | ||
784 | hwif->atapi_dma = 1; | 784 | hwif->atapi_dma = 1; |
785 | 785 | ||
786 | if (m5229_revision > 0x20) | 786 | if (m5229_revision <= 0x20) |
787 | hwif->ultra_mask = 0x7f; | 787 | hwif->ultra_mask = 0x00; /* no udma */ |
788 | else if (m5229_revision < 0xC2) | ||
789 | hwif->ultra_mask = 0x07; /* udma0-2 */ | ||
790 | else if (m5229_revision == 0xC2 || m5229_revision == 0xC3) | ||
791 | hwif->ultra_mask = 0x1f; /* udma0-4 */ | ||
792 | else if (m5229_revision == 0xC4) | ||
793 | hwif->ultra_mask = 0x3f; /* udma0-5 */ | ||
794 | else | ||
795 | hwif->ultra_mask = 0x7f; /* udma0-6 */ | ||
796 | |||
788 | hwif->mwdma_mask = 0x07; | 797 | hwif->mwdma_mask = 0x07; |
789 | hwif->swdma_mask = 0x07; | 798 | hwif->swdma_mask = 0x07; |
790 | 799 | ||