Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 646e1dd8 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: pcm: Don't notify internal PCMs



Notifier shouldn't listen to the changes of internal PCMs.

Acked-by: default avatarLiam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent b95bd3a4
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -888,7 +888,8 @@ static int snd_pcm_free(struct snd_pcm *pcm)

	if (!pcm)
		return 0;
	list_for_each_entry(notify, &snd_pcm_notify_list, list) {
	if (!pcm->internal) {
		list_for_each_entry(notify, &snd_pcm_notify_list, list)
			notify->n_unregister(pcm);
	}
	if (pcm->private_free)
@@ -1129,7 +1130,7 @@ static int snd_pcm_dev_disconnect(struct snd_device *device)
	mutex_lock(&pcm->open_mutex);
	wake_up(&pcm->open_wait);
	list_del_init(&pcm->list);
	for (cidx = 0; cidx < 2; cidx++)
	for (cidx = 0; cidx < 2; cidx++) {
		for (substream = pcm->streams[cidx].substream; substream; substream = substream->next) {
			snd_pcm_stream_lock_irq(substream);
			if (substream->runtime) {
@@ -1139,7 +1140,9 @@ static int snd_pcm_dev_disconnect(struct snd_device *device)
			}
			snd_pcm_stream_unlock_irq(substream);
		}
	list_for_each_entry(notify, &snd_pcm_notify_list, list) {
	}
	if (!pcm->internal) {
		list_for_each_entry(notify, &snd_pcm_notify_list, list)
			notify->n_disconnect(pcm);
	}
	for (cidx = 0; cidx < 2; cidx++) {