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 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel