Add the missing clk_disable_unprepare() before return from
atmel_pdmic_cpu_dai_startup() in the error handling case.

Signed-off-by: Wei Yongjun <[email protected]>
---
 sound/soc/atmel/atmel-pdmic.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sound/soc/atmel/atmel-pdmic.c b/sound/soc/atmel/atmel-pdmic.c
index 2a3a41f..a67e31b 100644
--- a/sound/soc/atmel/atmel-pdmic.c
+++ b/sound/soc/atmel/atmel-pdmic.c
@@ -115,8 +115,10 @@ static int atmel_pdmic_cpu_dai_startup(struct 
snd_pcm_substream *substream,
                return ret;
 
        ret =  clk_prepare_enable(dd->pclk);
-       if (ret)
+       if (ret) {
+               clk_disable_unprepare(dd->gclk);
                return ret;
+       }
 
        /* Clear all bits in the Control Register(PDMIC_CR) */
        regmap_write(dd->regmap, PDMIC_CR, 0);

Reply via email to