Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'sound-3.14-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
"A few fixes for ASoC (N810 DT init fix, DPCM error path fix and a
couple of MFD init fixes), and a fix for a Lenovo laptop. All small
and trivial fixes, suitable for rc7"

* tag 'sound-3.14-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ASoC: 88pm860: Fix IO setup
ASoC: si476x: Fix IO setup
ALSA: hda - Fix loud click noise with IdeaPad 410Y
ASoC: pcm: free path list before exiting from error conditions
ASoC: n810: fix init with DT boot

+29 -2
+19
sound/pci/hda/patch_realtek.c
··· 3616 3616 } 3617 3617 } 3618 3618 3619 + static void alc_no_shutup(struct hda_codec *codec) 3620 + { 3621 + } 3622 + 3623 + static void alc_fixup_no_shutup(struct hda_codec *codec, 3624 + const struct hda_fixup *fix, int action) 3625 + { 3626 + if (action == HDA_FIXUP_ACT_PRE_PROBE) { 3627 + struct alc_spec *spec = codec->spec; 3628 + spec->shutup = alc_no_shutup; 3629 + } 3630 + } 3631 + 3619 3632 static void alc_fixup_headset_mode_alc668(struct hda_codec *codec, 3620 3633 const struct hda_fixup *fix, int action) 3621 3634 { ··· 3857 3844 ALC269_FIXUP_HP_GPIO_LED, 3858 3845 ALC269_FIXUP_INV_DMIC, 3859 3846 ALC269_FIXUP_LENOVO_DOCK, 3847 + ALC269_FIXUP_NO_SHUTUP, 3860 3848 ALC286_FIXUP_SONY_MIC_NO_PRESENCE, 3861 3849 ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT, 3862 3850 ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, ··· 4033 4019 [ALC269_FIXUP_INV_DMIC] = { 4034 4020 .type = HDA_FIXUP_FUNC, 4035 4021 .v.func = alc_fixup_inv_dmic_0x12, 4022 + }, 4023 + [ALC269_FIXUP_NO_SHUTUP] = { 4024 + .type = HDA_FIXUP_FUNC, 4025 + .v.func = alc_fixup_no_shutup, 4036 4026 }, 4037 4027 [ALC269_FIXUP_LENOVO_DOCK] = { 4038 4028 .type = HDA_FIXUP_PINS, ··· 4423 4405 SND_PCI_QUIRK(0x17aa, 0x2212, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), 4424 4406 SND_PCI_QUIRK(0x17aa, 0x2214, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), 4425 4407 SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), 4408 + SND_PCI_QUIRK(0x17aa, 0x3978, "IdeaPad Y410P", ALC269_FIXUP_NO_SHUTUP), 4426 4409 SND_PCI_QUIRK(0x17aa, 0x5013, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), 4427 4410 SND_PCI_QUIRK(0x17aa, 0x501a, "Thinkpad", ALC283_FIXUP_INT_MIC), 4428 4411 SND_PCI_QUIRK(0x17aa, 0x5026, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
+3
sound/soc/codecs/88pm860x-codec.c
··· 1328 1328 pm860x->codec = codec; 1329 1329 1330 1330 codec->control_data = pm860x->regmap; 1331 + ret = snd_soc_codec_set_cache_io(codec, 0, 0, SND_SOC_REGMAP); 1332 + if (ret) 1333 + return ret; 1331 1334 1332 1335 for (i = 0; i < 4; i++) { 1333 1336 ret = request_threaded_irq(pm860x->irq[i], NULL,
+1 -1
sound/soc/codecs/si476x.c
··· 210 210 static int si476x_codec_probe(struct snd_soc_codec *codec) 211 211 { 212 212 codec->control_data = dev_get_regmap(codec->dev->parent, NULL); 213 - return 0; 213 + return snd_soc_codec_set_cache_io(codec, 0, 0, SND_SOC_REGMAP); 214 214 } 215 215 216 216 static struct snd_soc_dai_ops si476x_dai_ops = {
+3 -1
sound/soc/omap/n810.c
··· 305 305 int err; 306 306 struct device *dev; 307 307 308 - if (!(machine_is_nokia_n810() || machine_is_nokia_n810_wimax())) 308 + if (!of_have_populated_dt() || 309 + (!of_machine_is_compatible("nokia,n810") && 310 + !of_machine_is_compatible("nokia,n810-wimax"))) 309 311 return -ENODEV; 310 312 311 313 n810_snd_device = platform_device_alloc("soc-audio", -1);
+3
sound/soc/soc-pcm.c
··· 1989 1989 1990 1990 paths = dpcm_path_get(fe, SNDRV_PCM_STREAM_PLAYBACK, &list); 1991 1991 if (paths < 0) { 1992 + dpcm_path_put(&list); 1992 1993 dev_warn(fe->dev, "ASoC: %s no valid %s path\n", 1993 1994 fe->dai_link->name, "playback"); 1994 1995 mutex_unlock(&card->mutex); ··· 2019 2018 2020 2019 paths = dpcm_path_get(fe, SNDRV_PCM_STREAM_CAPTURE, &list); 2021 2020 if (paths < 0) { 2021 + dpcm_path_put(&list); 2022 2022 dev_warn(fe->dev, "ASoC: %s no valid %s path\n", 2023 2023 fe->dai_link->name, "capture"); 2024 2024 mutex_unlock(&card->mutex); ··· 2084 2082 fe->dpcm[stream].runtime = fe_substream->runtime; 2085 2083 2086 2084 if (dpcm_path_get(fe, stream, &list) <= 0) { 2085 + dpcm_path_put(&list); 2087 2086 dev_dbg(fe->dev, "ASoC: %s no valid %s route\n", 2088 2087 fe->dai_link->name, stream ? "capture" : "playback"); 2089 2088 }