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

Lin, Mengdong mengdong.lin at intel.com
Tue Apr 14 05:26:10 CEST 2015


> -----Original Message-----
> From: Lin, Mengdong
> Sent: Monday, April 13, 2015 9:30 PM

> > > 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?
> 
> Yes, it should work. hda_reg_write will drop the GET bit.
> I'll have a test tomorrow.

> > What if just add INTEL_GET_VENDOR_VERB as a vendor verb?
> 
> Yes, it should work. hda_reg_write will drop the GET bit.
> I'll have a test tomorrow.

Hi Takashi,

I've submitted v2 and v3 patches, both can work one my SKL. Please review.

V2: add INTEL_GET_VENDOR_VERB as a vendor verb as you suggested.
   I verified this on a SKL desktop, on which BIOS does not enable DP1.2 mode by default and so we observed the HDMI/DP audio failure.

V3: set GET bit when adding a vendor verb to the codec regmap
   It also works on my SKL. It's more generic than v2, because I observed other HD-A codecs (Conexant, si3054, sigmatel) also add their own vendor SET verbs and may have the same problem.
   However, I have no chance to verify these codecs since I cannot find platforms with them.

Thanks
Mengdong



More information about the Alsa-devel mailing list