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 <jason-jh.lin@mediatek.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4145439
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Commit-Queue: Fei Shao <fshao@chromium.org>
Tested-by: Fei Shao <fshao@chromium.org>
Reviewed-by: Fei Shao <fshao@chromium.org>
This commit is contained in:
Nathan Lu 2023-01-09 09:24:21 +08:00 committed by Chromeos LUCI
parent 4deb5b8a05
commit b56c26b51c

View file

@ -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);