aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ide-dma.c
diff options
context:
space:
mode:
authorSergei Shtylyov <sshtylyov@ru.mvista.com>2007-10-11 17:53:59 -0400
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2007-10-11 17:53:59 -0400
commit851dd33bcf23655eede62730c029e4f608f4084f (patch)
tree3fb7a080a7d91ee1b02e1de34f66e03259297ad9 /drivers/ide/ide-dma.c
parentbda7970c27b1033de0afa737cd8e5abf9c55c3d2 (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/ide/ide-dma.c')
-rw-r--r--drivers/ide/ide-dma.c7
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;