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) { | ... | ... |