Commit 8837e341 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
  ALSA: Fix a Oops bug in omap soc driver.
  ALSA: hda - Remove non-working headphone control for Dell laptops
  ALSA: hda - Add no-jd model for IDT 92HD73xx
  ALSA: Revert "ALSA: hda: removed unneeded hp_nid references"
  ALSA: hda - Add quirk for Dell Studio 17
  ALSA: hda - Fix silent HP output on D975
parents 281981ca 5bd9c696
...@@ -1063,6 +1063,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. ...@@ -1063,6 +1063,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
STAC9227/9228/9229/927x STAC9227/9228/9229/927x
ref Reference board ref Reference board
ref-no-jd Reference board without HP/Mic jack detection
3stack D965 3stack 3stack D965 3stack
5stack D965 5stack + SPDIF 5stack D965 5stack + SPDIF
dell-3stack Dell Dimension E520 dell-3stack Dell Dimension E520
...@@ -1076,6 +1077,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. ...@@ -1076,6 +1077,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
STAC92HD73* STAC92HD73*
ref Reference board ref Reference board
no-jd BIOS setup but without jack-detection
dell-m6-amic Dell desktops/laptops with analog mics dell-m6-amic Dell desktops/laptops with analog mics
dell-m6-dmic Dell desktops/laptops with digital mics dell-m6-dmic Dell desktops/laptops with digital mics
dell-m6 Dell desktops/laptops with both type of mics dell-m6 Dell desktops/laptops with both type of mics
......
...@@ -69,6 +69,7 @@ enum { ...@@ -69,6 +69,7 @@ enum {
}; };
enum { enum {
STAC_92HD73XX_NO_JD, /* no jack-detection */
STAC_92HD73XX_REF, STAC_92HD73XX_REF,
STAC_DELL_M6_AMIC, STAC_DELL_M6_AMIC,
STAC_DELL_M6_DMIC, STAC_DELL_M6_DMIC,
...@@ -127,6 +128,7 @@ enum { ...@@ -127,6 +128,7 @@ enum {
}; };
enum { enum {
STAC_D965_REF_NO_JD, /* no jack-detection */
STAC_D965_REF, STAC_D965_REF,
STAC_D965_3ST, STAC_D965_3ST,
STAC_D965_5ST, STAC_D965_5ST,
...@@ -1611,6 +1613,7 @@ static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { ...@@ -1611,6 +1613,7 @@ static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
}; };
static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = {
[STAC_92HD73XX_NO_JD] = "no-jd",
[STAC_92HD73XX_REF] = "ref", [STAC_92HD73XX_REF] = "ref",
[STAC_DELL_M6_AMIC] = "dell-m6-amic", [STAC_DELL_M6_AMIC] = "dell-m6-amic",
[STAC_DELL_M6_DMIC] = "dell-m6-dmic", [STAC_DELL_M6_DMIC] = "dell-m6-dmic",
...@@ -1640,6 +1643,8 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = { ...@@ -1640,6 +1643,8 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
"unknown Dell", STAC_DELL_M6_DMIC), "unknown Dell", STAC_DELL_M6_DMIC),
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x029f, SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x029f,
"Dell Studio 1537", STAC_DELL_M6_DMIC), "Dell Studio 1537", STAC_DELL_M6_DMIC),
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02a0,
"Dell Studio 17", STAC_DELL_M6_DMIC),
{} /* terminator */ {} /* terminator */
}; };
...@@ -2027,6 +2032,7 @@ static unsigned int dell_3st_pin_configs[14] = { ...@@ -2027,6 +2032,7 @@ static unsigned int dell_3st_pin_configs[14] = {
}; };
static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = { static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = {
[STAC_D965_REF_NO_JD] = ref927x_pin_configs,
[STAC_D965_REF] = ref927x_pin_configs, [STAC_D965_REF] = ref927x_pin_configs,
[STAC_D965_3ST] = d965_3st_pin_configs, [STAC_D965_3ST] = d965_3st_pin_configs,
[STAC_D965_5ST] = d965_5st_pin_configs, [STAC_D965_5ST] = d965_5st_pin_configs,
...@@ -2035,6 +2041,7 @@ static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = { ...@@ -2035,6 +2041,7 @@ static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = {
}; };
static const char *stac927x_models[STAC_927X_MODELS] = { static const char *stac927x_models[STAC_927X_MODELS] = {
[STAC_D965_REF_NO_JD] = "ref-no-jd",
[STAC_D965_REF] = "ref", [STAC_D965_REF] = "ref",
[STAC_D965_3ST] = "3stack", [STAC_D965_3ST] = "3stack",
[STAC_D965_5ST] = "5stack", [STAC_D965_5ST] = "5stack",
...@@ -2896,7 +2903,7 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec, ...@@ -2896,7 +2903,7 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
} }
if ((spec->multiout.num_dacs - cfg->line_outs) > 0 && if ((spec->multiout.num_dacs - cfg->line_outs) > 0 &&
cfg->hp_outs && !spec->multiout.hp_nid) cfg->hp_outs == 1 && !spec->multiout.hp_nid)
spec->multiout.hp_nid = nid; spec->multiout.hp_nid = nid;
if (cfg->hp_outs > 1 && cfg->line_out_type == AUTO_PIN_LINE_OUT) { if (cfg->hp_outs > 1 && cfg->line_out_type == AUTO_PIN_LINE_OUT) {
...@@ -4254,14 +4261,17 @@ static int patch_stac92hd73xx(struct hda_codec *codec) ...@@ -4254,14 +4261,17 @@ static int patch_stac92hd73xx(struct hda_codec *codec)
switch (spec->multiout.num_dacs) { switch (spec->multiout.num_dacs) {
case 0x3: /* 6 Channel */ case 0x3: /* 6 Channel */
spec->multiout.hp_nid = 0x17;
spec->mixer = stac92hd73xx_6ch_mixer; spec->mixer = stac92hd73xx_6ch_mixer;
spec->init = stac92hd73xx_6ch_core_init; spec->init = stac92hd73xx_6ch_core_init;
break; break;
case 0x4: /* 8 Channel */ case 0x4: /* 8 Channel */
spec->multiout.hp_nid = 0x18;
spec->mixer = stac92hd73xx_8ch_mixer; spec->mixer = stac92hd73xx_8ch_mixer;
spec->init = stac92hd73xx_8ch_core_init; spec->init = stac92hd73xx_8ch_core_init;
break; break;
case 0x5: /* 10 Channel */ case 0x5: /* 10 Channel */
spec->multiout.hp_nid = 0x19;
spec->mixer = stac92hd73xx_10ch_mixer; spec->mixer = stac92hd73xx_10ch_mixer;
spec->init = stac92hd73xx_10ch_core_init; spec->init = stac92hd73xx_10ch_core_init;
}; };
...@@ -4297,6 +4307,7 @@ static int patch_stac92hd73xx(struct hda_codec *codec) ...@@ -4297,6 +4307,7 @@ static int patch_stac92hd73xx(struct hda_codec *codec)
spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP]; spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP];
spec->eapd_switch = 0; spec->eapd_switch = 0;
spec->num_amps = 1; spec->num_amps = 1;
spec->multiout.hp_nid = 0; /* dual HPs */
if (!spec->init) if (!spec->init)
spec->init = dell_m6_core_init; spec->init = dell_m6_core_init;
...@@ -4351,6 +4362,9 @@ static int patch_stac92hd73xx(struct hda_codec *codec) ...@@ -4351,6 +4362,9 @@ static int patch_stac92hd73xx(struct hda_codec *codec)
return err; return err;
} }
if (spec->board_config == STAC_92HD73XX_NO_JD)
spec->hp_detect = 0;
codec->patch_ops = stac92xx_patch_ops; codec->patch_ops = stac92xx_patch_ops;
return 0; return 0;
...@@ -4899,6 +4913,10 @@ static int patch_stac927x(struct hda_codec *codec) ...@@ -4899,6 +4913,10 @@ static int patch_stac927x(struct hda_codec *codec)
*/ */
codec->bus->needs_damn_long_delay = 1; codec->bus->needs_damn_long_delay = 1;
/* no jack detecion for ref-no-jd model */
if (spec->board_config == STAC_D965_REF_NO_JD)
spec->hp_detect = 0;
return 0; return 0;
} }
......
...@@ -233,7 +233,7 @@ static int omap_pcm_open(struct snd_pcm_substream *substream) ...@@ -233,7 +233,7 @@ static int omap_pcm_open(struct snd_pcm_substream *substream)
if (ret < 0) if (ret < 0)
goto out; goto out;
prtd = kzalloc(sizeof(prtd), GFP_KERNEL); prtd = kzalloc(sizeof(*prtd), GFP_KERNEL);
if (prtd == NULL) { if (prtd == NULL) {
ret = -ENOMEM; ret = -ENOMEM;
goto out; goto out;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment