Commit f65fb10982229b15702dc5f1e675cf30a14ca11a
1 parent
b1314cf9
Really stop the transfer when the DMA channel is being disabled.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3987 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
3 additions
and
2 deletions
hw/omap.c
| ... | ... | @@ -583,12 +583,13 @@ static void omap_dma_deactivate_channel(struct omap_dma_s *s, |
| 583 | 583 | if (ch->pending_request && !ch->waiting_end_prog) { |
| 584 | 584 | /* Don't deactivate the channel */ |
| 585 | 585 | ch->pending_request = 0; |
| 586 | - return; | |
| 586 | + if (ch->enable) | |
| 587 | + return; | |
| 587 | 588 | } |
| 588 | 589 | |
| 589 | 590 | /* Don't deactive the channel if it is synchronized and the DMA request is |
| 590 | 591 | active */ |
| 591 | - if (ch->sync && (s->drq & (1 << ch->sync))) | |
| 592 | + if (ch->sync && (s->drq & (1 << ch->sync)) && ch->enable) | |
| 592 | 593 | return; |
| 593 | 594 | |
| 594 | 595 | if (ch->active) { | ... | ... |