|
@@ -2047,7 +2047,7 @@ static int d40_free_dma(struct d40_chan *d40c)
|
|
|
res = d40_channel_execute_command(d40c, D40_DMA_STOP);
|
|
|
if (res) {
|
|
|
chan_err(d40c, "stop failed\n");
|
|
|
- goto out;
|
|
|
+ goto mark_last_busy;
|
|
|
}
|
|
|
|
|
|
d40_alloc_mask_free(phy, is_src, chan_is_logical(d40c) ? event : 0);
|
|
@@ -2065,8 +2065,7 @@ static int d40_free_dma(struct d40_chan *d40c)
|
|
|
d40c->busy = false;
|
|
|
d40c->phy_chan = NULL;
|
|
|
d40c->configured = false;
|
|
|
-out:
|
|
|
-
|
|
|
+ mark_last_busy:
|
|
|
pm_runtime_mark_last_busy(d40c->base->dev);
|
|
|
pm_runtime_put_autosuspend(d40c->base->dev);
|
|
|
return res;
|