sound fixes for 2.6.38
Subsystems (3)
Linus,
please pull sound fixes for v2.6.38 from:
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git for-linus
containing a few HD-audio fixes / quirks and ASoC codec fixes.
Thanks!
Takashi
===
Chih-Wei Huang (1):
ALSA: hda - Fix unable to record issue on ASUS N82JV
David Henningsson (1):
ALSA: HDA: Realtek: Fixup jack detection to input subsystem
Dimitris Papastamos (2):
ASoC: WM8994: Don't disable the AIF[1|2]CLK_ENA unconditionaly
ASoC: WM8994: Ensure late enable events are processed for the ADCs
Mark Brown (1):
ASoC: Fix WM9081 platform data initialisation
Richard Samson (1):
ALSA: hda - add new Fermi 5xx codec IDs to snd-hda
Takashi Iwai (1):
ALSA: hda - Don't set to D3 in Cirrus errata init verbs
--- sound/pci/hda/patch_cirrus.c | 2 + sound/pci/hda/patch_hdmi.c | 5 ++++ sound/pci/hda/patch_realtek.c | 9 ++----- sound/soc/codecs/wm8994.c | 51 +++++++++++++++++++++++++++++++++------- sound/soc/codecs/wm9081.c | 5 ++++ 5 files changed, 57 insertions(+), 15 deletions(-)
sound/pci/hda/patch_cirrus.c +2 -0
@@ -1039,9 +1039,11 @@ static struct hda_verb cs_errata_init_verbs[] = { {0x11, AC_VERB_SET_PROC_COEF, 0x0008}, {0x11, AC_VERB_SET_PROC_STATE, 0x00}, +#if 0 /* Don't to set to D3 as we are in power-up sequence */ {0x07, AC_VERB_SET_POWER_STATE, 0x03}, /* S/PDIF Rx: D3 */ {0x08, AC_VERB_SET_POWER_STATE, 0x03}, /* S/PDIF Tx: D3 */ /*{0x01, AC_VERB_SET_POWER_STATE, 0x03},*/ /* AFG: D3 This is already handled */ +#endif {} /* terminator */ };
sound/pci/hda/patch_hdmi.c +5 -0
@@ -1634,6 +1634,9 @@ static struct hda_codec_preset snd_hda_preset_hdmi[] = { { .id = 0x10de0012, .name = "GPU 12 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, { .id = 0x10de0013, .name = "GPU 13 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, { .id = 0x10de0014, .name = "GPU 14 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, +{ .id = 0x10de0015, .name = "GPU 15 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, +{ .id = 0x10de0016, .name = "GPU 16 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, +/* 17 is known to be absent */ { .id = 0x10de0018, .name = "GPU 18 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, { .id = 0x10de0019, .name = "GPU 19 HDMI/DP", .patch = patch_nvhdmi_8ch_89 }, { .id = 0x10de001a, .name = "GPU 1a HDMI/DP", .patch = patch_nvhdmi_8ch_89 },
@@ -1676,6 +1679,8 @@ MODULE_ALIAS("snd-hda-codec-id:10de0011");MODULE_ALIAS ("snd-hda-codec-id:10de0012" );MODULE_ALIAS ("snd-hda-codec-id:10de0013" );MODULE_ALIAS ("snd-hda-codec-id:10de0014" ); +MODULE_ALIAS ("snd-hda-codec-id:10de0015" ); +MODULE_ALIAS ("snd-hda-codec-id:10de0016" );MODULE_ALIAS ("snd-hda-codec-id:10de0018" );MODULE_ALIAS ("snd-hda-codec-id:10de0019" );MODULE_ALIAS ("snd-hda-codec-id:10de001a" );
sound/pci/hda/patch_realtek.c +3 -6
@@ -1133,11 +1133,8 @@ static void alc_automute_speaker(struct hda_codec *codec, int pinctl) nid = spec->autocfg.hp_pins[i];if (!nid)break ; -if (snd_hda_jack_detect (codec, nid)) { - spec->jack_present =1 ; -break ; - } -alc_report_jack (codec, spec->autocfg.hp_pins[i]); +alc_report_jack (codec, nid); + spec->jack_present |=snd_hda_jack_detect (codec, nid); } mute = spec->jack_present ?HDA_AMP_MUTE :0 ;
@@ -15015,7 +15012,7 @@ static struct snd_pci_quirk alc269_cfg_tbl[] = {SND_PCI_QUIRK (0x1043 ,0x11e3 ,"ASUS U33Jc" ,ALC269VB_AMIC ),SND_PCI_QUIRK (0x1043 ,0x1273 ,"ASUS UL80Jt" ,ALC269VB_AMIC ),SND_PCI_QUIRK (0x1043 ,0x1283 ,"ASUS U53Jc" ,ALC269_AMIC ), -SND_PCI_QUIRK (0x1043 ,0x12b3 ,"ASUS N82Jv" ,ALC269_AMIC ), +SND_PCI_QUIRK (0x1043 ,0x12b3 ,"ASUS N82JV" ,ALC269VB_AMIC ),SND_PCI_QUIRK (0x1043 ,0x12d3 ,"ASUS N61Jv" ,ALC269_AMIC ),SND_PCI_QUIRK (0x1043 ,0x13a3 ,"ASUS UL30Vt" ,ALC269_AMIC ), SND_PCI_QUIRK(0x1043, 0x1373, "ASUS G73JX", ALC269_AMIC),
sound/soc/codecs/wm8994.c +42 -9
120 lines not on this page · raw message
sound/soc/codecs/wm9081.c +5 -0
@@ -15,6 +15,7 @@#include <linux/moduleparam.h> #include <linux/init.h> #include <linux/delay.h> +#include <linux/device.h> #include <linux/pm.h> #include <linux/i2c.h> #include <linux/platform_device.h>
@@ -1341,6 +1342,10 @@ static __devinit int wm9081_i2c_probe(struct i2c_client *i2c, wm9081->control_type =SND_SOC_I2C ; wm9081->control_data = i2c; +if (dev_get_platdata (&i2c->dev)) +memcpy (&wm9081->retune,dev_get_platdata (&i2c->dev), +sizeof (wm9081->retune)); + ret =snd_soc_register_codec (&i2c->dev, &soc_codec_dev_wm9081, &wm9081_dai,1 );if (ret <0 )