Loading dsp/codecs/audio_native.c +4 −1 Original line number Original line Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only /* /* * Copyright (c) 2017, The Linux Foundation. All rights reserved. * Copyright (c) 2017, 2020, The Linux Foundation. All rights reserved. */ */ #include <linux/kernel.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/module.h> #include "audio_utils.h" #include "audio_utils.h" spinlock_t enc_dec_lock; static int __init audio_native_init(void) static int __init audio_native_init(void) { { aac_in_init(); aac_in_init(); Loading @@ -31,6 +33,7 @@ static int __init audio_native_init(void) g711alaw_in_init(); g711alaw_in_init(); g711mlaw_in_init(); g711mlaw_in_init(); qcelp_in_init(); qcelp_in_init(); spin_lock_init(&enc_dec_lock); return 0; return 0; } } Loading dsp/codecs/audio_utils.c +4 −1 Original line number Original line Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only /* Copyright (c) 2010-2019, The Linux Foundation. All rights reserved. /* Copyright (c) 2010-2020, The Linux Foundation. All rights reserved. */ */ #include <linux/module.h> #include <linux/module.h> Loading Loading @@ -943,8 +943,11 @@ int audio_in_release(struct inode *inode, struct file *file) audio_in_disable(audio); audio_in_disable(audio); q6asm_audio_client_free(audio->ac); q6asm_audio_client_free(audio->ac); mutex_unlock(&audio->lock); mutex_unlock(&audio->lock); spin_lock(&enc_dec_lock); kfree(audio->enc_cfg); kfree(audio->enc_cfg); kfree(audio->codec_cfg); kfree(audio->codec_cfg); kfree(audio); kfree(audio); file->private_data = NULL; spin_unlock(&enc_dec_lock); return 0; return 0; } } dsp/codecs/audio_utils_aio.c +3 −1 Original line number Original line Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only /* Copyright (C) 2008 Google, Inc. /* Copyright (C) 2008 Google, Inc. * Copyright (C) 2008 HTC Corporation * Copyright (C) 2008 HTC Corporation * Copyright (c) 2009-2019, The Linux Foundation. All rights reserved. * Copyright (c) 2009-2020, The Linux Foundation. All rights reserved. * * * This software is licensed under the terms of the GNU General Public * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and * License version 2, as published by the Free Software Foundation, and Loading Loading @@ -631,9 +631,11 @@ int audio_aio_release(struct inode *inode, struct file *file) #ifdef CONFIG_DEBUG_FS #ifdef CONFIG_DEBUG_FS debugfs_remove(audio->dentry); debugfs_remove(audio->dentry); #endif #endif spin_lock(&enc_dec_lock); kfree(audio->codec_cfg); kfree(audio->codec_cfg); kfree(audio); kfree(audio); file->private_data = NULL; file->private_data = NULL; spin_unlock(&enc_dec_lock); mutex_unlock(&lock); mutex_unlock(&lock); return 0; return 0; } } Loading dsp/codecs/q6audio_common.h +2 −2 Original line number Original line Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */ /* Copyright (c) 2012-2014, 2017 The Linux Foundation. All rights reserved. /* Copyright (c) 2012-2014, 2017, 2020 The Linux Foundation. All rights reserved. */ */ Loading @@ -9,7 +9,7 @@ #include <dsp/apr_audio-v2.h> #include <dsp/apr_audio-v2.h> #include <dsp/q6asm-v2.h> #include <dsp/q6asm-v2.h> extern spinlock_t enc_dec_lock; void q6_audio_cb(uint32_t opcode, uint32_t token, void q6_audio_cb(uint32_t opcode, uint32_t token, uint32_t *payload, void *priv); uint32_t *payload, void *priv); Loading dsp/codecs/q6audio_v2.c +8 −1 Original line number Original line Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only /* /* * Copyright (c) 2012-2013, 2015-2017, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2013, 2015-2017, 2020 The Linux Foundation. All rights reserved. */ */ #include <linux/module.h> #include <linux/module.h> Loading @@ -21,6 +21,11 @@ void q6asm_in_cb(uint32_t opcode, uint32_t token, struct q6audio_in *audio = (struct q6audio_in *)priv; struct q6audio_in *audio = (struct q6audio_in *)priv; unsigned long flags; unsigned long flags; spin_lock(&enc_dec_lock); if (audio == NULL) { pr_err("%s: failed to get q6audio value\n", __func__); goto error; } pr_debug("%s:session id %d: opcode[0x%x]\n", __func__, pr_debug("%s:session id %d: opcode[0x%x]\n", __func__, audio->ac->session, opcode); audio->ac->session, opcode); Loading Loading @@ -58,6 +63,8 @@ void q6asm_in_cb(uint32_t opcode, uint32_t token, break; break; } } spin_unlock_irqrestore(&audio->dsp_lock, flags); spin_unlock_irqrestore(&audio->dsp_lock, flags); error: spin_unlock(&enc_dec_lock); } } void audio_in_get_dsp_frames(void *priv, void audio_in_get_dsp_frames(void *priv, Loading Loading
dsp/codecs/audio_native.c +4 −1 Original line number Original line Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only /* /* * Copyright (c) 2017, The Linux Foundation. All rights reserved. * Copyright (c) 2017, 2020, The Linux Foundation. All rights reserved. */ */ #include <linux/kernel.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/module.h> #include "audio_utils.h" #include "audio_utils.h" spinlock_t enc_dec_lock; static int __init audio_native_init(void) static int __init audio_native_init(void) { { aac_in_init(); aac_in_init(); Loading @@ -31,6 +33,7 @@ static int __init audio_native_init(void) g711alaw_in_init(); g711alaw_in_init(); g711mlaw_in_init(); g711mlaw_in_init(); qcelp_in_init(); qcelp_in_init(); spin_lock_init(&enc_dec_lock); return 0; return 0; } } Loading
dsp/codecs/audio_utils.c +4 −1 Original line number Original line Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only /* Copyright (c) 2010-2019, The Linux Foundation. All rights reserved. /* Copyright (c) 2010-2020, The Linux Foundation. All rights reserved. */ */ #include <linux/module.h> #include <linux/module.h> Loading Loading @@ -943,8 +943,11 @@ int audio_in_release(struct inode *inode, struct file *file) audio_in_disable(audio); audio_in_disable(audio); q6asm_audio_client_free(audio->ac); q6asm_audio_client_free(audio->ac); mutex_unlock(&audio->lock); mutex_unlock(&audio->lock); spin_lock(&enc_dec_lock); kfree(audio->enc_cfg); kfree(audio->enc_cfg); kfree(audio->codec_cfg); kfree(audio->codec_cfg); kfree(audio); kfree(audio); file->private_data = NULL; spin_unlock(&enc_dec_lock); return 0; return 0; } }
dsp/codecs/audio_utils_aio.c +3 −1 Original line number Original line Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only /* Copyright (C) 2008 Google, Inc. /* Copyright (C) 2008 Google, Inc. * Copyright (C) 2008 HTC Corporation * Copyright (C) 2008 HTC Corporation * Copyright (c) 2009-2019, The Linux Foundation. All rights reserved. * Copyright (c) 2009-2020, The Linux Foundation. All rights reserved. * * * This software is licensed under the terms of the GNU General Public * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and * License version 2, as published by the Free Software Foundation, and Loading Loading @@ -631,9 +631,11 @@ int audio_aio_release(struct inode *inode, struct file *file) #ifdef CONFIG_DEBUG_FS #ifdef CONFIG_DEBUG_FS debugfs_remove(audio->dentry); debugfs_remove(audio->dentry); #endif #endif spin_lock(&enc_dec_lock); kfree(audio->codec_cfg); kfree(audio->codec_cfg); kfree(audio); kfree(audio); file->private_data = NULL; file->private_data = NULL; spin_unlock(&enc_dec_lock); mutex_unlock(&lock); mutex_unlock(&lock); return 0; return 0; } } Loading
dsp/codecs/q6audio_common.h +2 −2 Original line number Original line Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */ /* Copyright (c) 2012-2014, 2017 The Linux Foundation. All rights reserved. /* Copyright (c) 2012-2014, 2017, 2020 The Linux Foundation. All rights reserved. */ */ Loading @@ -9,7 +9,7 @@ #include <dsp/apr_audio-v2.h> #include <dsp/apr_audio-v2.h> #include <dsp/q6asm-v2.h> #include <dsp/q6asm-v2.h> extern spinlock_t enc_dec_lock; void q6_audio_cb(uint32_t opcode, uint32_t token, void q6_audio_cb(uint32_t opcode, uint32_t token, uint32_t *payload, void *priv); uint32_t *payload, void *priv); Loading
dsp/codecs/q6audio_v2.c +8 −1 Original line number Original line Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only /* /* * Copyright (c) 2012-2013, 2015-2017, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2013, 2015-2017, 2020 The Linux Foundation. All rights reserved. */ */ #include <linux/module.h> #include <linux/module.h> Loading @@ -21,6 +21,11 @@ void q6asm_in_cb(uint32_t opcode, uint32_t token, struct q6audio_in *audio = (struct q6audio_in *)priv; struct q6audio_in *audio = (struct q6audio_in *)priv; unsigned long flags; unsigned long flags; spin_lock(&enc_dec_lock); if (audio == NULL) { pr_err("%s: failed to get q6audio value\n", __func__); goto error; } pr_debug("%s:session id %d: opcode[0x%x]\n", __func__, pr_debug("%s:session id %d: opcode[0x%x]\n", __func__, audio->ac->session, opcode); audio->ac->session, opcode); Loading Loading @@ -58,6 +63,8 @@ void q6asm_in_cb(uint32_t opcode, uint32_t token, break; break; } } spin_unlock_irqrestore(&audio->dsp_lock, flags); spin_unlock_irqrestore(&audio->dsp_lock, flags); error: spin_unlock(&enc_dec_lock); } } void audio_in_get_dsp_frames(void *priv, void audio_in_get_dsp_frames(void *priv, Loading