Re: [PATCH] ASoC: fsl_mqs: Fix unchecked return value for clk_prepare_enable

2020-06-22 Thread Shengjiu Wang
On Tue, Jun 23, 2020 at 12:08 AM Markus Elfring  wrote:
>
> > Fix unchecked return value for clk_prepare_enable.
> >
> > And because clk_prepare_enable and clk_disable_unprepare should
> > check input clock parameter is NULL or not, then we don't need
> > to check it before calling the function.
>
> I propose to split the adjustment of two function implementations
> into separate update steps for a small patch series.
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?id=625d3449788f85569096780592549d0340e9c0c7#n138
>
> I suggest to improve the change descriptions accordingly.

ok, will update the patches in v2.

best regards
wang shengjiu


Re: [PATCH] ASoC: fsl_mqs: Fix unchecked return value for clk_prepare_enable

2020-06-22 Thread Markus Elfring
> Fix unchecked return value for clk_prepare_enable.
>
> And because clk_prepare_enable and clk_disable_unprepare should
> check input clock parameter is NULL or not, then we don't need
> to check it before calling the function.

I propose to split the adjustment of two function implementations
into separate update steps for a small patch series.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?id=625d3449788f85569096780592549d0340e9c0c7#n138

I suggest to improve the change descriptions accordingly.

Regards,
Markus


[PATCH] ASoC: fsl_mqs: Fix unchecked return value for clk_prepare_enable

2020-06-22 Thread Shengjiu Wang
Fix unchecked return value for clk_prepare_enable.

And because clk_prepare_enable and clk_disable_unprepare should
check input clock parameter is NULL or not, then we don't need
to check it before calling the function.

Fixes: 9e28f6532c61 ("ASoC: fsl_mqs: Add MQS component driver")
Signed-off-by: Shengjiu Wang 
---
 sound/soc/fsl/fsl_mqs.c | 23 ++-
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/sound/soc/fsl/fsl_mqs.c b/sound/soc/fsl/fsl_mqs.c
index 0c813a45bba7..69aeb0e71844 100644
--- a/sound/soc/fsl/fsl_mqs.c
+++ b/sound/soc/fsl/fsl_mqs.c
@@ -265,12 +265,20 @@ static int fsl_mqs_remove(struct platform_device *pdev)
 static int fsl_mqs_runtime_resume(struct device *dev)
 {
struct fsl_mqs *mqs_priv = dev_get_drvdata(dev);
+   int ret;
 
-   if (mqs_priv->ipg)
-   clk_prepare_enable(mqs_priv->ipg);
+   ret = clk_prepare_enable(mqs_priv->ipg);
+   if (ret) {
+   dev_err(dev, "failed to enable ipg clock\n");
+   return ret;
+   }
 
-   if (mqs_priv->mclk)
-   clk_prepare_enable(mqs_priv->mclk);
+   ret = clk_prepare_enable(mqs_priv->mclk);
+   if (ret) {
+   dev_err(dev, "failed to enable mclk clock\n");
+   clk_disable_unprepare(mqs_priv->ipg);
+   return ret;
+   }
 
if (mqs_priv->use_gpr)
regmap_write(mqs_priv->regmap, IOMUXC_GPR2,
@@ -292,11 +300,8 @@ static int fsl_mqs_runtime_suspend(struct device *dev)
regmap_read(mqs_priv->regmap, REG_MQS_CTRL,
_priv->reg_mqs_ctrl);
 
-   if (mqs_priv->mclk)
-   clk_disable_unprepare(mqs_priv->mclk);
-
-   if (mqs_priv->ipg)
-   clk_disable_unprepare(mqs_priv->ipg);
+   clk_disable_unprepare(mqs_priv->mclk);
+   clk_disable_unprepare(mqs_priv->ipg);
 
return 0;
 }
-- 
2.21.0