Commit 218264ae authored by Takashi Iwai's avatar Takashi Iwai

ALSA: hda - Avoid unnecessary verbs to clear PCM formats

Since really_cleanup_stream() is called from both purity_inactive_streams()
and hda_cleanup_all_streams(), the verbs to clear the PCM channel and
format may be called multiple times unnecessarily.

This patch adds checks to skip these unneeded verbs.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 5ec02a1c
...@@ -1491,8 +1491,11 @@ static void really_cleanup_stream(struct hda_codec *codec, ...@@ -1491,8 +1491,11 @@ static void really_cleanup_stream(struct hda_codec *codec,
struct hda_cvt_setup *q) struct hda_cvt_setup *q)
{ {
hda_nid_t nid = q->nid; hda_nid_t nid = q->nid;
snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_CHANNEL_STREAMID, 0); if (q->stream_tag || q->channel_id)
snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_STREAM_FORMAT, 0); snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_CHANNEL_STREAMID, 0);
if (q->format_id)
snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_STREAM_FORMAT, 0
);
memset(q, 0, sizeof(*q)); memset(q, 0, sizeof(*q));
q->nid = nid; q->nid = nid;
} }
......
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