[alsa-devel] [PATCH] ALSA: hda - not use regmap for vendor verb 0x781 of Intel HDMI codec

Takashi Iwai tiwai at suse.de
Mon Apr 13 13:20:31 CEST 2015


At Mon, 13 Apr 2015 17:50:43 +0800,
mengdong.lin at intel.com wrote:
> 
> From: Mengdong Lin <mengdong.lin at intel.com>
> 
> For HDMI codec on Haswell/Broadwell/Skylake platforms, the vendor verb 0x781
> is used enable DP 1.2 mode as a fixup if BIOS has not done this, in function
> intel_haswell_fixup_enable_dp12(). Otherwise, the display audio playback will
> be silent.
> 
> Although the verb 0x781 is added to vendor verbs array, but snd_hdac_regmap_
> encode_verb() will translate it to verb 0xf81 and cause regmap_write IO failure
> because 0xf81 is not in the vendor verb array and so will not be taken as a
> writable register.
> 
> So this patch no longer uses regmap for verb 0x781 but directly send this
> command to enable DP1.2 mode.

What if just add INTEL_GET_VENDOR_VERB as a vendor verb?


thanks,

Takashi

diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index 5f44f60a6389..a818bb1c5886 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -2298,6 +2298,7 @@ static void intel_haswell_fixup_enable_dp12(struct hda_codec *codec)
 
 	/* enable DP1.2 mode */
 	vendor_param |= INTEL_EN_DP12;
+	snd_hdac_regmap_add_vendor_verb(&codec->core, INTEL_GET_VENDOR_VERB);
 	snd_hdac_regmap_add_vendor_verb(&codec->core, INTEL_SET_VENDOR_VERB);
 	snd_hda_codec_write_cache(codec, INTEL_VENDOR_NID, 0,
 				INTEL_SET_VENDOR_VERB, vendor_param);


More information about the Alsa-devel mailing list