From: Takashi Iwai Date: Tue, 27 Sep 2011 15:33:45 +0000 (+0200) Subject: ALSA: hda - Avoid unnecessary verbs to clear PCM formats X-Git-Tag: MMI-PSA29.97-13-9~18103^2~51 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=218264ae9ab3e12a785e1faeb2e15c8ae7172863;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git 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: Takashi Iwai --- diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 6b611d50d03f..e3db19610411 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -1491,8 +1491,11 @@ static void really_cleanup_stream(struct hda_codec *codec, struct hda_cvt_setup *q) { hda_nid_t nid = q->nid; - snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_CHANNEL_STREAMID, 0); - snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_STREAM_FORMAT, 0); + if (q->stream_tag || q->channel_id) + 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)); q->nid = nid; }