diff options
Diffstat (limited to 'drivers/ide/ide-dma.c')
-rw-r--r-- | drivers/ide/ide-dma.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c index ff644a5e12cd..097d6e9865bc 100644 --- a/drivers/ide/ide-dma.c +++ b/drivers/ide/ide-dma.c | |||
@@ -673,8 +673,13 @@ static unsigned int ide_get_mode_mask(ide_drive_t *drive, u8 base) | |||
673 | mask &= 0x07; | 673 | mask &= 0x07; |
674 | break; | 674 | break; |
675 | case XFER_MW_DMA_0: | 675 | case XFER_MW_DMA_0: |
676 | if (id->field_valid & 2) | 676 | if ((id->field_valid & 2) == 0) |
677 | mask = id->dma_mword & hwif->mwdma_mask; | 677 | break; |
678 | if (hwif->mdma_filter) | ||
679 | mask = hwif->mdma_filter(drive); | ||
680 | else | ||
681 | mask = hwif->mwdma_mask; | ||
682 | mask &= id->dma_mword; | ||
678 | break; | 683 | break; |
679 | case XFER_SW_DMA_0: | 684 | case XFER_SW_DMA_0: |
680 | if (id->field_valid & 2) { | 685 | if (id->field_valid & 2) { |