ASoC: hdac_hdmi: Fix to keep codec power active during enumeration.
authorRamesh Babu <ramesh.babu@intel.com>
Wed, 17 Feb 2016 16:04:01 +0000 (21:34 +0530)
committerMark Brown <broonie@kernel.org>
Fri, 19 Feb 2016 15:56:53 +0000 (00:56 +0900)
The codec power is turned OFF in the first explicit call to
pm_runtime_suspend to keep the i915 refcount balanced. During regular
operation, the power is turned ON/OFF in runtime PM handlers.

Signed-off-by: Ramesh Babu <ramesh.babu@intel.com>
Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/hdac_hdmi.c

index f12af62a208467492a416cf1db1fe7a88a742d65..57ab212b279b026ec7f0cf9f74a072996344c23d 100644 (file)
@@ -1426,6 +1426,18 @@ static int hdac_hdmi_dev_probe(struct hdac_ext_device *edev)
        INIT_LIST_HEAD(&hdmi_priv->pcm_list);
        mutex_init(&hdmi_priv->pin_mutex);
 
+       /*
+        * Turned off in the runtime_suspend during the first explicit
+        * pm_runtime_suspend call.
+        */
+       ret = snd_hdac_display_power(edev->hdac.bus, true);
+       if (ret < 0) {
+               dev_err(&edev->hdac.dev,
+                       "Cannot turn on display power on i915 err: %d\n",
+                       ret);
+               return ret;
+       }
+
        ret = hdac_hdmi_parse_and_map_nid(edev, &hdmi_dais, &num_dais);
        if (ret < 0) {
                dev_err(&codec->dev,