Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9d6fa8fa authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
  ALSA: hda: Fix inaudible internal speakers on CyberpowerPC Gamer Xplorer N57001 laptop
  ALSA: Use %pV for snd_printk()
  ALSA: hda - Fix initialization of hp pins with master_mute in Realtek
  ALSA: hda - Fix invalid unsol tag for some alc262 model quirks
  ASoC: SAMSUNG: Fix the incorrect referencing of I2SCON register
  ASoC: snd_soc_new_{mixer,mux,pga} make sure to use right DAPM context
  ASoC: fsl: fix initialization of DMA buffers
  ASoC: WM8804 does not support sample rates below 32kHz
  ASoC: Fix WM8962 headphone volume update for use of advanced caches
  ASoC: Blackfin: bf5xx-ad1836: Fix codec device name
  ALSA: hda: Fix quirk for Dell Inspiron 910
  ASoC: AD1836: Fix setting the PCM format
  ASoC: Check for NULL register bank in snd_soc_get_cache_val()
  ASoC: Add missing break in WM8915 FLL source selection
  ASoC: Only update SYSCLK_ENA when pausing WM8915 SYSCLK
  ASoC: atmel_ssc: Don't try to free ssc if request failed
parents c7ca6b0f 05e20542
Loading
Loading
Loading
Loading
+17 −23
Original line number Diff line number Diff line
@@ -58,26 +58,6 @@ static const char *sanity_file_name(const char *path)
	else
		return path;
}

/* print file and line with a certain printk prefix */
static int print_snd_pfx(unsigned int level, const char *path, int line,
			 const char *format)
{
	const char *file = sanity_file_name(path);
	char tmp[] = "<0>";
	const char *pfx = level ? KERN_DEBUG : KERN_DEFAULT;
	int ret = 0;

	if (format[0] == '<' && format[2] == '>') {
		tmp[1] = format[1];
		pfx = tmp;
		ret = 1;
	}
	printk("%sALSA %s:%d: ", pfx, file, line);
	return ret;
}
#else
#define print_snd_pfx(level, path, line, format)	0
#endif

#if defined(CONFIG_SND_DEBUG) || defined(CONFIG_SND_VERBOSE_PRINTK)
@@ -85,15 +65,29 @@ void __snd_printk(unsigned int level, const char *path, int line,
		  const char *format, ...)
{
	va_list args;
#ifdef CONFIG_SND_VERBOSE_PRINTK
	struct va_format vaf;
	char verbose_fmt[] = KERN_DEFAULT "ALSA %s:%d %pV";
#endif

#ifdef CONFIG_SND_DEBUG	
	if (debug < level)
		return;
#endif

	va_start(args, format);
	if (print_snd_pfx(level, path, line, format))
		format += 3; /* skip the printk level-prefix */
#ifdef CONFIG_SND_VERBOSE_PRINTK
	vaf.fmt = format;
	vaf.va = &args;
	if (format[0] == '<' && format[2] == '>') {
		memcpy(verbose_fmt, format, 3);
		vaf.fmt = format + 3;
	} else if (level)
		memcpy(verbose_fmt, KERN_DEBUG, 3);
	printk(verbose_fmt, sanity_file_name(path), line, &vaf);
#else
	vprintk(format, args);
#endif
	va_end(args);
}
EXPORT_SYMBOL_GPL(__snd_printk);
+1 −0
Original line number Diff line number Diff line
@@ -3102,6 +3102,7 @@ static const struct snd_pci_quirk cxt5066_cfg_tbl[] = {
	SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo G560", CXT5066_ASUS),
	SND_PCI_QUIRK(0x17aa, 0x3938, "Lenovo G565", CXT5066_AUTO),
	SND_PCI_QUIRK_VENDOR(0x17aa, "Lenovo", CXT5066_IDEAPAD), /* Fallback for Lenovos without dock mic */
	SND_PCI_QUIRK(0x1b0a, 0x2092, "CyberpowerPC Gamer Xplorer N57001", CXT5066_AUTO),
	{}
};

+9 −6
Original line number Diff line number Diff line
@@ -1141,6 +1141,13 @@ static void update_speakers(struct hda_codec *codec)
	struct alc_spec *spec = codec->spec;
	int on;
	/* Control HP pins/amps depending on master_mute state;
	 * in general, HP pins/amps control should be enabled in all cases,
	 * but currently set only for master_mute, just to be safe
	 */
	do_automute(codec, ARRAY_SIZE(spec->autocfg.hp_pins),
		    spec->autocfg.hp_pins, spec->master_mute, true);
	if (!spec->automute)
		on = 0;
	else
@@ -6201,11 +6208,6 @@ static const struct snd_kcontrol_new alc260_input_mixer[] = {
/* update HP, line and mono out pins according to the master switch */
static void alc260_hp_master_update(struct hda_codec *codec)
{
	struct alc_spec *spec = codec->spec;
	/* change HP pins */
	do_automute(codec, ARRAY_SIZE(spec->autocfg.hp_pins),
		    spec->autocfg.hp_pins, spec->master_mute, true);
	update_speakers(codec);
}
@@ -11924,7 +11926,7 @@ static const struct hda_verb alc262_nec_verbs[] = {
 *  0x1b = port replicator headphone out
 */
#define ALC_HP_EVENT	0x37
#define ALC_HP_EVENT	ALC880_HP_EVENT
static const struct hda_verb alc262_fujitsu_unsol_verbs[] = {
	{0x14, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC_HP_EVENT},
@@ -13860,6 +13862,7 @@ static const struct snd_pci_quirk alc268_cfg_tbl[] = {
	SND_PCI_QUIRK(0x1025, 0x015b, "Acer Aspire One",
						ALC268_ACER_ASPIRE_ONE),
	SND_PCI_QUIRK(0x1028, 0x0253, "Dell OEM", ALC268_DELL),
	SND_PCI_QUIRK(0x1028, 0x02b0, "Dell Inspiron 910", ALC268_AUTO),
	SND_PCI_QUIRK_MASK(0x1028, 0xfff0, 0x02b0,
			"Dell Inspiron Mini9/Vostro A90", ALC268_DELL),
	/* almost compatible with toshiba but with optional digital outs;
+3 −2
Original line number Diff line number Diff line
@@ -848,9 +848,10 @@ int atmel_ssc_set_audio(int ssc_id)
	if (IS_ERR(ssc))
		pr_warn("Unable to parent ASoC SSC DAI on SSC: %ld\n",
			PTR_ERR(ssc));
	else
	else {
		ssc_pdev->dev.parent = &(ssc->pdev->dev);
		ssc_free(ssc);
	}

	ret = platform_device_add(ssc_pdev);
	if (ret < 0)
+2 −2
Original line number Diff line number Diff line
@@ -75,7 +75,7 @@ static struct snd_soc_dai_link bf5xx_ad1836_dai[] = {
		.cpu_dai_name = "bfin-tdm.0",
		.codec_dai_name = "ad1836-hifi",
		.platform_name = "bfin-tdm-pcm-audio",
		.codec_name = "ad1836.0",
		.codec_name = "spi0.4",
		.ops = &bf5xx_ad1836_ops,
	},
	{
@@ -84,7 +84,7 @@ static struct snd_soc_dai_link bf5xx_ad1836_dai[] = {
		.cpu_dai_name = "bfin-tdm.1",
		.codec_dai_name = "ad1836-hifi",
		.platform_name = "bfin-tdm-pcm-audio",
		.codec_name = "ad1836.0",
		.codec_name = "spi0.4",
		.ops = &bf5xx_ad1836_ops,
	},
};
Loading