On Wed, 2024-06-12 at 14:22 +0900, Tomasz Figa wrote: > > External email : Please do not click links or open attachments until > you have verified the sender or the content. > On Thu, May 16, 2024 at 08:20:50PM +0800, Yunfei Dong wrote: > > Need to call dma heap interface to allocate/free secure memory when > playing > > secure video. > > > > Signed-off-by: Yunfei Dong <yunfei.dong@xxxxxxxxxxxx> > > --- > > .../media/platform/mediatek/vcodec/Kconfig | 1 + > > .../mediatek/vcodec/common/mtk_vcodec_util.c | 122 > +++++++++++++++++- > > .../mediatek/vcodec/common/mtk_vcodec_util.h | 3 + > > 3 files changed, 123 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/media/platform/mediatek/vcodec/Kconfig > b/drivers/media/platform/mediatek/vcodec/Kconfig > > index bc8292232530..707865703e61 100644 > > --- a/drivers/media/platform/mediatek/vcodec/Kconfig > > +++ b/drivers/media/platform/mediatek/vcodec/Kconfig > > @@ -17,6 +17,7 @@ config VIDEO_MEDIATEK_VCODEC [snip] > > -void mtk_vcodec_mem_free(void *priv, struct mtk_vcodec_mem *mem) > > +static int mtk_vcodec_mem_alloc_sec(struct mtk_vcodec_dec_ctx > *ctx, struct mtk_vcodec_mem *mem) > > +{ > > +struct device *dev = &ctx->dev->plat_dev->dev; > > +struct dma_buf *dma_buffer; > > +struct dma_heap *vdec_heap; > > +struct dma_buf_attachment *attach; > > +struct sg_table *sgt; > > +unsigned long size = mem->size; > > +int ret = 0; > > + > > +if (!size) > > +return -EINVAL; > > + > > +vdec_heap = dma_heap_find("restricted_mtk_cma"); > > +if (!vdec_heap) { > > +mtk_v4l2_vdec_err(ctx, "dma heap find failed!"); > > +return -EPERM; > > +} > > How is the heap name determined here? My recollection is that the > heap > name comes from the heap node in the DT, so it may vary depending on > the > board. > > Is the heap name documented anywhere in the DT bindings? > > Shouldn't we rather query DT for a phandle to the right heap? > Hi Tomasz, This heap name does not come from dt-binding. It is hard-coded in the driver[1]. Because the heap driver is a pure SW driver, there is no corresponding HW unit, and there is no way to add a dtsi node. [1] https://lore.kernel.org/linux-mediatek/20240515112308.10171-10-yong.wu@xxxxxxxxxxxx/ Thanks.