Merge tag 'asoc-v4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound...
[sfrench/cifs-2.6.git] / sound / atmel / ac97c.c
index 31914912c0ba17c708cafdb60e1ac57cb78fcca1..380025887aef61e2aa87a7845d12a7d1ba9b85ae 100644 (file)
@@ -747,7 +747,9 @@ static int atmel_ac97c_probe(struct platform_device *pdev)
                dev_dbg(&pdev->dev, "no peripheral clock\n");
                return PTR_ERR(pclk);
        }
-       clk_prepare_enable(pclk);
+       retval = clk_prepare_enable(pclk);
+       if (retval)
+               goto err_prepare_enable;
 
        retval = snd_card_new(&pdev->dev, SNDRV_DEFAULT_IDX1,
                              SNDRV_DEFAULT_STR1, THIS_MODULE,
@@ -832,6 +834,7 @@ err_request_irq:
        snd_card_free(card);
 err_snd_card_new:
        clk_disable_unprepare(pclk);
+err_prepare_enable:
        clk_put(pclk);
        return retval;
 }
@@ -850,9 +853,9 @@ static int atmel_ac97c_resume(struct device *pdev)
 {
        struct snd_card *card = dev_get_drvdata(pdev);
        struct atmel_ac97c *chip = card->private_data;
+       int ret = clk_prepare_enable(chip->pclk);
 
-       clk_prepare_enable(chip->pclk);
-       return 0;
+       return ret;
 }
 
 static SIMPLE_DEV_PM_OPS(atmel_ac97c_pm, atmel_ac97c_suspend, atmel_ac97c_resume);