[alsa-devel] [RFC PATCH] ALSA: hda - Ignore default pin config on Haswell HDMI codecs

David Henningsson david.henningsson at canonical.com
Tue Jun 4 12:19:57 CEST 2013


On 06/04/2013 12:10 PM, Lin, Mengdong wrote:
> Hi David,
>
> Do you mean that a pin's default configuration may tell "No physical connection" by mistake?

A pin's default configuration can be set to "No physical connection". 
I've seen this on one machine that we're trying to enable.

Whether that is a mistake or not, that's the million dollar question here:

If it is not a mistake, then the graphics driver/stack should pay 
attention to this value, and not route audio to that pin.

If it is a mistake, then the bspec [1] should mention that programming 
of this value should not be allowed (so we can tell the OEM to correct 
their BIOS).

I'm still trying to get a clear answer from someone at Intel, and it's 
becoming a bit frustrating not to get that.


>
> Thanks
> Mengdong
>
>> -----Original Message-----
>> From: David Henningsson [mailto:david.henningsson at canonical.com]
>> Sent: Tuesday, June 04, 2013 4:03 PM
>> To: alsa-devel at alsa-project.org
>> Cc: tiwai at suse.de; Wang, Xingchao; daniel at ffwll.ch; Lin, Mengdong; Girdwood,
>> Liam R; Li, Jocelyn; David Henningsson
>> Subject: [RFC PATCH] ALSA: hda - Ignore default pin config on Haswell HDMI
>> codecs
>>
>> According to Daniel Vetter, these pin configs should be ignored, because the
>> graphics driver/userspace could route audio to these pins even if they are
>> disabled by BIOS.
>>
>> Signed-off-by: David Henningsson <david.henningsson at canonical.com>
>> ---
>>   sound/pci/hda/patch_hdmi.c |   10 ++++++----
>>   1 file changed, 6 insertions(+), 4 deletions(-)
>>
>> It would be good to have this acked by someone at Intel before committing.
>>
>> diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index
>> e12f7a0..8c1bede 100644
>> --- a/sound/pci/hda/patch_hdmi.c
>> +++ b/sound/pci/hda/patch_hdmi.c
>> @@ -1307,12 +1307,14 @@ static int hdmi_add_pin(struct hda_codec *codec,
>> hda_nid_t pin_nid)
>>   	if (!(caps & (AC_PINCAP_HDMI | AC_PINCAP_DP)))
>>   		return 0;
>>
>> -	config = snd_hda_codec_get_pincfg(codec, pin_nid);
>> -	if (get_defcfg_connect(config) == AC_JACK_PORT_NONE)
>> -		return 0;
>> -
>>   	if (codec->vendor_id == 0x80862807)
>>   		intel_haswell_fixup_connect_list(codec, pin_nid);
>> +	else {
>> +		/* On Haswell, default pin config should be ignored */
>> +		config = snd_hda_codec_get_pincfg(codec, pin_nid);
>> +		if (get_defcfg_connect(config) == AC_JACK_PORT_NONE)
>> +			return 0;
>> +	}
>>
>>   	pin_idx = spec->num_pins;
>>   	per_pin = snd_array_new(&spec->pins);
>> --
>> 1.7.9.5
>



-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic

[1] Or some other document. I don't have access to the bspec, so I can't 
check this for myself.


More information about the Alsa-devel mailing list