|
@@ -4014,9 +4014,6 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
|
|
|
|
|
|
wm8994->micdet_irq = control->pdata.micdet_irq;
|
|
|
|
|
|
- pm_runtime_enable(codec->dev);
|
|
|
- pm_runtime_idle(codec->dev);
|
|
|
-
|
|
|
/* By default use idle_bias_off, will override for WM8994 */
|
|
|
codec->dapm.idle_bias_off = 1;
|
|
|
|
|
@@ -4389,8 +4386,6 @@ static int wm8994_codec_remove(struct snd_soc_codec *codec)
|
|
|
|
|
|
wm8994_set_bias_level(codec, SND_SOC_BIAS_OFF);
|
|
|
|
|
|
- pm_runtime_disable(codec->dev);
|
|
|
-
|
|
|
for (i = 0; i < ARRAY_SIZE(wm8994->fll_locked); i++)
|
|
|
wm8994_free_irq(wm8994->wm8994, WM8994_IRQ_FLL1_LOCK + i,
|
|
|
&wm8994->fll_locked[i]);
|
|
@@ -4449,6 +4444,9 @@ static int wm8994_probe(struct platform_device *pdev)
|
|
|
|
|
|
wm8994->wm8994 = dev_get_drvdata(pdev->dev.parent);
|
|
|
|
|
|
+ pm_runtime_enable(&pdev->dev);
|
|
|
+ pm_runtime_idle(&pdev->dev);
|
|
|
+
|
|
|
return snd_soc_register_codec(&pdev->dev, &soc_codec_dev_wm8994,
|
|
|
wm8994_dai, ARRAY_SIZE(wm8994_dai));
|
|
|
}
|
|
@@ -4456,6 +4454,8 @@ static int wm8994_probe(struct platform_device *pdev)
|
|
|
static int wm8994_remove(struct platform_device *pdev)
|
|
|
{
|
|
|
snd_soc_unregister_codec(&pdev->dev);
|
|
|
+ pm_runtime_disable(&pdev->dev);
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|