mirror of https://gitee.com/openkylin/linux.git
mmc: mxcmmc: Handle return value of clk_prepare_enable
clk_prepare_enable() can fail here and we must check its return value. Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
78bb1fd7f1
commit
a2bc74cfee
|
@ -1103,8 +1103,13 @@ static int mxcmci_probe(struct platform_device *pdev)
|
|||
goto out_free;
|
||||
}
|
||||
|
||||
clk_prepare_enable(host->clk_per);
|
||||
clk_prepare_enable(host->clk_ipg);
|
||||
ret = clk_prepare_enable(host->clk_per);
|
||||
if (ret)
|
||||
goto out_free;
|
||||
|
||||
ret = clk_prepare_enable(host->clk_ipg);
|
||||
if (ret)
|
||||
goto out_clk_per_put;
|
||||
|
||||
mxcmci_softreset(host);
|
||||
|
||||
|
@ -1173,8 +1178,9 @@ static int mxcmci_probe(struct platform_device *pdev)
|
|||
dma_release_channel(host->dma);
|
||||
|
||||
out_clk_put:
|
||||
clk_disable_unprepare(host->clk_per);
|
||||
clk_disable_unprepare(host->clk_ipg);
|
||||
out_clk_per_put:
|
||||
clk_disable_unprepare(host->clk_per);
|
||||
|
||||
out_free:
|
||||
mmc_free_host(mmc);
|
||||
|
@ -1217,10 +1223,17 @@ static int __maybe_unused mxcmci_resume(struct device *dev)
|
|||
{
|
||||
struct mmc_host *mmc = dev_get_drvdata(dev);
|
||||
struct mxcmci_host *host = mmc_priv(mmc);
|
||||
int ret;
|
||||
|
||||
clk_prepare_enable(host->clk_per);
|
||||
clk_prepare_enable(host->clk_ipg);
|
||||
return 0;
|
||||
ret = clk_prepare_enable(host->clk_per);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = clk_prepare_enable(host->clk_ipg);
|
||||
if (ret)
|
||||
clk_disable_unprepare(host->clk_per);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static SIMPLE_DEV_PM_OPS(mxcmci_pm_ops, mxcmci_suspend, mxcmci_resume);
|
||||
|
|
Loading…
Reference in New Issue