From b56c26b51c03b877e3ef1d927bb37ed0e14cdcd5 Mon Sep 17 00:00:00 2001 From: Nathan Lu Date: Mon, 9 Jan 2023 09:24:21 +0800 Subject: [PATCH] mediatek: Add BO_USE_PROTECTED use_flag to support secure buffer allocation Add BO_USE_PROTECTED use_flag to allocated a secure buffer from GEM. BUG=b:248609774 TEST="emerge-cherry libdrm minigbm" pass Cq-Depend: chromium:4482938 Change-Id: I32acaf265a128314f59e8f46fdbbed4254b8600e Signed-off-by: Jason-JH.Lin Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4145439 Reviewed-by: Dominik Behr Commit-Queue: Fei Shao Tested-by: Fei Shao Reviewed-by: Fei Shao --- mediatek.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mediatek.c b/mediatek.c index 3f05881..d34afb2 100644 --- a/mediatek.c +++ b/mediatek.c @@ -104,7 +104,7 @@ static int mediatek_init(struct driver *drv) struct format_metadata metadata; drv_add_combinations(drv, render_target_formats, ARRAY_SIZE(render_target_formats), - &LINEAR_METADATA, BO_USE_RENDER_MASK | BO_USE_SCANOUT); + &LINEAR_METADATA, BO_USE_RENDER_MASK | BO_USE_SCANOUT | BO_USE_PROTECTED); drv_add_combinations(drv, texture_source_formats, ARRAY_SIZE(texture_source_formats), &LINEAR_METADATA, BO_USE_TEXTURE_MASK); @@ -266,6 +266,10 @@ static int mediatek_bo_create_with_modifiers(struct bo *bo, uint32_t width, uint gem_create.size = bo->meta.total_size; + /* For protected data buffer needs to be allocated from GEM */ + if (bo->meta.use_flags & BO_USE_PROTECTED) + gem_create.flags |= DRM_MTK_GEM_CREATE_ENCRYPTED; + ret = drmIoctl(bo->drv->fd, DRM_IOCTL_MTK_GEM_CREATE, &gem_create); if (ret) { drv_loge("DRM_IOCTL_MTK_GEM_CREATE failed (size=%" PRIu64 ")\n", gem_create.size);