diff options
author | Sergei Shtylyov <sshtylyov@ru.mvista.com> | 2007-10-11 17:53:59 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-10-11 17:53:59 -0400 |
commit | 851dd33bcf23655eede62730c029e4f608f4084f (patch) | |
tree | 3fb7a080a7d91ee1b02e1de34f66e03259297ad9 /drivers | |
parent | bda7970c27b1033de0afa737cd8e5abf9c55c3d2 (diff) |
ide: call udma_filter() before resorting to the UltraDMA mask
Give the udma_filter() method call precedence over using the mode masks.
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/ide/ide-dma.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c index 097d6e9865bc..f073ea35da00 100644 --- a/drivers/ide/ide-dma.c +++ b/drivers/ide/ide-dma.c | |||
@@ -664,10 +664,11 @@ static unsigned int ide_get_mode_mask(ide_drive_t *drive, u8 base) | |||
664 | if ((id->field_valid & 4) == 0) | 664 | if ((id->field_valid & 4) == 0) |
665 | break; | 665 | break; |
666 | 666 | ||
667 | mask = id->dma_ultra & hwif->ultra_mask; | ||
668 | |||
669 | if (hwif->udma_filter) | 667 | if (hwif->udma_filter) |
670 | mask &= hwif->udma_filter(drive); | 668 | mask = hwif->udma_filter(drive); |
669 | else | ||
670 | mask = hwif->ultra_mask; | ||
671 | mask &= id->dma_ultra; | ||
671 | 672 | ||
672 | if ((mask & 0x78) && (eighty_ninty_three(drive) == 0)) | 673 | if ((mask & 0x78) && (eighty_ninty_three(drive) == 0)) |
673 | mask &= 0x07; | 674 | mask &= 0x07; |