On Mon, Feb 15, 2016 at 11:31:48PM +0100, Takashi Iwai wrote: > Mark Brown wrote: > > On Fri, Feb 12, 2016 at 07:46:03AM +0530, Subhransu S. Prusty wrote: > > > + 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. The above one seems especially odd, we do the read and then essentially ignore the value (the difference in handling is nonexistant).