From: Takashi Iwai Date: Fri, 12 Jun 2015 06:10:20 +0000 (+0200) Subject: Merge branch 'for-linus' into for-next X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=cc1b76ed32607ba378986931e73b64231085816f;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git Merge branch 'for-linus' into for-next Yet another non-trivial conflicts resolution for the recent HD-audio fix. Conflicts: sound/pci/hda/hda_intel.c Signed-off-by: Takashi Iwai --- cc1b76ed32607ba378986931e73b64231085816f diff --cc sound/pci/hda/hda_intel.c index 3738363e8ee1,a244ba706317..7dea7987d2af --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@@ -1973,23 -1855,22 +1973,32 @@@ static int azx_probe_continue(struct az int dev = chip->dev_index; int err; - /* Request power well for Haswell HDA controller and codec */ + hda->probe_continued = 1; + + /* Request display power well for the HDA controller or codec. For + * Haswell/Broadwell, both the display HDA controller and codec need + * this power. For other platforms, like Baytrail/Braswell, only the + * display codec needs the power and it can be released after probe. + */ if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL) { -#ifdef CONFIG_SND_HDA_I915 - err = hda_i915_init(hda); + /* HSW/BDW controllers need this power */ + if (CONTROLLER_IN_GPU(pci)) + hda->need_i915_power = 1; + + err = snd_hdac_i915_init(bus); - if (err < 0) - goto skip_i915; + if (err < 0) { + /* if the controller is bound only with HDMI/DP + * (for HSW and BDW), we need to abort the probe; + * for other chips, still continue probing as other + * codecs can be on the same link. + */ + if (CONTROLLER_IN_GPU(pci)) + goto out_free; + else + goto skip_i915; + } - err = hda_display_power(hda, true); + + err = snd_hdac_display_power(bus, true); if (err < 0) { dev_err(chip->card->dev, "Cannot turn on display power on i915\n");