diff options
author | balrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-02-23 02:08:35 +0000 |
---|---|---|
committer | balrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-02-23 02:08:35 +0000 |
commit | f65fb10982229b15702dc5f1e675cf30a14ca11a (patch) | |
tree | 98eaf84c9d2c5eb9a1eb70341edca8880dacdc3f /hw | |
parent | b1314cf9d3119846526eabae6bbd7b8796d22958 (diff) |
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
Diffstat (limited to 'hw')
-rw-r--r-- | hw/omap.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -583,12 +583,13 @@ static void omap_dma_deactivate_channel(struct omap_dma_s *s, if (ch->pending_request && !ch->waiting_end_prog) { /* Don't deactivate the channel */ ch->pending_request = 0; - return; + if (ch->enable) + return; } /* Don't deactive the channel if it is synchronized and the DMA request is active */ - if (ch->sync && (s->drq & (1 << ch->sync))) + if (ch->sync && (s->drq & (1 << ch->sync)) && ch->enable) return; if (ch->active) { |