Merge branch 'fixes' into next

This commit is contained in:
Vinod Koul 2021-08-02 12:34:48 +05:30
commit ffa179ae2a
4 changed files with 14 additions and 9 deletions

View file

@ -67,8 +67,12 @@ static struct dma_chan *of_dma_router_xlate(struct of_phandle_args *dma_spec,
return NULL; return NULL;
ofdma_target = of_dma_find_controller(&dma_spec_target); ofdma_target = of_dma_find_controller(&dma_spec_target);
if (!ofdma_target) if (!ofdma_target) {
return NULL; ofdma->dma_router->route_free(ofdma->dma_router->dev,
route_data);
chan = ERR_PTR(-EPROBE_DEFER);
goto err;
}
chan = ofdma_target->of_dma_xlate(&dma_spec_target, ofdma_target); chan = ofdma_target->of_dma_xlate(&dma_spec_target, ofdma_target);
if (IS_ERR_OR_NULL(chan)) { if (IS_ERR_OR_NULL(chan)) {
@ -89,6 +93,7 @@ static struct dma_chan *of_dma_router_xlate(struct of_phandle_args *dma_spec,
} }
} }
err:
/* /*
* Need to put the node back since the ofdma->of_dma_route_allocate * Need to put the node back since the ofdma->of_dma_route_allocate
* has taken it for generating the new, translated dma_spec * has taken it for generating the new, translated dma_spec

View file

@ -1202,7 +1202,7 @@ static int stm32_dma_alloc_chan_resources(struct dma_chan *c)
chan->config_init = false; chan->config_init = false;
ret = pm_runtime_get_sync(dmadev->ddev.dev); ret = pm_runtime_resume_and_get(dmadev->ddev.dev);
if (ret < 0) if (ret < 0)
return ret; return ret;
@ -1474,7 +1474,7 @@ static int stm32_dma_suspend(struct device *dev)
struct stm32_dma_device *dmadev = dev_get_drvdata(dev); struct stm32_dma_device *dmadev = dev_get_drvdata(dev);
int id, ret, scr; int id, ret, scr;
ret = pm_runtime_get_sync(dev); ret = pm_runtime_resume_and_get(dev);
if (ret < 0) if (ret < 0)
return ret; return ret;

View file

@ -137,7 +137,7 @@ static void *stm32_dmamux_route_allocate(struct of_phandle_args *dma_spec,
/* Set dma request */ /* Set dma request */
spin_lock_irqsave(&dmamux->lock, flags); spin_lock_irqsave(&dmamux->lock, flags);
ret = pm_runtime_get_sync(&pdev->dev); ret = pm_runtime_resume_and_get(&pdev->dev);
if (ret < 0) { if (ret < 0) {
spin_unlock_irqrestore(&dmamux->lock, flags); spin_unlock_irqrestore(&dmamux->lock, flags);
goto error; goto error;
@ -336,7 +336,7 @@ static int stm32_dmamux_suspend(struct device *dev)
struct stm32_dmamux_data *stm32_dmamux = platform_get_drvdata(pdev); struct stm32_dmamux_data *stm32_dmamux = platform_get_drvdata(pdev);
int i, ret; int i, ret;
ret = pm_runtime_get_sync(dev); ret = pm_runtime_resume_and_get(dev);
if (ret < 0) if (ret < 0)
return ret; return ret;
@ -361,7 +361,7 @@ static int stm32_dmamux_resume(struct device *dev)
if (ret < 0) if (ret < 0)
return ret; return ret;
ret = pm_runtime_get_sync(dev); ret = pm_runtime_resume_and_get(dev);
if (ret < 0) if (ret < 0)
return ret; return ret;

View file

@ -209,8 +209,8 @@ static int uniphier_xdmac_chan_stop(struct uniphier_xdmac_chan *xc)
writel(0, xc->reg_ch_base + XDMAC_TSS); writel(0, xc->reg_ch_base + XDMAC_TSS);
/* wait until transfer is stopped */ /* wait until transfer is stopped */
return readl_poll_timeout(xc->reg_ch_base + XDMAC_STAT, val, return readl_poll_timeout_atomic(xc->reg_ch_base + XDMAC_STAT, val,
!(val & XDMAC_STAT_TENF), 100, 1000); !(val & XDMAC_STAT_TENF), 100, 1000);
} }
/* xc->vc.lock must be held by caller */ /* xc->vc.lock must be held by caller */