Loading drivers/media/platform/msm/cvp/msm_cvp.c +9 −8 Original line number Diff line number Diff line Loading @@ -190,8 +190,8 @@ static int msm_cvp_map_buf_dsp(struct msm_cvp_inst *inst, if (buf->index) { rc = cvp_dsp_register_buffer(hash32_ptr(session), buf->fd, buf->size, buf->offset, buf->index, (uint32_t)cbuf->smem.device_addr); cbuf->smem.dma_buf->size, buf->size, buf->offset, buf->index, (uint32_t)cbuf->smem.device_addr); if (rc) { dprintk(CVP_ERR, "%s: failed dsp registration for fd=%d rc=%d", Loading Loading @@ -254,8 +254,9 @@ static int msm_cvp_unmap_buf_dsp(struct msm_cvp_inst *inst, } if (buf->index) { rc = cvp_dsp_deregister_buffer((uint32_t)cbuf->smem.device_addr, buf->index, buf->size, hash32_ptr(session)); rc = cvp_dsp_deregister_buffer(hash32_ptr(session), buf->fd, cbuf->smem.dma_buf->size, buf->size, buf->offset, buf->index, (uint32_t)cbuf->smem.device_addr); if (rc) { dprintk(CVP_ERR, "%s: failed dsp deregistration fd=%d rc=%d", Loading Loading @@ -1796,10 +1797,10 @@ int msm_cvp_session_deinit(struct msm_cvp_inst *inst) list) { print_internal_buffer(CVP_DBG, "remove from cvpdspbufs", inst, cbuf); rc = cvp_dsp_deregister_buffer( (uint32_t)cbuf->smem.device_addr, cbuf->buf.index, cbuf->buf.size, hash32_ptr(session)); rc = cvp_dsp_deregister_buffer(hash32_ptr(session), cbuf->buf.fd, cbuf->smem.dma_buf->size, cbuf->buf.size, cbuf->buf.offset, cbuf->buf.index, (uint32_t)cbuf->smem.device_addr); if (rc) dprintk(CVP_ERR, "%s: failed dsp deregistration fd=%d rc=%d", Loading drivers/media/platform/msm/cvp/msm_cvp_dsp.c +22 −15 Original line number Diff line number Diff line Loading @@ -29,14 +29,14 @@ struct cvp_dsp_cmd_msg { int32_t ret_val; uint64_t msg_ptr; uint32_t msg_ptr_len; uint32_t iova_buff_addr; uint32_t buff_fd_iova; uint32_t buff_index; uint32_t buff_size; uint32_t session_id; int32_t ddr_type; uint32_t buff_fd; uint32_t buff_offset; uint32_t reserved0; uint32_t buff_fd_size; uint32_t reserved1; uint32_t reserved2; }; Loading Loading @@ -361,8 +361,9 @@ int cvp_dsp_shutdown(uint32_t session_flag) } int cvp_dsp_register_buffer(uint32_t session_id, uint32_t buff_fd, uint32_t buff_size, uint32_t buff_offset, uint32_t buff_index, uint32_t iova_buff_addr) uint32_t buff_fd_size, uint32_t buff_size, uint32_t buff_offset, uint32_t buff_index, uint32_t buff_fd_iova) { struct cvp_dsp_cmd_msg local_cmd_msg; int err; Loading @@ -371,14 +372,15 @@ int cvp_dsp_register_buffer(uint32_t session_id, uint32_t buff_fd, local_cmd_msg.cmd_msg_type = CVP_DSP_REGISTER_BUFFER; local_cmd_msg.session_id = session_id; local_cmd_msg.buff_fd = buff_fd; local_cmd_msg.buff_fd_size = buff_fd_size; local_cmd_msg.buff_size = buff_size; local_cmd_msg.buff_offset = buff_offset; local_cmd_msg.buff_index = buff_index; local_cmd_msg.iova_buff_addr = iova_buff_addr; local_cmd_msg.buff_fd_iova = buff_fd_iova; dprintk(CVP_DBG, "%s: cmd_msg_type=0x%x, iova_buff_addr=0x%x buff_index=0x%x\n", __func__, local_cmd_msg.cmd_msg_type, iova_buff_addr, "%s: cmd_msg_type=0x%x, buff_fd_iova=0x%x buff_index=0x%x\n", __func__, local_cmd_msg.cmd_msg_type, buff_fd_iova, local_cmd_msg.buff_index); dprintk(CVP_DBG, "%s: buff_size=0x%x session_id=0x%x\n", Loading Loading @@ -406,22 +408,27 @@ int cvp_dsp_register_buffer(uint32_t session_id, uint32_t buff_fd, return err; } int cvp_dsp_deregister_buffer(uint32_t iova_buff_addr, uint32_t buff_index, uint32_t buff_size, uint32_t session_id) int cvp_dsp_deregister_buffer(uint32_t session_id, uint32_t buff_fd, uint32_t buff_fd_size, uint32_t buff_size, uint32_t buff_offset, uint32_t buff_index, uint32_t buff_fd_iova) { struct cvp_dsp_cmd_msg local_cmd_msg; int err; struct cvp_dsp_apps *me = &gfa_cv; local_cmd_msg.cmd_msg_type = CVP_DSP_DEREGISTER_BUFFER; local_cmd_msg.iova_buff_addr = iova_buff_addr; local_cmd_msg.buff_index = buff_index; local_cmd_msg.buff_size = buff_size; local_cmd_msg.session_id = session_id; local_cmd_msg.buff_fd = buff_fd; local_cmd_msg.buff_fd_size = buff_fd_size; local_cmd_msg.buff_size = buff_size; local_cmd_msg.buff_offset = buff_offset; local_cmd_msg.buff_index = buff_index; local_cmd_msg.buff_fd_iova = buff_fd_iova; dprintk(CVP_DBG, "%s: cmd_msg_type=0x%x, iova_buff_addr=0x%x buff_index=0x%x\n", __func__, local_cmd_msg.cmd_msg_type, iova_buff_addr, "%s: cmd_msg_type=0x%x, buff_fd_iova=0x%x buff_index=0x%x\n", __func__, local_cmd_msg.cmd_msg_type, buff_fd_iova, local_cmd_msg.buff_index); dprintk(CVP_DBG, "%s: buff_size=0x%x session_id=0x%x\n", Loading drivers/media/platform/msm/cvp/msm_cvp_dsp.h +14 −8 Original line number Diff line number Diff line Loading @@ -57,26 +57,32 @@ int cvp_dsp_shutdown(uint32_t session_flag); * * @session_id: cvp session id * @buff_fd: buffer fd * @buff_fd_size: total size of fd in bytes * @buff_size: size in bytes of cvp buffer * @buff_offset: buffer offset * @buff_index: buffer index * @iova_buff_addr: IOVA buffer address */ int cvp_dsp_register_buffer(uint32_t session_id, uint32_t buff_fd, uint32_t buff_size, uint32_t buff_offset, uint32_t buff_index, uint32_t iova_buff_addr); uint32_t buff_fd_size, uint32_t buff_size, uint32_t buff_offset, uint32_t buff_index, uint32_t buff_fd_iova); /* * API to de-register iova buffer address from CDSP * * @iova_buff_addr: IOVA buffer address * @buff_index: buffer index * @buff_size: size in bytes of cvp buffer * @session_id: cvp session id * @buff_fd: buffer fd * @buff_fd_size: total size of fd in bytes * @buff_size: size in bytes of cvp buffer * @buff_offset: buffer offset * @buff_index: buffer index * @iova_buff_addr: IOVA buffer address */ int cvp_dsp_deregister_buffer(uint32_t iova_buff_addr, uint32_t buff_index, uint32_t buff_size, uint32_t session_id); int cvp_dsp_deregister_buffer(uint32_t session_id, uint32_t buff_fd, uint32_t buff_fd_size, uint32_t buff_size, uint32_t buff_offset, uint32_t buff_index, uint32_t buff_fd_iova); #endif // MSM_CVP_DSP_H drivers/media/platform/msm/cvp/msm_smem.c +1 −1 Original line number Diff line number Diff line Loading @@ -248,7 +248,7 @@ int msm_cvp_smem_map_dma_buf(struct msm_cvp_inst *inst, goto exit; } smem->device_addr = (u32)iova + smem->offset; smem->device_addr = (u32)iova; smem->refcount++; exit: Loading Loading
drivers/media/platform/msm/cvp/msm_cvp.c +9 −8 Original line number Diff line number Diff line Loading @@ -190,8 +190,8 @@ static int msm_cvp_map_buf_dsp(struct msm_cvp_inst *inst, if (buf->index) { rc = cvp_dsp_register_buffer(hash32_ptr(session), buf->fd, buf->size, buf->offset, buf->index, (uint32_t)cbuf->smem.device_addr); cbuf->smem.dma_buf->size, buf->size, buf->offset, buf->index, (uint32_t)cbuf->smem.device_addr); if (rc) { dprintk(CVP_ERR, "%s: failed dsp registration for fd=%d rc=%d", Loading Loading @@ -254,8 +254,9 @@ static int msm_cvp_unmap_buf_dsp(struct msm_cvp_inst *inst, } if (buf->index) { rc = cvp_dsp_deregister_buffer((uint32_t)cbuf->smem.device_addr, buf->index, buf->size, hash32_ptr(session)); rc = cvp_dsp_deregister_buffer(hash32_ptr(session), buf->fd, cbuf->smem.dma_buf->size, buf->size, buf->offset, buf->index, (uint32_t)cbuf->smem.device_addr); if (rc) { dprintk(CVP_ERR, "%s: failed dsp deregistration fd=%d rc=%d", Loading Loading @@ -1796,10 +1797,10 @@ int msm_cvp_session_deinit(struct msm_cvp_inst *inst) list) { print_internal_buffer(CVP_DBG, "remove from cvpdspbufs", inst, cbuf); rc = cvp_dsp_deregister_buffer( (uint32_t)cbuf->smem.device_addr, cbuf->buf.index, cbuf->buf.size, hash32_ptr(session)); rc = cvp_dsp_deregister_buffer(hash32_ptr(session), cbuf->buf.fd, cbuf->smem.dma_buf->size, cbuf->buf.size, cbuf->buf.offset, cbuf->buf.index, (uint32_t)cbuf->smem.device_addr); if (rc) dprintk(CVP_ERR, "%s: failed dsp deregistration fd=%d rc=%d", Loading
drivers/media/platform/msm/cvp/msm_cvp_dsp.c +22 −15 Original line number Diff line number Diff line Loading @@ -29,14 +29,14 @@ struct cvp_dsp_cmd_msg { int32_t ret_val; uint64_t msg_ptr; uint32_t msg_ptr_len; uint32_t iova_buff_addr; uint32_t buff_fd_iova; uint32_t buff_index; uint32_t buff_size; uint32_t session_id; int32_t ddr_type; uint32_t buff_fd; uint32_t buff_offset; uint32_t reserved0; uint32_t buff_fd_size; uint32_t reserved1; uint32_t reserved2; }; Loading Loading @@ -361,8 +361,9 @@ int cvp_dsp_shutdown(uint32_t session_flag) } int cvp_dsp_register_buffer(uint32_t session_id, uint32_t buff_fd, uint32_t buff_size, uint32_t buff_offset, uint32_t buff_index, uint32_t iova_buff_addr) uint32_t buff_fd_size, uint32_t buff_size, uint32_t buff_offset, uint32_t buff_index, uint32_t buff_fd_iova) { struct cvp_dsp_cmd_msg local_cmd_msg; int err; Loading @@ -371,14 +372,15 @@ int cvp_dsp_register_buffer(uint32_t session_id, uint32_t buff_fd, local_cmd_msg.cmd_msg_type = CVP_DSP_REGISTER_BUFFER; local_cmd_msg.session_id = session_id; local_cmd_msg.buff_fd = buff_fd; local_cmd_msg.buff_fd_size = buff_fd_size; local_cmd_msg.buff_size = buff_size; local_cmd_msg.buff_offset = buff_offset; local_cmd_msg.buff_index = buff_index; local_cmd_msg.iova_buff_addr = iova_buff_addr; local_cmd_msg.buff_fd_iova = buff_fd_iova; dprintk(CVP_DBG, "%s: cmd_msg_type=0x%x, iova_buff_addr=0x%x buff_index=0x%x\n", __func__, local_cmd_msg.cmd_msg_type, iova_buff_addr, "%s: cmd_msg_type=0x%x, buff_fd_iova=0x%x buff_index=0x%x\n", __func__, local_cmd_msg.cmd_msg_type, buff_fd_iova, local_cmd_msg.buff_index); dprintk(CVP_DBG, "%s: buff_size=0x%x session_id=0x%x\n", Loading Loading @@ -406,22 +408,27 @@ int cvp_dsp_register_buffer(uint32_t session_id, uint32_t buff_fd, return err; } int cvp_dsp_deregister_buffer(uint32_t iova_buff_addr, uint32_t buff_index, uint32_t buff_size, uint32_t session_id) int cvp_dsp_deregister_buffer(uint32_t session_id, uint32_t buff_fd, uint32_t buff_fd_size, uint32_t buff_size, uint32_t buff_offset, uint32_t buff_index, uint32_t buff_fd_iova) { struct cvp_dsp_cmd_msg local_cmd_msg; int err; struct cvp_dsp_apps *me = &gfa_cv; local_cmd_msg.cmd_msg_type = CVP_DSP_DEREGISTER_BUFFER; local_cmd_msg.iova_buff_addr = iova_buff_addr; local_cmd_msg.buff_index = buff_index; local_cmd_msg.buff_size = buff_size; local_cmd_msg.session_id = session_id; local_cmd_msg.buff_fd = buff_fd; local_cmd_msg.buff_fd_size = buff_fd_size; local_cmd_msg.buff_size = buff_size; local_cmd_msg.buff_offset = buff_offset; local_cmd_msg.buff_index = buff_index; local_cmd_msg.buff_fd_iova = buff_fd_iova; dprintk(CVP_DBG, "%s: cmd_msg_type=0x%x, iova_buff_addr=0x%x buff_index=0x%x\n", __func__, local_cmd_msg.cmd_msg_type, iova_buff_addr, "%s: cmd_msg_type=0x%x, buff_fd_iova=0x%x buff_index=0x%x\n", __func__, local_cmd_msg.cmd_msg_type, buff_fd_iova, local_cmd_msg.buff_index); dprintk(CVP_DBG, "%s: buff_size=0x%x session_id=0x%x\n", Loading
drivers/media/platform/msm/cvp/msm_cvp_dsp.h +14 −8 Original line number Diff line number Diff line Loading @@ -57,26 +57,32 @@ int cvp_dsp_shutdown(uint32_t session_flag); * * @session_id: cvp session id * @buff_fd: buffer fd * @buff_fd_size: total size of fd in bytes * @buff_size: size in bytes of cvp buffer * @buff_offset: buffer offset * @buff_index: buffer index * @iova_buff_addr: IOVA buffer address */ int cvp_dsp_register_buffer(uint32_t session_id, uint32_t buff_fd, uint32_t buff_size, uint32_t buff_offset, uint32_t buff_index, uint32_t iova_buff_addr); uint32_t buff_fd_size, uint32_t buff_size, uint32_t buff_offset, uint32_t buff_index, uint32_t buff_fd_iova); /* * API to de-register iova buffer address from CDSP * * @iova_buff_addr: IOVA buffer address * @buff_index: buffer index * @buff_size: size in bytes of cvp buffer * @session_id: cvp session id * @buff_fd: buffer fd * @buff_fd_size: total size of fd in bytes * @buff_size: size in bytes of cvp buffer * @buff_offset: buffer offset * @buff_index: buffer index * @iova_buff_addr: IOVA buffer address */ int cvp_dsp_deregister_buffer(uint32_t iova_buff_addr, uint32_t buff_index, uint32_t buff_size, uint32_t session_id); int cvp_dsp_deregister_buffer(uint32_t session_id, uint32_t buff_fd, uint32_t buff_fd_size, uint32_t buff_size, uint32_t buff_offset, uint32_t buff_index, uint32_t buff_fd_iova); #endif // MSM_CVP_DSP_H
drivers/media/platform/msm/cvp/msm_smem.c +1 −1 Original line number Diff line number Diff line Loading @@ -248,7 +248,7 @@ int msm_cvp_smem_map_dma_buf(struct msm_cvp_inst *inst, goto exit; } smem->device_addr = (u32)iova + smem->offset; smem->device_addr = (u32)iova; smem->refcount++; exit: Loading