@@ -324,9 +324,11 @@ static void imx_audmux_remove(struct platform_device *pdev)
#ifdef CONFIG_PM_SLEEP
static int imx_audmux_suspend(struct device *dev)
{
- int i;
+ int i, ret;
- clk_prepare_enable(audmux_clk);
+ ret = clk_prepare_enable(audmux_clk);
+ if (ret)
+ return ret;
for (i = 0; i < reg_max; i++)
regcache[i] = readl(audmux_base + i * 4);
@@ -338,9 +340,11 @@ static int imx_audmux_suspend(struct device *dev)
static int imx_audmux_resume(struct device *dev)
{
- int i;
+ int i, ret;
- clk_prepare_enable(audmux_clk);
+ ret = clk_prepare_enable(audmux_clk);
+ if (ret)
+ return ret;
for (i = 0; i < reg_max; i++)
writel(regcache[i], audmux_base + i * 4);
check the return value of clk_prepare_enable(), and if clk_prepare_enable() gets an unexpected return value, imx_audmux_suspend() and imx_audmux_resume() should return the error value. Signed-off-by: Yuanjun Gong <ruc_gongyuanjun@163.com> --- sound/soc/fsl/imx-audmux.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)