15 Feb
2016
15 Feb
'16
11:31 p.m.
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