[alsa-devel] [PATCH] ALSA: hda - More pop noise fixes for Dell XPS 13 9333

Takashi Iwai tiwai at suse.de
Fri Aug 8 08:11:18 CEST 2014


At Thu, 07 Aug 2014 18:35:39 +0200,
Gabriele Mazzotta wrote:
> 
> On init, mic-in is always set as input source, indipendently on what
> is plugged in. Since setting/unsetting mic-in as input source causes
> a pop noise, make sure the internal microphone is selected as input
> source on boot.
> 
> On shutdown, make sure the codec is not suspended as that would cause
> a pop noise.
> 
> Signed-off-by: Gabriele Mazzotta <gabriele.mzt at gmail.com>
> ---
>  sound/pci/hda/hda_codec.c     |  2 ++
>  sound/pci/hda/hda_codec.h     |  1 +
>  sound/pci/hda/patch_realtek.c | 12 ++++++++++++
>  3 files changed, 15 insertions(+)
> 
> diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
> index 4c20277..92d8292 100644
> --- a/sound/pci/hda/hda_codec.c
> +++ b/sound/pci/hda/hda_codec.c
> @@ -5348,6 +5348,8 @@ void snd_hda_bus_reboot_notify(struct hda_bus *bus)
>  	if (!bus)
>  		return;
>  	list_for_each_entry(codec, &bus->codec_list, list) {
> +		if (codec->resume_at_reboot)
> +			hda_call_codec_resume(codec);

Do you really need the resume at reboot?  I thought the codec needs
power down at reboot, i.e. rather it needs suspend.

Since you apply actually two individual changes, it's better to split
patches: one for adding the power-down at reboot, another for
initializing cur_mux properly.

Also, it's recommended to put a bugzilla link in the changelog, so
that other people can follow the information and discussion.

Last but not least, please put maintainers to Cc at the next time, so
that it won't be missed.


thanks,

Takashi

>  		if (hda_codec_is_power_on(codec) &&
>  		    codec->patch_ops.reboot_notify)
>  			codec->patch_ops.reboot_notify(codec);
> diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h
> index 5825aa1..5c3c66e 100644
> --- a/sound/pci/hda/hda_codec.h
> +++ b/sound/pci/hda/hda_codec.h
> @@ -366,6 +366,7 @@ struct hda_codec {
>  	unsigned int cached_write:1;	/* write only to caches */
>  	unsigned int dp_mst:1; /* support DP1.2 Multi-stream transport */
>  	unsigned int dump_coef:1; /* dump processing coefs in codec proc file */
> +	unsigned int resume_at_reboot:1; /* resume codec at reboot */
>  #ifdef CONFIG_PM
>  	unsigned int power_on :1;	/* current (global) power-state */
>  	unsigned int d3_stop_clk:1;	/* support D3 operation without BCLK */
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index b60824e..defaa2a 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -4018,8 +4018,20 @@ static void alc_fixup_dell_xps13(struct hda_codec *codec,
>  {
>  	if (action == HDA_FIXUP_ACT_PROBE) {
>  		struct alc_spec *spec = codec->spec;
> +		struct hda_input_mux *imux = &spec->gen.input_mux;
> +		int i;
> +
>  		spec->shutup = alc_no_shutup;
>  		codec->power_filter = alc_power_filter_xps13;
> +		codec->resume_at_reboot = 1;
> +
> +		/* Make the internal mic the default input source. */
> +		for (i = 0; i < imux->num_items; i++) {
> +			if (spec->gen.imux_pins[i] == 0x12) {
> +				spec->gen.cur_mux[0] = i;
> +				break;
> +			}
> +		}
>  	}
>  }
>  
> -- 
> 2.1.0.rc1
> 
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 


More information about the Alsa-devel mailing list