lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sat, 05 Jul 2014 14:58:28 +0200
From:	Takashi Iwai <tiwai@...e.de>
To:	Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc:	linux-kernel@...r.kernel.org, stable@...r.kernel.org
Subject: Re: [PATCH 3.14 59/59] ALSA: hda - Adjust speaker HPF and add LED support for HP Spectre 13

At Fri,  4 Jul 2014 15:19:48 -0700,
Greg Kroah-Hartman wrote:
> 
> 3.14-stable review patch.  If anyone has any objections, please let me know.

This turned to be not applicable to 3.14 and earlier, as mentioned in
another thread.  Please drop.


thanks,

Takashi

> 
> ------------------
> 
> From: Takashi Iwai <tiwai@...e.de>
> 
> commit 8b3dfdaf0c25a584cb31d04d2574115cf2d422ab upstream.
> 
> HP Spectre 13 has the IDT 92HD95 codec, and BIOS seems to set the
> default high-pass filter in some "safer" range, which results in the
> very soft tone from the built-in speakers in contrast to Windows.
> Also, the mute LED control is missing, since 92HD95 codec still has no
> HP-specific fixups for GPIO setups.
> 
> This patch adds these missing features: the HPF is adjusted by the
> vendor-specific verb, and the LED is set up from a DMI string (but
> with the default polarity = 0 assumption due to the incomplete BIOS on
> the given machine).
> 
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=74841
> Signed-off-by: Takashi Iwai <tiwai@...e.de>
> Signed-off-by: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
> 
> ---
>  Documentation/sound/alsa/HD-Audio-Models.txt |    5 ++
>  sound/pci/hda/patch_sigmatel.c               |   58 ++++++++++++++++++++++++++-
>  2 files changed, 62 insertions(+), 1 deletion(-)
> 
> --- a/Documentation/sound/alsa/HD-Audio-Models.txt
> +++ b/Documentation/sound/alsa/HD-Audio-Models.txt
> @@ -286,6 +286,11 @@ STAC92HD83*
>    hp-inv-led	HP with broken BIOS for inverted mute LED
>    auto		BIOS setup (default)
>  
> +STAC92HD95
> +==========
> +  hp-led	LED support for HP laptops
> +  hp-bass	Bass HPF setup for HP Spectre 13
> +
>  STAC9872
>  ========
>    vaio		VAIO laptop without SPDIF
> --- a/sound/pci/hda/patch_sigmatel.c
> +++ b/sound/pci/hda/patch_sigmatel.c
> @@ -122,6 +122,12 @@ enum {
>  };
>  
>  enum {
> +	STAC_92HD95_HP_LED,
> +	STAC_92HD95_HP_BASS,
> +	STAC_92HD95_MODELS
> +};
> +
> +enum {
>  	STAC_925x_REF,
>  	STAC_M1,
>  	STAC_M1_2,
> @@ -4125,6 +4131,48 @@ static const struct snd_pci_quirk stac92
>  	{} /* terminator */
>  };
>  
> +static void stac92hd95_fixup_hp_led(struct hda_codec *codec,
> +				    const struct hda_fixup *fix, int action)
> +{
> +	struct sigmatel_spec *spec = codec->spec;
> +
> +	if (action != HDA_FIXUP_ACT_PRE_PROBE)
> +		return;
> +
> +	if (find_mute_led_cfg(codec, spec->default_polarity))
> +		codec_dbg(codec, "mute LED gpio %d polarity %d\n",
> +				spec->gpio_led,
> +				spec->gpio_led_polarity);
> +}
> +
> +static const struct hda_fixup stac92hd95_fixups[] = {
> +	[STAC_92HD95_HP_LED] = {
> +		.type = HDA_FIXUP_FUNC,
> +		.v.func = stac92hd95_fixup_hp_led,
> +	},
> +	[STAC_92HD95_HP_BASS] = {
> +		.type = HDA_FIXUP_VERBS,
> +		.v.verbs = (const struct hda_verb[]) {
> +			{0x1a, 0x795, 0x00}, /* HPF to 100Hz */
> +			{}
> +		},
> +		.chained = true,
> +		.chain_id = STAC_92HD95_HP_LED,
> +	},
> +};
> +
> +static const struct snd_pci_quirk stac92hd95_fixup_tbl[] = {
> +	SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x1911, "HP Spectre 13", STAC_92HD95_HP_BASS),
> +	{} /* terminator */
> +};
> +
> +static const struct hda_model_fixup stac92hd95_models[] = {
> +	{ .id = STAC_92HD95_HP_LED, .name = "hp-led" },
> +	{ .id = STAC_92HD95_HP_BASS, .name = "hp-bass" },
> +	{}
> +};
> +
> +
>  static int stac_parse_auto_config(struct hda_codec *codec)
>  {
>  	struct sigmatel_spec *spec = codec->spec;
> @@ -4577,10 +4625,16 @@ static int patch_stac92hd95(struct hda_c
>  	spec->gen.beep_nid = 0x19; /* digital beep */
>  	spec->pwr_nids = stac92hd95_pwr_nids;
>  	spec->num_pwrs = ARRAY_SIZE(stac92hd95_pwr_nids);
> -	spec->default_polarity = -1; /* no default cfg */
> +	spec->default_polarity = 0;
>  
>  	codec->patch_ops = stac_patch_ops;
>  
> +	snd_hda_pick_fixup(codec, stac92hd95_models, stac92hd95_fixup_tbl,
> +			   stac92hd95_fixups);
> +	snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
> +
> +	stac_setup_gpio(codec);
> +
>  	err = stac_parse_auto_config(codec);
>  	if (err < 0) {
>  		stac_free(codec);
> @@ -4589,6 +4643,8 @@ static int patch_stac92hd95(struct hda_c
>  
>  	codec->proc_widget_hook = stac92hd_proc_hook;
>  
> +	snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE);
> +
>  	return 0;
>  }
>  
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ