summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/ata.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c
index 5331e7f589..cb857158ca 100644
--- a/firmware/drivers/ata.c
+++ b/firmware/drivers/ata.c
@@ -1116,8 +1116,13 @@ static int set_features(void)
1116 1116
1117#ifdef HAVE_ATA_DMA 1117#ifdef HAVE_ATA_DMA
1118 if (identify_info[53] & (1<<2)) { 1118 if (identify_info[53] & (1<<2)) {
1119 int max_udma = ATA_MAX_UDMA;
1120#if ATA_MAX_UDMA > 2
1121 if (!(ata_identify_data[93] & BIT(13)))
1122 max_udma = 2;
1123#endif
1119 /* Ultra DMA mode info present, find a mode */ 1124 /* Ultra DMA mode info present, find a mode */
1120 dma_mode = ata_get_best_mode(identify_info[88], ATA_MAX_UDMA, 0x40); 1125 dma_mode = ata_get_best_mode(identify_info[88], max_udma, 0x40);
1121 } 1126 }
1122 1127
1123 if (!dma_mode) { 1128 if (!dma_mode) {