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

Commit ef47bf38 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge branch 'fix/misc' into topic/misc

parents 306ecee9 8ee763b9
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -501,6 +501,10 @@ static int aaci_pcm_hw_params(struct snd_pcm_substream *substream,
	int err;

	aaci_pcm_hw_free(substream);
	if (aacirun->pcm_open) {
		snd_ac97_pcm_close(aacirun->pcm);
		aacirun->pcm_open = 0;
	}

	err = devdma_hw_alloc(NULL, substream,
			      params_buffer_bytes(params));
@@ -514,7 +518,7 @@ static int aaci_pcm_hw_params(struct snd_pcm_substream *substream,
	else
		err = snd_ac97_pcm_open(aacirun->pcm, params_rate(params),
					params_channels(params),
					aacirun->pcm->r[1].slots);
					aacirun->pcm->r[0].slots);

	if (err)
		goto out;
+12 −3
Original line number Diff line number Diff line
@@ -110,6 +110,7 @@ struct conexant_spec {

	unsigned int dell_automute;
	unsigned int port_d_mode;
	unsigned char ext_mic_bias;
};

static int conexant_playback_pcm_open(struct hda_pcm_stream *hinfo,
@@ -1927,6 +1928,11 @@ static hda_nid_t cxt5066_adc_nids[3] = { 0x14, 0x15, 0x16 };
static hda_nid_t cxt5066_capsrc_nids[1] = { 0x17 };
#define CXT5066_SPDIF_OUT	0x21

/* OLPC's microphone port is DC coupled for use with external sensors,
 * therefore we use a 50% mic bias in order to center the input signal with
 * the DC input range of the codec. */
#define CXT5066_OLPC_EXT_MIC_BIAS PIN_VREF50

static struct hda_channel_mode cxt5066_modes[1] = {
	{ 2, NULL },
};
@@ -1980,9 +1986,10 @@ static int cxt5066_hp_master_sw_put(struct snd_kcontrol *kcontrol,
/* toggle input of built-in and mic jack appropriately */
static void cxt5066_automic(struct hda_codec *codec)
{
	static struct hda_verb ext_mic_present[] = {
	struct conexant_spec *spec = codec->spec;
	struct hda_verb ext_mic_present[] = {
		/* enable external mic, port B */
		{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
		{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, spec->ext_mic_bias},

		/* switch to external mic input */
		{0x17, AC_VERB_SET_CONNECT_SEL, 0},
@@ -2235,7 +2242,7 @@ static struct hda_verb cxt5066_init_verbs_olpc[] = {
	{0x19, AC_VERB_SET_CONNECT_SEL, 0x00}, /* DAC1 */

	/* Port B: external microphone */
	{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
	{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, CXT5066_OLPC_EXT_MIC_BIAS},

	/* Port C: internal microphone */
	{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
@@ -2353,6 +2360,7 @@ static int patch_cxt5066(struct hda_codec *codec)
	spec->input_mux = &cxt5066_capture_source;

	spec->port_d_mode = PIN_HP;
	spec->ext_mic_bias = PIN_VREF80;

	spec->num_init_verbs = 1;
	spec->init_verbs[0] = cxt5066_init_verbs;
@@ -2384,6 +2392,7 @@ static int patch_cxt5066(struct hda_codec *codec)
		spec->mixers[spec->num_mixers++] = cxt5066_mixer_master_olpc;
		spec->mixers[spec->num_mixers++] = cxt5066_mixers;
		spec->port_d_mode = 0;
		spec->ext_mic_bias = CXT5066_OLPC_EXT_MIC_BIAS;

		/* no S/PDIF out */
		spec->multiout.dig_out_nid = 0;
+2 −0
Original line number Diff line number Diff line
@@ -397,6 +397,7 @@ static int patch_nvhdmi_2ch(struct hda_codec *codec)
static struct hda_codec_preset snd_hda_preset_nvhdmi[] = {
	{ .id = 0x10de0002, .name = "MCP78 HDMI", .patch = patch_nvhdmi_8ch },
	{ .id = 0x10de0003, .name = "MCP78 HDMI", .patch = patch_nvhdmi_8ch },
	{ .id = 0x10de0005, .name = "MCP78 HDMI", .patch = patch_nvhdmi_8ch },
	{ .id = 0x10de0006, .name = "MCP78 HDMI", .patch = patch_nvhdmi_8ch },
	{ .id = 0x10de0007, .name = "MCP7A HDMI", .patch = patch_nvhdmi_8ch },
	{ .id = 0x10de0067, .name = "MCP67 HDMI", .patch = patch_nvhdmi_2ch },
@@ -406,6 +407,7 @@ static struct hda_codec_preset snd_hda_preset_nvhdmi[] = {

MODULE_ALIAS("snd-hda-codec-id:10de0002");
MODULE_ALIAS("snd-hda-codec-id:10de0003");
MODULE_ALIAS("snd-hda-codec-id:10de0005");
MODULE_ALIAS("snd-hda-codec-id:10de0006");
MODULE_ALIAS("snd-hda-codec-id:10de0007");
MODULE_ALIAS("snd-hda-codec-id:10de0067");
+10 −7
Original line number Diff line number Diff line
@@ -4684,9 +4684,9 @@ static int alc880_parse_auto_config(struct hda_codec *codec)
			spec->multiout.dig_out_nid = dig_nid;
		else {
			spec->multiout.slave_dig_outs = spec->slave_dig_outs;
			spec->slave_dig_outs[i - 1] = dig_nid;
			if (i == ARRAY_SIZE(spec->slave_dig_outs) - 1)
			if (i >= ARRAY_SIZE(spec->slave_dig_outs) - 1)
				break;
			spec->slave_dig_outs[i - 1] = dig_nid;
		}
	}
	if (spec->autocfg.dig_in_pin)
@@ -6249,7 +6249,7 @@ static struct snd_pci_quirk alc260_cfg_tbl[] = {
	SND_PCI_QUIRK(0x1025, 0x008f, "Acer", ALC260_ACER),
	SND_PCI_QUIRK(0x1509, 0x4540, "Favorit 100XS", ALC260_FAVORIT100),
	SND_PCI_QUIRK(0x103c, 0x2808, "HP d5700", ALC260_HP_3013),
	SND_PCI_QUIRK(0x103c, 0x280a, "HP d5750", ALC260_HP_3013),
	SND_PCI_QUIRK(0x103c, 0x280a, "HP d5750", ALC260_AUTO), /* no quirk */
	SND_PCI_QUIRK(0x103c, 0x3010, "HP", ALC260_HP_3013),
	SND_PCI_QUIRK(0x103c, 0x3011, "HP", ALC260_HP_3013),
	SND_PCI_QUIRK(0x103c, 0x3012, "HP", ALC260_HP_DC7600),
@@ -8911,10 +8911,11 @@ static struct snd_pci_quirk alc882_ssid_cfg_tbl[] = {
	SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC885_MBP3),
	SND_PCI_QUIRK(0x106b, 0x3e00, "iMac 24 Aluminum", ALC885_IMAC24),
	SND_PCI_QUIRK(0x106b, 0x3f00, "Macbook 5,1", ALC885_MB5),
	/* FIXME: HP jack sense seems not working for MBP 5,1, so apparently
	 * no perfect solution yet
	/* FIXME: HP jack sense seems not working for MBP 5,1 or 5,2,
	 * so apparently no perfect solution yet
	 */
	SND_PCI_QUIRK(0x106b, 0x4000, "MacbookPro 5,1", ALC885_MB5),
	SND_PCI_QUIRK(0x106b, 0x4600, "MacbookPro 5,2", ALC885_MB5),
	{} /* terminator */
};
@@ -9813,9 +9814,9 @@ static int alc882_parse_auto_config(struct hda_codec *codec)
			spec->multiout.dig_out_nid = dig_nid;
		else {
			spec->multiout.slave_dig_outs = spec->slave_dig_outs;
			spec->slave_dig_outs[i - 1] = dig_nid;
			if (i == ARRAY_SIZE(spec->slave_dig_outs) - 1)
			if (i >= ARRAY_SIZE(spec->slave_dig_outs) - 1)
				break;
			spec->slave_dig_outs[i - 1] = dig_nid;
		}
	}
	if (spec->autocfg.dig_in_pin)
@@ -11460,6 +11461,8 @@ static struct snd_pci_quirk alc262_cfg_tbl[] = {
	SND_PCI_QUIRK(0x104d, 0x820f, "Sony ASSAMD", ALC262_SONY_ASSAMD),
	SND_PCI_QUIRK(0x104d, 0x9016, "Sony VAIO", ALC262_AUTO), /* dig-only */
	SND_PCI_QUIRK(0x104d, 0x9025, "Sony VAIO Z21MN", ALC262_TOSHIBA_S06),
	SND_PCI_QUIRK(0x104d, 0x9035, "Sony VAIO VGN-FW170J", ALC262_AUTO),
	SND_PCI_QUIRK(0x104d, 0x9047, "Sony VAIO Type G", ALC262_AUTO),
	SND_PCI_QUIRK_MASK(0x104d, 0xff00, 0x9000, "Sony VAIO",
			   ALC262_SONY_ASSAMD),
	SND_PCI_QUIRK(0x1179, 0x0001, "Toshiba dynabook SS RX1",
+2 −0
Original line number Diff line number Diff line
@@ -1590,6 +1590,8 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
				"Dell Studio 17", STAC_DELL_M6_DMIC),
	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02be,
				"Dell Studio 1555", STAC_DELL_M6_DMIC),
	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02bd,
				"Dell Studio 1557", STAC_DELL_M6_DMIC),
	{} /* terminator */
};

Loading