Loading drivers/misc/qcom/qdsp6v2/audio_utils_aio.c +20 −0 Original line number Diff line number Diff line Loading @@ -570,6 +570,8 @@ int audio_aio_release(struct inode *inode, struct file *file) struct q6audio_aio *audio = file->private_data; pr_debug("%s[%pK]\n", __func__, audio); mutex_lock(&audio->lock); mutex_lock(&audio->read_lock); mutex_lock(&audio->write_lock); audio->wflush = 1; if (audio->wakelock_voted && (audio->audio_ws_mgr != NULL) && Loading @@ -595,6 +597,8 @@ int audio_aio_release(struct inode *inode, struct file *file) wake_up(&audio->event_wait); audio_aio_reset_event_queue(audio); q6asm_audio_client_free(audio->ac); mutex_unlock(&audio->write_lock); mutex_unlock(&audio->read_lock); mutex_unlock(&audio->lock); mutex_destroy(&audio->lock); mutex_destroy(&audio->read_lock); Loading Loading @@ -1743,7 +1747,11 @@ static long audio_aio_ioctl(struct file *file, unsigned int cmd, __func__); rc = -EFAULT; } else { mutex_lock(&audio->read_lock); mutex_lock(&audio->write_lock); rc = audio_aio_ion_add(audio, &info); mutex_unlock(&audio->write_lock); mutex_unlock(&audio->read_lock); } mutex_unlock(&audio->lock); break; Loading @@ -1758,7 +1766,11 @@ static long audio_aio_ioctl(struct file *file, unsigned int cmd, __func__); rc = -EFAULT; } else { mutex_lock(&audio->read_lock); mutex_lock(&audio->write_lock); rc = audio_aio_ion_remove(audio, &info); mutex_unlock(&audio->write_lock); mutex_unlock(&audio->read_lock); } mutex_unlock(&audio->lock); break; Loading Loading @@ -2062,7 +2074,11 @@ static long audio_aio_compat_ioctl(struct file *file, unsigned int cmd, } else { info.fd = info_32.fd; info.vaddr = compat_ptr(info_32.vaddr); mutex_lock(&audio->read_lock); mutex_lock(&audio->write_lock); rc = audio_aio_ion_add(audio, &info); mutex_unlock(&audio->write_lock); mutex_unlock(&audio->read_lock); } mutex_unlock(&audio->lock); break; Loading @@ -2079,7 +2095,11 @@ static long audio_aio_compat_ioctl(struct file *file, unsigned int cmd, } else { info.fd = info_32.fd; info.vaddr = compat_ptr(info_32.vaddr); mutex_lock(&audio->read_lock); mutex_lock(&audio->write_lock); rc = audio_aio_ion_remove(audio, &info); mutex_unlock(&audio->write_lock); mutex_unlock(&audio->read_lock); } mutex_unlock(&audio->lock); break; Loading Loading
drivers/misc/qcom/qdsp6v2/audio_utils_aio.c +20 −0 Original line number Diff line number Diff line Loading @@ -570,6 +570,8 @@ int audio_aio_release(struct inode *inode, struct file *file) struct q6audio_aio *audio = file->private_data; pr_debug("%s[%pK]\n", __func__, audio); mutex_lock(&audio->lock); mutex_lock(&audio->read_lock); mutex_lock(&audio->write_lock); audio->wflush = 1; if (audio->wakelock_voted && (audio->audio_ws_mgr != NULL) && Loading @@ -595,6 +597,8 @@ int audio_aio_release(struct inode *inode, struct file *file) wake_up(&audio->event_wait); audio_aio_reset_event_queue(audio); q6asm_audio_client_free(audio->ac); mutex_unlock(&audio->write_lock); mutex_unlock(&audio->read_lock); mutex_unlock(&audio->lock); mutex_destroy(&audio->lock); mutex_destroy(&audio->read_lock); Loading Loading @@ -1743,7 +1747,11 @@ static long audio_aio_ioctl(struct file *file, unsigned int cmd, __func__); rc = -EFAULT; } else { mutex_lock(&audio->read_lock); mutex_lock(&audio->write_lock); rc = audio_aio_ion_add(audio, &info); mutex_unlock(&audio->write_lock); mutex_unlock(&audio->read_lock); } mutex_unlock(&audio->lock); break; Loading @@ -1758,7 +1766,11 @@ static long audio_aio_ioctl(struct file *file, unsigned int cmd, __func__); rc = -EFAULT; } else { mutex_lock(&audio->read_lock); mutex_lock(&audio->write_lock); rc = audio_aio_ion_remove(audio, &info); mutex_unlock(&audio->write_lock); mutex_unlock(&audio->read_lock); } mutex_unlock(&audio->lock); break; Loading Loading @@ -2062,7 +2074,11 @@ static long audio_aio_compat_ioctl(struct file *file, unsigned int cmd, } else { info.fd = info_32.fd; info.vaddr = compat_ptr(info_32.vaddr); mutex_lock(&audio->read_lock); mutex_lock(&audio->write_lock); rc = audio_aio_ion_add(audio, &info); mutex_unlock(&audio->write_lock); mutex_unlock(&audio->read_lock); } mutex_unlock(&audio->lock); break; Loading @@ -2079,7 +2095,11 @@ static long audio_aio_compat_ioctl(struct file *file, unsigned int cmd, } else { info.fd = info_32.fd; info.vaddr = compat_ptr(info_32.vaddr); mutex_lock(&audio->read_lock); mutex_lock(&audio->write_lock); rc = audio_aio_ion_remove(audio, &info); mutex_unlock(&audio->write_lock); mutex_unlock(&audio->read_lock); } mutex_unlock(&audio->lock); break; Loading