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.12 06/62] ALSA: hda - Fix silent output on MacBook Air 2,1
Date: Tue, 10 Dec 2013 00:00:37 -0800	[thread overview]
Message-ID: <20131210080057.903386682@linuxfoundation.org> (raw)
In-Reply-To: <20131210080057.415644748@linuxfoundation.org>

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

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

From: Takashi Iwai <tiwai@suse.de>

commit 0756f09c4946fe2d9ce2ebcb6f2e3c58830d22a3 upstream.

MacBook Air 2,1 has a fairly different pin assignment from its brother
MBA 1,1, and yet another quirks are needed for pin 0x18 and 0x19,
similarly like what iMac 9,1 requires, in order to make the sound
working on it.

Reported-and-tested-by: Bruno Prémont <bonbons@linux-vserver.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 sound/pci/hda/patch_realtek.c |   39 +++++++++++++++++++++++++++++++--------
 1 file changed, 31 insertions(+), 8 deletions(-)

--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -1769,6 +1769,7 @@ enum {
 	ALC889_FIXUP_DAC_ROUTE,
 	ALC889_FIXUP_MBP_VREF,
 	ALC889_FIXUP_IMAC91_VREF,
+	ALC889_FIXUP_MBA21_VREF,
 	ALC882_FIXUP_INV_DMIC,
 	ALC882_FIXUP_NO_PRIMARY_HP,
 	ALC887_FIXUP_ASUS_BASS,
@@ -1872,17 +1873,13 @@ static void alc889_fixup_mbp_vref(struct
 	}
 }
 
-/* Set VREF on speaker pins on imac91 */
-static void alc889_fixup_imac91_vref(struct hda_codec *codec,
-				     const struct hda_fixup *fix, int action)
+static void alc889_fixup_mac_pins(struct hda_codec *codec,
+				  const hda_nid_t *nids, int num_nids)
 {
 	struct alc_spec *spec = codec->spec;
-	static hda_nid_t nids[2] = { 0x18, 0x1a };
 	int i;
 
-	if (action != HDA_FIXUP_ACT_INIT)
-		return;
-	for (i = 0; i < ARRAY_SIZE(nids); i++) {
+	for (i = 0; i < num_nids; i++) {
 		unsigned int val;
 		val = snd_hda_codec_get_pin_target(codec, nids[i]);
 		val |= AC_PINCTL_VREF_50;
@@ -1891,6 +1888,26 @@ static void alc889_fixup_imac91_vref(str
 	spec->gen.keep_vref_in_automute = 1;
 }
 
+/* Set VREF on speaker pins on imac91 */
+static void alc889_fixup_imac91_vref(struct hda_codec *codec,
+				     const struct hda_fixup *fix, int action)
+{
+	static hda_nid_t nids[2] = { 0x18, 0x1a };
+
+	if (action == HDA_FIXUP_ACT_INIT)
+		alc889_fixup_mac_pins(codec, nids, ARRAY_SIZE(nids));
+}
+
+/* Set VREF on speaker pins on mba21 */
+static void alc889_fixup_mba21_vref(struct hda_codec *codec,
+				    const struct hda_fixup *fix, int action)
+{
+	static hda_nid_t nids[2] = { 0x18, 0x19 };
+
+	if (action == HDA_FIXUP_ACT_INIT)
+		alc889_fixup_mac_pins(codec, nids, ARRAY_SIZE(nids));
+}
+
 /* Don't take HP output as primary
  * Strangely, the speaker output doesn't work on Vaio Z and some Vaio
  * all-in-one desktop PCs (for example VGC-LN51JGB) through DAC 0x05
@@ -2087,6 +2104,12 @@ static const struct hda_fixup alc882_fix
 		.chained = true,
 		.chain_id = ALC882_FIXUP_GPIO1,
 	},
+	[ALC889_FIXUP_MBA21_VREF] = {
+		.type = HDA_FIXUP_FUNC,
+		.v.func = alc889_fixup_mba21_vref,
+		.chained = true,
+		.chain_id = ALC889_FIXUP_MBP_VREF,
+	},
 	[ALC882_FIXUP_INV_DMIC] = {
 		.type = HDA_FIXUP_FUNC,
 		.v.func = alc_fixup_inv_dmic_0x12,
@@ -2151,7 +2174,7 @@ static const struct snd_pci_quirk alc882
 	SND_PCI_QUIRK(0x106b, 0x3000, "iMac", ALC889_FIXUP_MBP_VREF),
 	SND_PCI_QUIRK(0x106b, 0x3200, "iMac 7,1 Aluminum", ALC882_FIXUP_EAPD),
 	SND_PCI_QUIRK(0x106b, 0x3400, "MacBookAir 1,1", ALC889_FIXUP_MBP_VREF),
-	SND_PCI_QUIRK(0x106b, 0x3500, "MacBookAir 2,1", ALC889_FIXUP_MBP_VREF),
+	SND_PCI_QUIRK(0x106b, 0x3500, "MacBookAir 2,1", ALC889_FIXUP_MBA21_VREF),
 	SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889_FIXUP_MBP_VREF),
 	SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC889_FIXUP_MBP_VREF),
 	SND_PCI_QUIRK(0x106b, 0x3e00, "iMac 24 Aluminum", ALC885_FIXUP_MACPRO_GPIO),



  parent reply	other threads:[~2013-12-10  8:00 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-10  8:00 [PATCH 3.12 00/62] 3.12.5-stable review Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 01/62] ALSA: hda - Fix silent output on ASUS W7J laptop Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 02/62] ALSA: hda - Another fixup for ASUS laptop with ALC660 codec Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 03/62] ALSA: hda - Use always amps for auto-mute on AD1986A codec Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 04/62] ALSA: hda - Fix headset mic input after muted internal mic (Dell/Realtek) Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 05/62] ALSA: hda - Fix bad EAPD setup for HP machines with AD1984A Greg Kroah-Hartman
2013-12-10  8:00 ` Greg Kroah-Hartman [this message]
2013-12-10  8:00 ` [PATCH 3.12 07/62] ALSA: hda - Add mono speaker quirk for Dell Inspiron 5439 Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 08/62] crypto: s390 - Fix aes-xts parameter corruption Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 09/62] crypto: scatterwalk - Set the chain pointer indication bit Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 10/62] crypto: ccm - Fix handling of zero plaintext when computing mac Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 11/62] crypto: authenc - Find proper IV address in ablkcipher callback Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 12/62] ARM: fix booting low-vectors machines Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 13/62] ARM: footbridge: fix VGA initialisation Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 14/62] ARM: footbridge: fix EBSA285 LEDs Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 15/62] ARM: multi_v7_defconfig: enable SDHCI_BCM_KONA and MMC_BLOCK_MINORS=16 Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 16/62] ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 17/62] ARM: OMAPFB: panel-sony-acx565akm: fix bad unlock balance Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 18/62] ARM: at91: sama5d3: reduce TWI internal clock frequency Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 19/62] ARM: mvebu: second PCIe unit of Armada XP mv78230 is only x1 capable Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 20/62] ARM: mvebu: fix second and third PCIe unit of Armada XP mv78260 Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 21/62] ARM: mvebu: use the virtual CPU registers to access coherency registers Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 22/62] ARM: mvebu: re-enable PCIe on Armada 370 DB Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 23/62] ASoC: wm8990: Mark the register map as dirty when powering down Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 24/62] ASoC: dapm: Use SND_SOC_DAPM_INIT_REG_VAL in SND_SOC_DAPM_MUX Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 25/62] ASoC: wm8731: fix dsp mode configuration Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 26/62] vfs: fix subtle use-after-free of pipe_inode_info Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 27/62] can: sja1000: fix {pre,post}_irq() handling and IRQ handler return value Greg Kroah-Hartman
2013-12-10  8:00 ` [PATCH 3.12 28/62] can: flexcan: use correct clock as base for bit rate calculation Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 29/62] can: c_can: dont call pm_runtime_get_sync() from interrupt context Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 30/62] efivars, efi-pstore: Hold off deletion of sysfs entry until the scan is completed Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 31/62] efi-pstore: Make efi-pstore return a unique id Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 32/62] SCSI: bfa: Fix crash when symb name set for offline vport Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 33/62] SCSI: enclosure: fix WARN_ON in dual path device removing Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 34/62] SCSI: libsas: fix usage of ata_tf_to_fis Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 35/62] SCSI: hpsa: do not discard scsi status on aborted commands Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 36/62] SCSI: hpsa: return 0 from driver probe function on success, not 1 Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 37/62] NFSv4: Update list of irrecoverable errors on DELEGRETURN Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 38/62] PNP: fix restoring devices after hibernation Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 39/62] time: Fix 1ns/tick drift w/ GENERIC_TIME_VSYSCALL_OLD Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 40/62] powerpc/gpio: Fix the wrong GPIO input data on MPC8572/MPC8536 Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 41/62] parisc: fix mmap(MAP_FIXED|MAP_SHARED) to already mmapped address Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 42/62] xen/gnttab: leave lazy MMU mode in the case of a m2p override failure Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 43/62] spi/pxa2xx: add new ACPI IDs Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 44/62] cpuidle: Check for dev before deregistering it Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 45/62] Update of blkg_stat and blkg_rwstat may happen in bh context. While u64_stats_fetch_retry is only preempt_disable on 32bit UP system. This is not enough to avoid preemption by bh and may read strange 64 bit value Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 46/62] irq: Enable all irqs unconditionally in irq_resume Greg Kroah-Hartman
2013-12-10  9:01   ` Pavel Machek
2013-12-10  9:08     ` Greg Kroah-Hartman
2013-12-10 12:52       ` Heiko Stübner
2013-12-10 19:27         ` Greg Kroah-Hartman
2013-12-10 21:46           ` Heiko Stübner
2013-12-11  1:16             ` Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 47/62] net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 48/62] x86-64, build: Always pass in -mno-sse Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 49/62] SCSI: Disable WRITE SAME for RAID and virtual host adapter drivers Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 50/62] iwlwifi: dvm: dont override mac80211s queue setting Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 51/62] tg3: avoid double-freeing of rx data memory Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 52/62] Input: allow deselecting serio drivers even without CONFIG_EXPERT Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 53/62] Input: mousedev - allow disabling " Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 54/62] mei: me: add Lynx Point Wellsburg work station device id Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 55/62] mei: add 9 series PCH mei device ids Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 56/62] n_tty: Fix missing newline echo Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 57/62] USB: pl2303: fixed handling of CS5 setting Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 58/62] USB: ftdi_sio: fixed handling of unsupported CSIZE setting Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 59/62] USB: mos7840: correct handling of CS5 setting Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 60/62] USB: spcp8x5: " Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 61/62] USB: cdc-acm: Added support for the Lenovo RD02-D400 USB Modem Greg Kroah-Hartman
2013-12-10  8:01 ` [PATCH 3.12 62/62] drivers/char/i8k.c: add Dell XPLS L421X Greg Kroah-Hartman
2013-12-10 17:04 ` [PATCH 3.12 00/62] 3.12.5-stable review Guenter Roeck
2013-12-11  1:17   ` Greg Kroah-Hartman
2013-12-11  1:49 ` Shuah Khan
2013-12-11  2:00   ` Greg Kroah-Hartman
2013-12-11 21:26 ` Satoru Takeuchi
2013-12-11 23:31   ` 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=20131210080057.903386682@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).