diff options
-rw-r--r-- | drivers/dma/ste_dma40.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/dma/ste_dma40.c b/drivers/dma/ste_dma40.c index aa098a672605..8c46bb803dbb 100644 --- a/drivers/dma/ste_dma40.c +++ b/drivers/dma/ste_dma40.c | |||
@@ -508,6 +508,7 @@ static int d40_channel_execute_command(struct d40_chan *d40c, | |||
508 | void __iomem *active_reg; | 508 | void __iomem *active_reg; |
509 | int ret = 0; | 509 | int ret = 0; |
510 | unsigned long flags; | 510 | unsigned long flags; |
511 | u32 wmask; | ||
511 | 512 | ||
512 | spin_lock_irqsave(&d40c->base->execmd_lock, flags); | 513 | spin_lock_irqsave(&d40c->base->execmd_lock, flags); |
513 | 514 | ||
@@ -525,7 +526,9 @@ static int d40_channel_execute_command(struct d40_chan *d40c, | |||
525 | goto done; | 526 | goto done; |
526 | } | 527 | } |
527 | 528 | ||
528 | writel(command << D40_CHAN_POS(d40c->phy_chan->num), active_reg); | 529 | wmask = 0xffffffff & ~(D40_CHAN_POS_MASK(d40c->phy_chan->num)); |
530 | writel(wmask | (command << D40_CHAN_POS(d40c->phy_chan->num)), | ||
531 | active_reg); | ||
529 | 532 | ||
530 | if (command == D40_DMA_SUSPEND_REQ) { | 533 | if (command == D40_DMA_SUSPEND_REQ) { |
531 | 534 | ||