[alsa-devel] [PATCH v6 03/15] ASoC: hdac_hdmi: Enable DP1.2 and all converters/pins
Takashi Iwai
tiwai at suse.de
Mon Feb 15 23:31:48 CET 2016
On Mon, 15 Feb 2016 21:10:49 +0100,
Mark Brown wrote:
>
> On Fri, Feb 12, 2016 at 07:46:03AM +0530, Subhransu S. Prusty wrote:
>
> > +static void hdac_hdmi_skl_enable_all_pins(struct hdac_device *hdac)
> > +{
> > + unsigned int vendor_param;
> > +
> > + vendor_param = snd_hdac_codec_read(hdac, INTEL_VENDOR_NID, 0,
> > + INTEL_GET_VENDOR_VERB, 0);
> > + if (vendor_param == -1 || vendor_param & INTEL_EN_ALL_PIN_CVTS)
> > + return;
> > +
> > + vendor_param |= INTEL_EN_ALL_PIN_CVTS;
> > + vendor_param = snd_hdac_codec_read(hdac, INTEL_VENDOR_NID, 0,
> > + INTEL_SET_VENDOR_VERB, vendor_param);
> > + if (vendor_param == -1)
> > + return;
> > +}
>
> So to enable the pins we do a read? That seems... innovative. :/
It's a weird nature of HD-audio verb handling. While *_write() just
sends the verb asynchronously, *_read() sends the verb, does sync and
read-back the return value. But both read and write may handle the
same verb.
Takashi
More information about the Alsa-devel
mailing list