summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz2007-05-16 00:51:43 +0200
committerBartlomiej Zolnierkiewicz2007-05-16 00:51:43 +0200
commit793a97228d3da876f42b7fb4d4a52cc8cc86dc81 (patch)
treece76adb97bca7089e8bc96cb774d90fb3e254926
parentpdc202xx_new: use ide_tune_dma() (diff)
downloadkernel-qcow2-linux-793a97228d3da876f42b7fb4d4a52cc8cc86dc81.tar.gz
kernel-qcow2-linux-793a97228d3da876f42b7fb4d4a52cc8cc86dc81.tar.xz
kernel-qcow2-linux-793a97228d3da876f42b7fb4d4a52cc8cc86dc81.zip
ide: always disable DMA before tuning it
ide_start_power_step() and set_using_dma() were missing ->dma_off_quietly call (comment in probe_hwif() states that DMA should be always cleared before tuning is attempted). Fix it. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
-rw-r--r--drivers/ide/ide-io.c1
-rw-r--r--drivers/ide/ide.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index 8e568143d90d..bfe8f1b712ba 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -223,6 +223,7 @@ static ide_startstop_t ide_start_power_step(ide_drive_t *drive, struct request *
break;
if (drive->hwif->ide_dma_check == NULL)
break;
+ drive->hwif->dma_off_quietly(drive);
ide_set_dma(drive);
break;
}
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index f2b547ff7722..6002713a20a1 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -910,6 +910,7 @@ int set_using_dma(ide_drive_t *drive, int arg)
err = 0;
if (arg) {
+ hwif->dma_off_quietly(drive);
if (ide_set_dma(drive) || hwif->ide_dma_on(drive))
err = -EIO;
} else