[Jaunty] [Patch 2/3] SRU: Toshiba NB200 (Realtek ALC272) mute speakers when headphones are plugged in

Stefan Bader stefan.bader at canonical.com
Wed Nov 4 15:50:13 UTC 2009


The change to alc662_presets[] looks suspicious but on due to the
the patch hints. The patch actually only changes the ALC272_TOSHIBA_NB200
element within that array. So it only changes the newly added model.

Leann Ogasawara wrote:
>>From 13986cae0d540ca8a98ec0a7ca081b44edb2c8e8 Mon Sep 17 00:00:00 2001
> From: Leann Ogasawara <leann.ogasawara at canonical.com>
> Date: Fri, 21 Aug 2009 13:56:28 -0700
> Subject: [PATCH] UBUNTU: SAUCE: Toshiba NB200 (Realtek ALC272) mute speakers when headphones are plugged in
> 
> OriginalAuthor: Andres Salomon <dilinger at canonical.com>
> OriginalLocation: Hardy LUM netbook-lpia branch
> BugLink: http://bugs.launchpad.net/bugs/438318
> 
> Mute the speakers when headphones are plugged in for the Toshiba
> NB200, Realtek ALC272 (Vendor ID: 0x10ec:0272, Subsystem ID:
> 0x1179:0xff6e, Revision ID: 0x100001).  Code was forward ported from
> Hardy LUM (netbook-lpia branch).
> 
> Signed-off-by: Leann Ogasawara <leann.ogasawara at canonical.com>

Acked-by: Stefan Bader <stefan.bader at canonical>

> ---
>  sound/pci/hda/patch_realtek.c |   38 ++++++++++++++++++++++++++++++++++++--
>  1 files changed, 36 insertions(+), 2 deletions(-)
> 
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index 79710c5..1b9f430 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -15646,6 +15646,40 @@ static void alc663_m51va_inithook(struct hda_codec *codec)
>  	alc663_m51va_mic_automute(codec);
>  }
>  
> +static void alc272_toshiba_speaker_automute(struct hda_codec *codec)
> +{
> +	unsigned int present;
> +	unsigned char bits;
> +
> +	present = snd_hda_codec_read(codec, 0x21, 0,
> +			AC_VERB_GET_PIN_SENSE, 0)
> +			& AC_PINSENSE_PRESENCE;
> +	bits = present ? HDA_AMP_MUTE : 0;
> +	snd_hda_codec_amp_stereo(codec, 0x17, HDA_OUTPUT, 0,
> +				AMP_OUT_MUTE, bits);
> +	snd_hda_codec_amp_stereo(codec, 0x17, HDA_OUTPUT, 1,
> +				AMP_OUT_MUTE, bits);
> +}
> +
> +static void alc272_toshiba_unsol_event(struct hda_codec *codec,
> +		unsigned int res)
> +{
> +	switch (res >> 26) {
> +	case ALC880_HP_EVENT:
> +		alc272_toshiba_speaker_automute(codec);
> +		break;
> +	case ALC880_MIC_EVENT:
> +		alc663_m51va_mic_automute(codec);
> +		break;
> +	}
> +}
> +
> +static void alc272_toshiba_inithook(struct hda_codec *codec)
> +{
> +	alc272_toshiba_speaker_automute(codec);
> +	alc663_m51va_mic_automute(codec);
> +}
> +
>  /* ***************** Mode1 ******************************/
>  static void alc663_mode1_unsol_event(struct hda_codec *codec,
>  					   unsigned int res)
> @@ -16086,8 +16120,8 @@ static struct alc_config_preset alc662_presets[] = {
>  		.capsrc_nids = alc662_capsrc_nids,
>  		.channel_mode = alc662_3ST_2ch_modes,
>  		.input_mux = &alc663_m51va_capture_source,
> -		.unsol_event = alc663_m51va_unsol_event,
> -		.init_hook = alc663_m51va_inithook,
> +		.unsol_event = alc272_toshiba_unsol_event,
> +		.init_hook = alc272_toshiba_inithook,
>  	},
>  	[ALC663_ASUS_M51VA] = {
>  		.mixers = { alc663_m51va_mixer, alc662_capture_mixer},





More information about the kernel-team mailing list