diff options
| -rw-r--r-- | drivers/ide/ide-taskfile.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c index 24c6c3f5e208..6812f4788789 100644 --- a/drivers/ide/ide-taskfile.c +++ b/drivers/ide/ide-taskfile.c | |||
| @@ -837,9 +837,11 @@ ide_startstop_t flagged_taskfile (ide_drive_t *drive, ide_task_t *task) | |||
| 837 | case TASKFILE_OUT_DMA: | 837 | case TASKFILE_OUT_DMA: |
| 838 | case TASKFILE_IN_DMAQ: | 838 | case TASKFILE_IN_DMAQ: |
| 839 | case TASKFILE_IN_DMA: | 839 | case TASKFILE_IN_DMA: |
| 840 | hwif->dma_setup(drive); | 840 | if (!hwif->dma_setup(drive)) { |
| 841 | hwif->dma_exec_cmd(drive, taskfile->command); | 841 | hwif->dma_exec_cmd(drive, taskfile->command); |
| 842 | hwif->dma_start(drive); | 842 | hwif->dma_start(drive); |
| 843 | return ide_started; | ||
| 844 | } | ||
| 843 | break; | 845 | break; |
| 844 | 846 | ||
| 845 | default: | 847 | default: |
| @@ -853,7 +855,8 @@ ide_startstop_t flagged_taskfile (ide_drive_t *drive, ide_task_t *task) | |||
| 853 | return task->prehandler(drive, task->rq); | 855 | return task->prehandler(drive, task->rq); |
| 854 | } | 856 | } |
| 855 | ide_execute_command(drive, taskfile->command, task->handler, WAIT_WORSTCASE, NULL); | 857 | ide_execute_command(drive, taskfile->command, task->handler, WAIT_WORSTCASE, NULL); |
| 858 | return ide_started; | ||
| 856 | } | 859 | } |
| 857 | 860 | ||
| 858 | return ide_started; | 861 | return ide_stopped; |
| 859 | } | 862 | } |
