diff options
-rw-r--r-- | sound/isa/als100.c | 2 | ||||
-rw-r--r-- | sound/pci/hda/hda_codec.c | 6 | ||||
-rw-r--r-- | sound/pci/hda/hda_codec.h | 1 | ||||
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 4 |
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 | ||