Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 72192366 authored by Fabio Estevam's avatar Fabio Estevam Committed by Mark Brown
Browse files

ASoC: fsl: imx-audmux: Check the return value from clk_prepare_enable()



clk_prepare_enable() may fail, so let's check its return value and propagate it
in the case of error.

Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent f3142807
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -73,8 +73,11 @@ static ssize_t audmux_read_file(struct file *file, char __user *user_buf,
	if (!buf)
		return -ENOMEM;

	if (audmux_clk)
		clk_prepare_enable(audmux_clk);
	if (audmux_clk) {
		ret = clk_prepare_enable(audmux_clk);
		if (ret)
			return ret;
	}

	ptcr = readl(audmux_base + IMX_AUDMUX_V2_PTCR(port));
	pdcr = readl(audmux_base + IMX_AUDMUX_V2_PDCR(port));
@@ -224,14 +227,19 @@ EXPORT_SYMBOL_GPL(imx_audmux_v1_configure_port);
int imx_audmux_v2_configure_port(unsigned int port, unsigned int ptcr,
		unsigned int pdcr)
{
	int ret;

	if (audmux_type != IMX31_AUDMUX)
		return -EINVAL;

	if (!audmux_base)
		return -ENOSYS;

	if (audmux_clk)
		clk_prepare_enable(audmux_clk);
	if (audmux_clk) {
		ret = clk_prepare_enable(audmux_clk);
		if (ret)
			return ret;
	}

	writel(ptcr, audmux_base + IMX_AUDMUX_V2_PTCR(port));
	writel(pdcr, audmux_base + IMX_AUDMUX_V2_PDCR(port));