aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/isa/als100.c2
-rw-r--r--sound/pci/hda/hda_codec.c6
-rw-r--r--sound/pci/hda/hda_codec.h1
-rw-r--r--sound/pci/hda/patch_sigmatel.c4
4 files changed, 10 insertions, 3 deletions
diff --git a/sound/isa/als100.c b/sound/isa/als100.c
index 2d67c78c9f4b..f7cdaf51512d 100644
--- a/sound/isa/als100.c
+++ b/sound/isa/als100.c
@@ -233,7 +233,7 @@ static int __devinit snd_card_als100_probe(int dev,
233 irq[dev], dma8[dev], dma16[dev]); 233 irq[dev], dma8[dev], dma16[dev]);
234 } 234 }
235 235
236 if ((error = snd_sb16dsp_pcm(chip, 0, NULL)) < 0) { 236 if ((error = snd_sb16dsp_pcm(chip, 0, &chip->pcm)) < 0) {
237 snd_card_free(card); 237 snd_card_free(card);
238 return error; 238 return error;
239 } 239 }
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 5f9da87d8762..1b35115f7195 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -1327,6 +1327,9 @@ int /*__devinit*/ snd_hda_codec_new(struct hda_bus *bus,
1327 if (!codec->d3_stop_clk) 1327 if (!codec->d3_stop_clk)
1328 bus->power_keep_link_on = 1; 1328 bus->power_keep_link_on = 1;
1329#endif 1329#endif
1330 codec->epss = snd_hda_codec_get_supported_ps(codec,
1331 codec->afg ? codec->afg : codec->mfg,
1332 AC_PWRST_EPSS);
1330 1333
1331 /* power-up all before initialization */ 1334 /* power-up all before initialization */
1332 hda_set_power_state(codec, 1335 hda_set_power_state(codec,
@@ -3558,8 +3561,7 @@ static void hda_set_power_state(struct hda_codec *codec, hda_nid_t fg,
3558 /* this delay seems necessary to avoid click noise at power-down */ 3561 /* this delay seems necessary to avoid click noise at power-down */
3559 if (power_state == AC_PWRST_D3) { 3562 if (power_state == AC_PWRST_D3) {
3560 /* transition time less than 10ms for power down */ 3563 /* transition time less than 10ms for power down */
3561 bool epss = snd_hda_codec_get_supported_ps(codec, fg, AC_PWRST_EPSS); 3564 msleep(codec->epss ? 10 : 100);
3562 msleep(epss ? 10 : 100);
3563 } 3565 }
3564 3566
3565 /* repeat power states setting at most 10 times*/ 3567 /* repeat power states setting at most 10 times*/
diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h
index 13c834f20440..72477ccb20f9 100644
--- a/sound/pci/hda/hda_codec.h
+++ b/sound/pci/hda/hda_codec.h
@@ -866,6 +866,7 @@ struct hda_codec {
866 unsigned int ignore_misc_bit:1; /* ignore MISC_NO_PRESENCE bit */ 866 unsigned int ignore_misc_bit:1; /* ignore MISC_NO_PRESENCE bit */
867 unsigned int no_jack_detect:1; /* Machine has no jack-detection */ 867 unsigned int no_jack_detect:1; /* Machine has no jack-detection */
868 unsigned int pcm_format_first:1; /* PCM format must be set first */ 868 unsigned int pcm_format_first:1; /* PCM format must be set first */
869 unsigned int epss:1; /* supporting EPSS? */
869#ifdef CONFIG_SND_HDA_POWER_SAVE 870#ifdef CONFIG_SND_HDA_POWER_SAVE
870 unsigned int power_on :1; /* current (global) power-state */ 871 unsigned int power_on :1; /* current (global) power-state */
871 int power_transition; /* power-state in transition */ 872 int power_transition; /* power-state in transition */
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 435295402efa..9db305633efe 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -4541,6 +4541,9 @@ static void stac92xx_line_out_detect(struct hda_codec *codec,
4541 struct auto_pin_cfg *cfg = &spec->autocfg; 4541 struct auto_pin_cfg *cfg = &spec->autocfg;
4542 int i; 4542 int i;
4543 4543
4544 if (cfg->speaker_outs == 0)
4545 return;
4546
4544 for (i = 0; i < cfg->line_outs; i++) { 4547 for (i = 0; i < cfg->line_outs; i++) {
4545 if (presence) 4548 if (presence)
4546 break; 4549 break;
@@ -5529,6 +5532,7 @@ static int patch_stac92hd83xxx(struct hda_codec *codec)
5529 snd_hda_codec_set_pincfg(codec, 0xf, 0x2181205e); 5532 snd_hda_codec_set_pincfg(codec, 0xf, 0x2181205e);
5530 } 5533 }
5531 5534
5535 codec->epss = 0; /* longer delay needed for D3 */
5532 codec->no_trigger_sense = 1; 5536 codec->no_trigger_sense = 1;
5533 codec->spec = spec; 5537 codec->spec = spec;
5534 5538