Merge "asoc: Use dma_buf_get along with dma_buf_fd"

这个提交包含在:
qctecmdr
2019-07-10 04:40:49 -07:00
提交者 Gerrit - the friendly Code Review server
当前提交 1c7c420c8e

查看文件

@@ -445,6 +445,8 @@ static int msm_pcm_mmap_fd(struct snd_pcm_substream *substream,
struct audio_port_data *apd;
struct audio_buffer *ab;
int dir = -1;
struct dma_buf *buf = NULL;
int rc = 0;
if (!substream->runtime) {
pr_err("%s substream runtime not found\n", __func__);
@@ -471,12 +473,25 @@ static int msm_pcm_mmap_fd(struct snd_pcm_substream *substream,
* used to call dma_buf_fd internally.
*/
mmap_fd->fd = dma_buf_fd(ab->dma_buf, O_CLOEXEC);
if (mmap_fd->fd >= 0) {
mmap_fd->dir = dir;
mmap_fd->actual_size = ab->actual_size;
mmap_fd->size = ab->size;
if (mmap_fd->fd < 0) {
pr_err("%s: dma_buf_fd failed, fd:%d\n",
__func__, mmap_fd->fd);
rc = -EFAULT;
goto buf_fd_fail;
}
return mmap_fd->fd < 0 ? -EFAULT : 0;
mmap_fd->dir = dir;
mmap_fd->actual_size = ab->actual_size;
mmap_fd->size = ab->size;
buf = dma_buf_get(mmap_fd->fd);
if (IS_ERR_OR_NULL(buf)) {
pr_err("%s: dma_buf_get failed, fd:%d\n",
__func__, mmap_fd->fd);
rc = -EINVAL;
}
buf_fd_fail:
return rc;
}
static int msm_pcm_ioctl(struct snd_pcm_substream *substream,