diff --git a/asoc/msm-lsm-client.c b/asoc/msm-lsm-client.c index fe461ffc5e5a..69768bc38e51 100644 --- a/asoc/msm-lsm-client.c +++ b/asoc/msm-lsm-client.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2013-2020, The Linux Foundation. All rights reserved. + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. */ #include #include @@ -3092,14 +3093,6 @@ static int msm_lsm_close(struct snd_pcm_substream *substream) __func__, ret); prtd->lsm_client->lab_started = false; } - if (prtd->lsm_client->lab_buffer) { - ret = msm_lsm_lab_buffer_alloc(prtd, - LAB_BUFFER_DEALLOC); - if (ret) - dev_err(rtd->dev, - "%s: lab buffer dealloc failed ret %d\n", - __func__, ret); - } } if (!atomic_read(&prtd->read_abort)) { @@ -3120,6 +3113,15 @@ static int msm_lsm_close(struct snd_pcm_substream *substream) prtd->lsm_client->started = false; } + if (prtd->lsm_client->lab_enable && prtd->lsm_client->lab_buffer) { + ret = msm_lsm_lab_buffer_alloc(prtd, + LAB_BUFFER_DEALLOC); + if (ret) + dev_err(rtd->dev, + "%s: lab buffer dealloc failed ret %d\n", + __func__, ret); + } + /* * De-register existing sound models * to free SM and CAL buffer, even if