mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 00:24:41 -04:00
ASoC: Unmap lab buffer during listen session close
Ensure lab buffer de-alloc even if listen session is not in start state to avoid memory leak when multiple listen clients are created. Change-Id: Id6d8b37a3dcdf49618ae2a4d80903d429393cd8e Signed-off-by: Soumya Managoli <quic_c_smanag@quicinc.com>
This commit is contained in:
parent
7743f757cb
commit
092ce1cc5c
1 changed files with 10 additions and 8 deletions
|
|
@ -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 <linux/init.h>
|
||||
#include <linux/err.h>
|
||||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue