Skip to contentSkip to conversation

Patch "ALSA: hda - Update BCLK also at hotplug for i915 HSW/BDW" has been added to the 4.5-stable tree

PATCH [email protected] 1 participant 1 message May 1, 2016

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

ALSA: hda - Update BCLK also at hotplug for i915 HSW/BDW

to the 4.5-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
alsa-hda-update-bclk-also-at-hotplug-for-i915-hsw-bdw.patch
and it can be found in the queue-4.5 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From bb03ed216370cb021f377f923471e56d1de3ff5d Mon Sep 17 00:00:00 2001

From: Takashi Iwai <[email protected]>
Date: Thu, 21 Apr 2016 16:39:17 +0200
Subject: ALSA: hda - Update BCLK also at hotplug for i915 HSW/BDW

From: Takashi Iwai <[email protected]>

commit bb03ed216370cb021f377f923471e56d1de3ff5d upstream.

The recent bug report suggests that BCLK setup for i915 HSW/BDW needs to be updated at each HDMI hotplug, not only at initialization and resume. That is, we need to update HSW_EM4 and HSW_EM5 registers at ELD notification, too. Otherwise the HDMI audio may be out of sync and played in a wrong pitch.

However, the HDA codec driver has no access to the controller registers, and currently the code managing these registers is in hda_intel.c, i.e. local to the controller driver. For allowing the explicit BCLK update from the codec driver, as in this patch, the former haswell_set_bclk() in hda_intel.c is moved to hdac_i915.c and exposed as snd_hdac_i915_set_bclk(). This is called from both the HDA controller driver and intel_pin_eld_notify() in HDMI codec driver.

Along with this change, snd_hdac_get_display_clk() gets dropped as it's no longer used.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91410

---
 include/sound/hda_i915.h   |    5 +--
 sound/hda/hdac_i915.c      |   62 +++++++++++++++++++++++++++++++++++++--------
 sound/pci/hda/hda_intel.c  |   56 ++--------------------------------------
 sound/pci/hda/patch_hdmi.c |    1 
 4 files changed, 58 insertions(+), 66 deletions(-)
include/sound/hda_i915.h +2 -3
@@ -9,7 +9,7 @@
 #ifdef CONFIG_SND_HDA_I915
 int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable);
 int snd_hdac_display_power(struct hdac_bus *bus, bool enable);
-int snd_hdac_get_display_clk(struct hdac_bus *bus);
+void snd_hdac_i915_set_bclk(struct hdac_bus *bus);
 int snd_hdac_sync_audio_rate(struct hdac_bus *bus, hda_nid_t nid, int rate);
 int snd_hdac_acomp_get_eld(struct hdac_bus *bus, hda_nid_t nid,
 			   bool *audio_enabled, char *buffer, int max_bytes);
@@ -25,9 +25,8 @@ static inline int snd_hdac_display_power
 {
 	return 0;
 }
-static inline int snd_hdac_get_display_clk(struct hdac_bus *bus)
+static inline void snd_hdac_i915_set_bclk(struct hdac_bus *bus)
 {
-	return 0;
 }
 static inline int snd_hdac_sync_audio_rate(struct hdac_bus *bus, hda_nid_t nid,
 					   int rate)
sound/hda/hdac_i915.c +51 -11

83 lines not on this page · raw message

sound/pci/hda/hda_intel.c +4 -52

80 lines not on this page · raw message

sound/pci/hda/patch_hdmi.c +1 -0
@@ -2452,6 +2452,7 @@ static void intel_pin_eld_notify(void *a
 	if (atomic_read(&(codec)->core.in_pm))
 		return;
 
+	snd_hdac_i915_set_bclk(&codec->bus->core);
 	check_presence_and_report(codec, pin_nid);
 }
 

Patches currently in stable-queue which might be from [email protected] are

queue-4.5/alsa-pcxhr-fix-missing-mutex-unlock.patch queue-4.5/alsa-hda-add-dock-support-for-thinkpad-x260.patch queue-4.5/alsa-hda-keep-powering-up-adcs-on-cirrus-codecs.patch queue-4.5/alsa-hda-update-bclk-also-at-hotplug-for-i915-hsw-bdw.patch queue-4.5/alsa-hda-add-pci-id-for-intel-broxton-t.patch queue-4.5/alsa-hda-don-t-trust-the-reported-actual-power-state.patch queue-4.5/alsa-hda-realtek-add-alc3234-headset-mode-for-optiplex-9020m.patch