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

Wang, Xingchao xingchao.wang at intel.com
Tue Jun 4 17:26:59 CEST 2013


Hi David,

Did you test the patch and what exactly the issue it could fix?
We do have issue when play audio on the pin without physical device connected.i.e. you can hear sound on that pin.
I'm working on some patches to fix similar issues, also trying to fix issue like dual monitor audio routing.
So please let me know what's the scenario of this patch trying to fix.

thanks
--xingchao


> -----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



More information about the Alsa-devel mailing list