|
@@ -783,7 +783,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,
|
|
@@ -879,6 +881,7 @@ err_request_irq:
|
|
|
snd_card_free(card);
|
|
|
err_snd_card_new:
|
|
|
clk_disable_unprepare(pclk);
|
|
|
+err_prepare_enable:
|
|
|
clk_put(pclk);
|
|
|
return retval;
|
|
|
}
|
|
@@ -897,9 +900,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);
|