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

Commit 5ec02a1c authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge branch 'fix/hda' into topic/hda

parents 34588709 e0d32e33
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ MODULE_PARM_DESC(enable, "Enable FM801 soundcard.");
module_param_array(tea575x_tuner, int, NULL, 0444);
MODULE_PARM_DESC(tea575x_tuner, "TEA575x tuner access method (0 = auto, 1 = SF256-PCS, 2=SF256-PCP, 3=SF64-PCR, 8=disable, +16=tuner-only).");

#define TUNER_DISABLED		(1<<3)
#define TUNER_ONLY		(1<<4)
#define TUNER_TYPE_MASK		(~TUNER_ONLY & 0xFFFF)

@@ -1150,6 +1151,7 @@ static int snd_fm801_free(struct fm801 *chip)

      __end_hw:
#ifdef CONFIG_SND_FM801_TEA575X_BOOL
	if (!(chip->tea575x_tuner & TUNER_DISABLED))
		snd_tea575x_exit(&chip->tea);
#endif
	if (chip->irq >= 0)
@@ -1236,7 +1238,6 @@ static int __devinit snd_fm801_create(struct snd_card *card,
	    (tea575x_tuner & TUNER_TYPE_MASK) < 4) {
		if (snd_tea575x_init(&chip->tea)) {
			snd_printk(KERN_ERR "TEA575x radio not found\n");
			snd_fm801_free(chip);
			return -ENODEV;
		}
	} else if ((tea575x_tuner & TUNER_TYPE_MASK) == 0) {
@@ -1251,11 +1252,15 @@ static int __devinit snd_fm801_create(struct snd_card *card,
		}
		if (tea575x_tuner == 4) {
			snd_printk(KERN_ERR "TEA575x radio not found\n");
			snd_fm801_free(chip);
			return -ENODEV;
			chip->tea575x_tuner = TUNER_DISABLED;
		}
	}
	if (!(chip->tea575x_tuner & TUNER_DISABLED)) {
		strlcpy(chip->tea.card,
			snd_fm801_tea575x_gpios[(tea575x_tuner &
						 TUNER_TYPE_MASK) - 1].name,
			sizeof(chip->tea.card));
	}
	strlcpy(chip->tea.card, snd_fm801_tea575x_gpios[(tea575x_tuner & TUNER_TYPE_MASK) - 1].name, sizeof(chip->tea.card));
#endif

	*rchip = chip;
+7 −1
Original line number Diff line number Diff line
@@ -594,6 +594,10 @@ static void alc_line_automute(struct hda_codec *codec)
{
	struct alc_spec *spec = codec->spec;

	/* check LO jack only when it's different from HP */
	if (spec->autocfg.line_out_pins[0] == spec->autocfg.hp_pins[0])
		return;

	spec->line_jack_present =
		detect_jacks(codec, ARRAY_SIZE(spec->autocfg.line_out_pins),
			     spec->autocfg.line_out_pins);
@@ -1347,7 +1351,9 @@ do_sku:
	 * 15   : 1 --> enable the function "Mute internal speaker
	 *	        when the external headphone out jack is plugged"
	 */
	if (!spec->autocfg.hp_pins[0]) {
	if (!spec->autocfg.hp_pins[0] &&
	    !(spec->autocfg.line_out_pins[0] &&
	      spec->autocfg.line_out_type == AUTO_PIN_HP_OUT)) {
		hda_nid_t nid;
		tmp = (ass >> 11) & 0x3;	/* HP to chassis */
		if (tmp == 0)
+1 −0
Original line number Diff line number Diff line
@@ -5630,6 +5630,7 @@ again:
	switch (codec->vendor_id) {
	case 0x111d76d1:
	case 0x111d76d9:
	case 0x111d76df:
	case 0x111d76e5:
	case 0x111d7666:
	case 0x111d7667:
+1 −1
Original line number Diff line number Diff line
@@ -128,7 +128,7 @@ static int snd_ad73311_configure(void)
	return 0;
}

static int bf5xx_probe(struct platform_device *pdev)
static int bf5xx_probe(struct snd_soc_card *card)
{
	int err;
	if (gpio_request(GPIO_SE, "AD73311_SE")) {
+0 −26
Original line number Diff line number Diff line
@@ -3479,31 +3479,6 @@ int wm8962_mic_detect(struct snd_soc_codec *codec, struct snd_soc_jack *jack)
}
EXPORT_SYMBOL_GPL(wm8962_mic_detect);

#ifdef CONFIG_PM
static int wm8962_resume(struct snd_soc_codec *codec)
{
	u16 *reg_cache = codec->reg_cache;
	int i;

	/* Restore the registers */
	for (i = 1; i < codec->driver->reg_cache_size; i++) {
		switch (i) {
		case WM8962_SOFTWARE_RESET:
			continue;
		default:
			break;
		}

		if (reg_cache[i] != wm8962_reg[i])
			snd_soc_write(codec, i, reg_cache[i]);
	}

	return 0;
}
#else
#define wm8962_resume NULL
#endif

#if defined(CONFIG_INPUT) || defined(CONFIG_INPUT_MODULE)
static int beep_rates[] = {
	500, 1000, 2000, 4000,
@@ -4015,7 +3990,6 @@ static int wm8962_remove(struct snd_soc_codec *codec)
static struct snd_soc_codec_driver soc_codec_dev_wm8962 = {
	.probe =	wm8962_probe,
	.remove =	wm8962_remove,
	.resume =	wm8962_resume,
	.set_bias_level = wm8962_set_bias_level,
	.reg_cache_size = WM8962_MAX_REGISTER + 1,
	.reg_word_size = sizeof(u16),
Loading