ALSA: hda - Fix lost sound due to stream_pm ops cleanup
The commit [49fb18972581: ALSA: hda - Set stream_pm ops automatically
by generic parser] resulted in regressions on some Realtek and VIA
codecs because these drivers set patch_ops after calling the generic
parser, thus stream_pm got cleared to NULL again. I haven't noticed
since I tested with IDT codec.
Restore (partial revert) the stream_pm ops for them to fix the
regression.
Fixes: 49fb189725
('ALSA: hda - Set stream_pm ops automatically by generic parser')
Reported-by: Jeremiah Mahler <jmmahler@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Родитель
b40eda6408
Коммит
b47eee2e0a
|
@ -5729,6 +5729,7 @@ static int patch_alc269(struct hda_codec *codec)
|
||||||
set_beep_amp(spec, spec->gen.mixer_nid, 0x04, HDA_INPUT);
|
set_beep_amp(spec, spec->gen.mixer_nid, 0x04, HDA_INPUT);
|
||||||
|
|
||||||
codec->patch_ops = alc_patch_ops;
|
codec->patch_ops = alc_patch_ops;
|
||||||
|
codec->patch_ops.stream_pm = snd_hda_gen_stream_pm;
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
codec->patch_ops.suspend = alc269_suspend;
|
codec->patch_ops.suspend = alc269_suspend;
|
||||||
codec->patch_ops.resume = alc269_resume;
|
codec->patch_ops.resume = alc269_resume;
|
||||||
|
|
|
@ -472,6 +472,7 @@ static const struct hda_codec_ops via_patch_ops = {
|
||||||
.init = via_init,
|
.init = via_init,
|
||||||
.free = via_free,
|
.free = via_free,
|
||||||
.unsol_event = snd_hda_jack_unsol_event,
|
.unsol_event = snd_hda_jack_unsol_event,
|
||||||
|
.stream_pm = snd_hda_gen_stream_pm,
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
.suspend = via_suspend,
|
.suspend = via_suspend,
|
||||||
.check_power_status = via_check_power_status,
|
.check_power_status = via_check_power_status,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче