aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ide-dma.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/ide-dma.c')
-rw-r--r--drivers/ide/ide-dma.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c
index f9c91752f275..a0b8cab1d9a6 100644
--- a/drivers/ide/ide-dma.c
+++ b/drivers/ide/ide-dma.c
@@ -261,6 +261,14 @@ static unsigned int ide_get_mode_mask(ide_drive_t *drive, u8 base, u8 req_mode)
261 break; 261 break;
262 case XFER_MW_DMA_0: 262 case XFER_MW_DMA_0:
263 mask = id[ATA_ID_MWDMA_MODES]; 263 mask = id[ATA_ID_MWDMA_MODES];
264
265 /* Also look for the CF specific MWDMA modes... */
266 if (ata_id_is_cfa(id) && (id[ATA_ID_CFA_MODES] & 0x38)) {
267 u8 mode = ((id[ATA_ID_CFA_MODES] & 0x38) >> 3) - 1;
268
269 mask |= ((2 << mode) - 1) << 3;
270 }
271
264 if (port_ops && port_ops->mdma_filter) 272 if (port_ops && port_ops->mdma_filter)
265 mask &= port_ops->mdma_filter(drive); 273 mask &= port_ops->mdma_filter(drive);
266 else 274 else