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

Commit 0f639a3c 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: (30 commits)
  ALSA: hda - Use ALC_INIT_DEFAULT for really default initialization
  ASoC: Fix resource reclaim for osk5912
  ASoC: tlv320aic3x - fix variable may be used uninitialized warning
  ASoC: davinci-vcif - fix a memory leak
  ASoC: phycore-ac97: fix resource leak
  ASoC: imx-ssi: fix resource leak
  ASoC: simone: fix resource leak in simone_init error path
  ASoC: sam9g20_wm8731: fix resource leak in at91sam9g20ek_init error path
  ASoC: snd-soc-afeb9260: remove unneeded platform_device_del in error path
  ASoC: pcm030-audio-fabric: fix resource leak in pcm030_fabric_init error path
  ASoC: efika-audio-fabric: fix resource leak in efika_fabric_init error path
  ASoC: Call snd_soc_unregister_dais instead of snd_soc_unregister_dai in sh4_soc_dai_remove
  ASoC: fix SND_PXA2XX_LIB Kconfig warning
  ALSA: hda - Fix ALC660-VD/ALC861-VD capture/playback mixers
  ALSA: HDA: Add an extra DAC for Realtek ALC887-VD
  ASoC: nuc900-ac97: fix a memory leak
  ASoC: Return proper error for omap3pandora_soc_init
  ASoC: wm8961 - clear WM8961_MCLKDIV bit for freq <= 16500000
  ASoC: wm8961 - clear WM8961_DACSLOPE bit for normal mode
  ALSA: hda - Fix Acer 7730G support
  ...
parents 19650e85 37fa84d8
Loading
Loading
Loading
Loading
+46 −10
Original line number Diff line number Diff line
@@ -1614,6 +1614,7 @@ static int alc_subsystem_id(struct hda_codec *codec,
		spec->init_amp = ALC_INIT_GPIO3;
		break;
	case 5:
	default:
		spec->init_amp = ALC_INIT_DEFAULT;
		break;
	}
@@ -2013,6 +2014,36 @@ static struct hda_verb alc888_acer_aspire_6530g_verbs[] = {
	{ }
};
/*
 *ALC888 Acer Aspire 7730G model
 */
static struct hda_verb alc888_acer_aspire_7730G_verbs[] = {
/* Bias voltage on for external mic port */
	{0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN | PIN_VREF80},
/* Front Mic: set to PIN_IN (empty by default) */
	{0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
/* Unselect Front Mic by default in input mixer 3 */
	{0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0xb)},
/* Enable unsolicited event for HP jack */
	{0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN},
/* Enable speaker output */
	{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
	{0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
	{0x14, AC_VERB_SET_EAPD_BTLENABLE, 2},
/* Enable headphone output */
	{0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT | PIN_HP},
	{0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
	{0x15, AC_VERB_SET_CONNECT_SEL, 0x00},
	{0x15, AC_VERB_SET_EAPD_BTLENABLE, 2},
/*Enable internal subwoofer */
	{0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
	{0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
	{0x17, AC_VERB_SET_CONNECT_SEL, 0x02},
	{0x17, AC_VERB_SET_EAPD_BTLENABLE, 2},
	{ }
};
/*
 * ALC889 Acer Aspire 8930G model
 */
@@ -2200,6 +2231,16 @@ static void alc888_acer_aspire_6530g_setup(struct hda_codec *codec)
	spec->autocfg.speaker_pins[2] = 0x17;
}
static void alc888_acer_aspire_7730g_setup(struct hda_codec *codec)
{
	struct alc_spec *spec = codec->spec;
	spec->autocfg.hp_pins[0] = 0x15;
	spec->autocfg.speaker_pins[0] = 0x14;
	spec->autocfg.speaker_pins[1] = 0x16;
	spec->autocfg.speaker_pins[2] = 0x17;
}
static void alc889_acer_aspire_8930g_setup(struct hda_codec *codec)
{
	struct alc_spec *spec = codec->spec;
@@ -9524,13 +9565,6 @@ static struct hda_verb alc883_acer_eapd_verbs[] = {
	{ }
};
static struct hda_verb alc888_acer_aspire_7730G_verbs[] = {
	{0x15, AC_VERB_SET_CONNECT_SEL, 0x00},
	{0x17, AC_VERB_SET_CONNECT_SEL, 0x02},
	{0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN},
	{ } /* end */
};
static void alc888_6st_dell_setup(struct hda_codec *codec)
{
	struct alc_spec *spec = codec->spec;
@@ -10328,7 +10362,7 @@ static struct alc_config_preset alc882_presets[] = {
		.const_channel_count = 6,
		.input_mux = &alc883_capture_source,
		.unsol_event = alc_automute_amp_unsol_event,
		.setup = alc888_acer_aspire_6530g_setup,
		.setup = alc888_acer_aspire_7730g_setup,
		.init_hook = alc_automute_amp,
	},
	[ALC883_MEDION] = {
@@ -16910,7 +16944,7 @@ static struct alc_config_preset alc861vd_presets[] = {
static int alc861vd_auto_create_input_ctls(struct hda_codec *codec,
						const struct auto_pin_cfg *cfg)
{
	return alc_auto_create_input_ctls(codec, cfg, 0x15, 0x09, 0);
	return alc_auto_create_input_ctls(codec, cfg, 0x0b, 0x22, 0);
}
@@ -18964,6 +18998,8 @@ static inline hda_nid_t alc662_mix_to_dac(hda_nid_t nid)
		return 0x02;
	else if (nid >= 0x0c && nid <= 0x0e)
		return nid - 0x0c + 0x02;
	else if (nid == 0x26) /* ALC887-VD has this DAC too */
		return 0x25;
	else
		return 0;
}
@@ -18972,7 +19008,7 @@ static inline hda_nid_t alc662_mix_to_dac(hda_nid_t nid)
static hda_nid_t alc662_dac_to_mix(struct hda_codec *codec, hda_nid_t pin,
				   hda_nid_t dac)
{
	hda_nid_t mix[4];
	hda_nid_t mix[5];
	int i, num;
	num = snd_hda_get_connections(codec, pin, mix, ARRAY_SIZE(mix));
+6 −3
Original line number Diff line number Diff line
@@ -222,9 +222,9 @@ static int __init at91sam9g20ek_init(void)
	}

	pllb = clk_get(NULL, "pllb");
	if (IS_ERR(mclk)) {
	if (IS_ERR(pllb)) {
		printk(KERN_ERR "ASoC: Failed to get PLLB\n");
		ret = PTR_ERR(mclk);
		ret = PTR_ERR(pllb);
		goto err_mclk;
	}
	ret = clk_set_parent(mclk, pllb);
@@ -240,6 +240,7 @@ static int __init at91sam9g20ek_init(void)
	if (!at91sam9g20ek_snd_device) {
		printk(KERN_ERR "ASoC: Platform device allocation failed\n");
		ret = -ENOMEM;
		goto err_mclk;
	}

	platform_set_drvdata(at91sam9g20ek_snd_device,
@@ -248,11 +249,13 @@ static int __init at91sam9g20ek_init(void)
	ret = platform_device_add(at91sam9g20ek_snd_device);
	if (ret) {
		printk(KERN_ERR "ASoC: Platform device allocation failed\n");
		platform_device_put(at91sam9g20ek_snd_device);
		goto err_device_add;
	}

	return ret;

err_device_add:
	platform_device_put(at91sam9g20ek_snd_device);
err_mclk:
	clk_put(mclk);
	mclk = NULL;
+0 −1
Original line number Diff line number Diff line
@@ -167,7 +167,6 @@ static int __init afeb9260_soc_init(void)

	return 0;
err1:
	platform_device_del(afeb9260_snd_device);
	platform_device_put(afeb9260_snd_device);
	return err;
}
+3 −0
Original line number Diff line number Diff line
@@ -2019,7 +2019,10 @@ static int max98088_probe(struct snd_soc_codec *codec)

static int max98088_remove(struct snd_soc_codec *codec)
{
       struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec);

       max98088_set_bias_level(codec, SND_SOC_BIAS_OFF);
       kfree(max98088->eq_texts);

       return 0;
}
+1 −0
Original line number Diff line number Diff line
@@ -383,6 +383,7 @@ static struct snd_soc_codec_driver soc_codec_dev_stac9766 = {
	.reg_cache_size = sizeof(stac9766_reg),
	.reg_word_size = sizeof(u16),
	.reg_cache_step = 2,
	.reg_cache_default = stac9766_reg,
};

static __devinit int stac9766_probe(struct platform_device *pdev)
Loading