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

Commit c5892fcc authored by Deru Wang's avatar Deru Wang
Browse files

asoc: modify the ref_count check for substream



These controls are used in both runtime and non-runtime.
The current ref_count check will block its use under non-runtime.

Change-Id: If98cf5e2c81e22818637b5c0e99764fbc0d08741
Signed-off-by: default avatarDeru Wang <deruwang@codeaurora.org>
parent 686f8554
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/* Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
/* Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
 */

#include <linux/init.h>
@@ -950,7 +950,7 @@ static int msm_pcm_channel_mixer_cfg_ctl_put(struct snd_kcontrol *kcontrol,
			chmixer_pspd);

	mutex_lock(&loopback_session_lock);
	if (substream->ref_count <= 0) {
	if (substream->runtime && substream->ref_count <= 0) {
		pr_err_ratelimited("%s: substream ref_count:%d invalid\n",
				__func__, substream->ref_count);
		mutex_unlock(&loopback_session_lock);
+3 −3
Original line number Diff line number Diff line
@@ -1862,7 +1862,7 @@ static int msm_pcm_chmap_ctl_put(struct snd_kcontrol *kcontrol,
		return 0;

	mutex_lock(&pdata->lock);
	if (substream->ref_count <= 0) {
	if (substream->runtime && substream->ref_count <= 0) {
		pr_err_ratelimited("%s: substream ref_count:%d invalid\n",
				__func__, substream->ref_count);
		mutex_unlock(&pdata->lock);
@@ -1935,7 +1935,7 @@ static int msm_pcm_chmap_ctl_get(struct snd_kcontrol *kcontrol,
		return 0; /* no channels set */

	mutex_lock(&pdata->lock);
	if (substream->ref_count <= 0) {
	if (substream->runtime && substream->ref_count <= 0) {
		pr_err_ratelimited("%s: substream ref_count:%d invalid\n",
				__func__, substream->ref_count);
		mutex_unlock(&pdata->lock);
@@ -2240,7 +2240,7 @@ static int msm_pcm_channel_mixer_cfg_ctl_put(struct snd_kcontrol *kcontrol,
	}

	mutex_lock(&pdata->lock);
	if (substream->ref_count <= 0) {
	if (substream->runtime && substream->ref_count <= 0) {
		pr_err_ratelimited("%s: substream ref_count:%d invalid\n",
				__func__, substream->ref_count);
		mutex_unlock(&pdata->lock);