Commit a184d4e4 authored by Takashi Iwai's avatar Takashi Iwai

Merge branch 'for-linus' into for-next

Need to merge the fixes regarding EPSS.

Conflicts:
	sound/pci/hda/hda_codec.c
parents 5d908ab9 c36b5b05
...@@ -233,7 +233,7 @@ static int __devinit snd_card_als100_probe(int dev, ...@@ -233,7 +233,7 @@ static int __devinit snd_card_als100_probe(int dev,
irq[dev], dma8[dev], dma16[dev]); irq[dev], dma8[dev], dma16[dev]);
} }
if ((error = snd_sb16dsp_pcm(chip, 0, NULL)) < 0) { if ((error = snd_sb16dsp_pcm(chip, 0, &chip->pcm)) < 0) {
snd_card_free(card); snd_card_free(card);
return error; return error;
} }
......
...@@ -1327,6 +1327,9 @@ int /*__devinit*/ snd_hda_codec_new(struct hda_bus *bus, ...@@ -1327,6 +1327,9 @@ int /*__devinit*/ snd_hda_codec_new(struct hda_bus *bus,
if (!codec->d3_stop_clk) if (!codec->d3_stop_clk)
bus->power_keep_link_on = 1; bus->power_keep_link_on = 1;
#endif #endif
codec->epss = snd_hda_codec_get_supported_ps(codec,
codec->afg ? codec->afg : codec->mfg,
AC_PWRST_EPSS);
/* power-up all before initialization */ /* power-up all before initialization */
hda_set_power_state(codec, hda_set_power_state(codec,
...@@ -3558,8 +3561,7 @@ static void hda_set_power_state(struct hda_codec *codec, hda_nid_t fg, ...@@ -3558,8 +3561,7 @@ static void hda_set_power_state(struct hda_codec *codec, hda_nid_t fg,
/* this delay seems necessary to avoid click noise at power-down */ /* this delay seems necessary to avoid click noise at power-down */
if (power_state == AC_PWRST_D3) { if (power_state == AC_PWRST_D3) {
/* transition time less than 10ms for power down */ /* transition time less than 10ms for power down */
bool epss = snd_hda_codec_get_supported_ps(codec, fg, AC_PWRST_EPSS); msleep(codec->epss ? 10 : 100);
msleep(epss ? 10 : 100);
} }
/* repeat power states setting at most 10 times*/ /* repeat power states setting at most 10 times*/
......
...@@ -866,6 +866,7 @@ struct hda_codec { ...@@ -866,6 +866,7 @@ struct hda_codec {
unsigned int ignore_misc_bit:1; /* ignore MISC_NO_PRESENCE bit */ unsigned int ignore_misc_bit:1; /* ignore MISC_NO_PRESENCE bit */
unsigned int no_jack_detect:1; /* Machine has no jack-detection */ unsigned int no_jack_detect:1; /* Machine has no jack-detection */
unsigned int pcm_format_first:1; /* PCM format must be set first */ unsigned int pcm_format_first:1; /* PCM format must be set first */
unsigned int epss:1; /* supporting EPSS? */
#ifdef CONFIG_SND_HDA_POWER_SAVE #ifdef CONFIG_SND_HDA_POWER_SAVE
unsigned int power_on :1; /* current (global) power-state */ unsigned int power_on :1; /* current (global) power-state */
int power_transition; /* power-state in transition */ int power_transition; /* power-state in transition */
......
...@@ -4541,6 +4541,9 @@ static void stac92xx_line_out_detect(struct hda_codec *codec, ...@@ -4541,6 +4541,9 @@ static void stac92xx_line_out_detect(struct hda_codec *codec,
struct auto_pin_cfg *cfg = &spec->autocfg; struct auto_pin_cfg *cfg = &spec->autocfg;
int i; int i;
if (cfg->speaker_outs == 0)
return;
for (i = 0; i < cfg->line_outs; i++) { for (i = 0; i < cfg->line_outs; i++) {
if (presence) if (presence)
break; break;
...@@ -5529,6 +5532,7 @@ static int patch_stac92hd83xxx(struct hda_codec *codec) ...@@ -5529,6 +5532,7 @@ static int patch_stac92hd83xxx(struct hda_codec *codec)
snd_hda_codec_set_pincfg(codec, 0xf, 0x2181205e); snd_hda_codec_set_pincfg(codec, 0xf, 0x2181205e);
} }
codec->epss = 0; /* longer delay needed for D3 */
codec->no_trigger_sense = 1; codec->no_trigger_sense = 1;
codec->spec = spec; codec->spec = spec;
......
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