Message ID | 20250510075357.11761-13-yunfei.dong@mediatek.com |
---|---|
State | New |
Headers | show |
Series | media: mediatek: vcodec: support video decoder in mt8196 | expand |
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec_ipi_msg.h b/drivers/media/platform/mediatek/vcodec/decoder/vdec_ipi_msg.h index 47070be2a991..097561a1efdc 100644 --- a/drivers/media/platform/mediatek/vcodec/decoder/vdec_ipi_msg.h +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec_ipi_msg.h @@ -67,11 +67,13 @@ struct vdec_vpu_ipi_ack { * @msg_id : AP_IPIMSG_DEC_INIT * @codec_type : codec fourcc * @ap_inst_addr : AP video decoder instance address + * @shared_iova : reserved share memory address */ struct vdec_ap_ipi_init { uint32_t msg_id; u32 codec_type; uint64_t ap_inst_addr; + u64 shared_iova; }; /** diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.c index ac10e0dfefb2..428ed9e5f2c3 100644 --- a/drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.c +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.c @@ -232,6 +232,8 @@ int vpu_dec_init(struct vdec_vpu_inst *vpu) msg.msg_id = AP_IPIMSG_DEC_INIT; msg.ap_inst_addr = (unsigned long)vpu; msg.codec_type = vpu->codec_type; + if (mtk_vcodec_fw_get_type(vpu->ctx->dev->fw_handler) == VCP) + msg.shared_iova = vpu->ctx->dev->fw_handler->vcp->iova_addr; mtk_vdec_debug(vpu->ctx, "vdec_inst=%p", vpu);
Send share memory address to vcp for it is reserved in kernel side. Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com> --- drivers/media/platform/mediatek/vcodec/decoder/vdec_ipi_msg.h | 2 ++ drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.c | 2 ++ 2 files changed, 4 insertions(+)