stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Takashi Iwai <tiwai@suse.de>
Subject: [PATCH 3.10 46/46] ALSA: hda - Adjust speaker HPF and add LED support for HP Spectre 13
Date: Fri,  4 Jul 2014 15:19:50 -0700	[thread overview]
Message-ID: <20140704221604.387295204@linuxfoundation.org> (raw)
In-Reply-To: <20140704221602.280733370@linuxfoundation.org>

3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Takashi Iwai <tiwai@suse.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@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.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
@@ -284,6 +284,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
@@ -121,6 +121,12 @@ enum {
 };
 
 enum {
+	STAC_92HD95_HP_LED,
+	STAC_92HD95_HP_BASS,
+	STAC_92HD95_MODELS
+};
+
+enum {
 	STAC_925x_REF,
 	STAC_M1,
 	STAC_M1_2,
@@ -3560,6 +3566,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;
@@ -4045,10 +4093,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);
@@ -4057,6 +4111,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;
 }
 



  parent reply	other threads:[~2014-07-04 22:19 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-04 22:19 [PATCH 3.10 00/46] 3.10.47-stable review Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 01/46] target: Fix left-over se_lun->lun_sep pointer OOPs Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 02/46] iscsi-target: Avoid rejecting incorrect ITT for Data-Out Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 03/46] iscsi-target: Explicily clear login response PDU in exception path Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 04/46] Input: elantech - deal with clickpads reporting right button events Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 05/46] Input: elantech - dont set bit 1 of reg_10 when the no_hw_res quirk is set Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 06/46] PCI: Add new ID for Intel GPU "spurious interrupt" quirk Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 07/46] PCI: Fix incorrect vgaarb conditional in WARN_ON() Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 08/46] mtip32xx: Fix ERO and NoSnoop values in PCIe upstream on AMD systems Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 09/46] mtip32xx: Increase timeout for STANDBY IMMEDIATE command Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 10/46] mtip32xx: Remove dfs_parent after pci unregister Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 11/46] recordmcount/MIPS: Fix possible incorrect mcount_loc table entries in modules Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 12/46] MIPS: MSC: Prevent out-of-bounds writes to MIPS SC ioremapd region Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 13/46] UBIFS: fix an mmap and fsync race condition Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 14/46] UBIFS: Remove incorrect assertion in shrink_tnc() Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 15/46] watchdog: sp805: Set watchdog_device->timeout from ->set_timeout() Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 16/46] watchdog: ath79_wdt: avoid spurious restarts on AR934x Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 17/46] IB/qib: Fix port in pkey change event Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 18/46] IB/ipath: Translate legacy diagpkt into newer extended diagpkt Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 19/46] IB/srp: Fix a sporadic crash triggered by cable pulling Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 20/46] IB/umad: Fix error handling Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 21/46] IB/umad: Fix use-after-free on close Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 22/46] SUNRPC: Fix a module reference leak in svc_handle_xprt Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 23/46] pNFS: Handle allocation errors correctly in filelayout_alloc_layout_hdr() Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 24/46] nfsd4: fix FREE_STATEID lockowner leak Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 25/46] nfsd: getattr for FATTR4_WORD0_FILES_AVAIL needs the statfs buffer Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 26/46] NFS: Dont declare inode uptodate unless all attributes were checked Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 27/46] nfsd: dont try to reuse an expired DRC entry off the list Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 28/46] nfsd: dont halt scanning the DRC LRU list when theres an RC_INPROG entry Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 29/46] powerpc/pseries: Fix overwritten PE state Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 30/46] powerpc: 64bit sendfile is capped at 2GB Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 31/46] powerpc: fix typo CONFIG_PMAC Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 32/46] powerpc: fix typo CONFIG_PPC_CPU Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 33/46] powerpc: Add AT_HWCAP2 to indicate V.CRYPTO category support Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 34/46] reiserfs: call truncate_setsize under tailpack mutex Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 35/46] MIPS: KVM: Remove redundant NULL checks before kfree() Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 36/46] MIPS: KVM: Fix memory leak on VCPU Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 37/46] ipvs: Fix panic due to non-linear skb Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 38/46] ptrace,x86: force IRET path after a ptrace_stop() Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 39/46] mei: me: read H_CSR after asserting reset Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 40/46] mei: me: fix hw ready reset flow Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 41/46] extcon: max77693: Fix two NULL pointer exceptions on missing pdata Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 42/46] netfilter: ipt_ULOG: fix info leaks Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 43/46] Documentation/SubmittingPatches: describe the Fixes: tag Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 44/46] tracing: Try again for saved cmdline if failed due to locking Greg Kroah-Hartman
2014-07-04 22:19 ` [PATCH 3.10 45/46] tracing: Fix syscall_*regfunc() vs copy_process() race Greg Kroah-Hartman
2014-07-04 22:19 ` Greg Kroah-Hartman [this message]
2014-07-05  5:43 ` [PATCH 3.10 00/46] 3.10.47-stable review Guenter Roeck
2014-07-05  7:04   ` Satoru Takeuchi
2014-07-05 19:11   ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140704221604.387295204@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).