Merge branch 'topic/hda' into for-next
[firefly-linux-kernel-4.4.55.git] / sound / pci / hda / patch_hdmi.c
index 67a85ca25e35907a57c09a73fa5ba84140884665..e8d847819d7159d930f891813e00a3942d6f3276 100644 (file)
@@ -592,7 +592,7 @@ static int eld_proc_new(struct hdmi_spec_per_pin *per_pin, int index)
 static void eld_proc_free(struct hdmi_spec_per_pin *per_pin)
 {
        if (!per_pin->codec->bus->shutdown && per_pin->proc_entry) {
-               snd_device_free(per_pin->codec->card, per_pin->proc_entry);
+               snd_info_free_entry(per_pin->proc_entry);
                per_pin->proc_entry = NULL;
        }
 }
@@ -2335,6 +2335,15 @@ static int patch_generic_hdmi(struct hda_codec *codec)
                intel_haswell_fixup_enable_dp12(codec);
        }
 
+       /* For Valleyview/Cherryview, only the display codec is in the display
+        * power well and can use link_power ops to request/release the power.
+        * For Haswell/Broadwell, the controller is also in the power well and
+        * can cover the codec power request, and so need not set this flag.
+        * For previous platforms, there is no such power well feature.
+        */
+       if (is_valleyview_plus(codec))
+               codec->core.link_power_control = 1;
+
        if (is_haswell_plus(codec) || is_valleyview_plus(codec))
                codec->depop_delay = 0;