Commit f65fb10982229b15702dc5f1e675cf30a14ca11a

Authored by balrog
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,12 +583,13 @@ static void omap_dma_deactivate_channel(struct omap_dma_s *s,
583 if (ch->pending_request && !ch->waiting_end_prog) { 583 if (ch->pending_request && !ch->waiting_end_prog) {
584 /* Don't deactivate the channel */ 584 /* Don't deactivate the channel */
585 ch->pending_request = 0; 585 ch->pending_request = 0;
586 - return; 586 + if (ch->enable)
  587 + return;
587 } 588 }
588 589
589 /* Don't deactive the channel if it is synchronized and the DMA request is 590 /* Don't deactive the channel if it is synchronized and the DMA request is
590 active */ 591 active */
591 - if (ch->sync && (s->drq & (1 << ch->sync))) 592 + if (ch->sync && (s->drq & (1 << ch->sync)) && ch->enable)
592 return; 593 return;
593 594
594 if (ch->active) { 595 if (ch->active) {