From 4b69e28065a6aef06a33600d960a90656369c898 Mon Sep 17 00:00:00 2001 From: Ikshwaku Chauhan Date: Thu, 28 Jan 2021 23:56:12 +0530 Subject: [PATCH] minigbm:amdgpu: allocate buffer from TMZ For protected content playback need to allocate the buffer from Trusted Memory Zone. BUG=b:177681002 TEST=none Signed-off-by: Ikshwaku Chauhan Change-Id: Iae154dc8f6668369bfb72abd9baa285a7f120217 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2658261 Reviewed-by: Shirish S Reviewed-by: Gurchetan Singh Commit-Queue: Drew Davenport --- amdgpu.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/amdgpu.c b/amdgpu.c index 359a8c2..b2da076 100644 --- a/amdgpu.c +++ b/amdgpu.c @@ -354,10 +354,12 @@ static int amdgpu_init(struct driver *drv) /* NV12 format for camera, display, decoding and encoding. */ drv_modify_combination(drv, DRM_FORMAT_NV12, &metadata, BO_USE_CAMERA_READ | BO_USE_CAMERA_WRITE | BO_USE_SCANOUT | - BO_USE_HW_VIDEO_DECODER | BO_USE_HW_VIDEO_ENCODER); + BO_USE_HW_VIDEO_DECODER | BO_USE_HW_VIDEO_ENCODER | + BO_USE_PROTECTED); drv_modify_combination(drv, DRM_FORMAT_P010, &metadata, - BO_USE_SCANOUT | BO_USE_HW_VIDEO_DECODER | BO_USE_HW_VIDEO_ENCODER); + BO_USE_SCANOUT | BO_USE_HW_VIDEO_DECODER | BO_USE_HW_VIDEO_ENCODER | + BO_USE_PROTECTED); /* Android CTS tests require this. */ drv_add_combination(drv, DRM_FORMAT_BGR888, &metadata, BO_USE_SW_MASK); @@ -471,6 +473,10 @@ static int amdgpu_create_bo_linear(struct bo *bo, uint32_t width, uint32_t heigh if ((use_flags & BO_USE_SCANOUT) || !(use_flags & BO_USE_SW_READ_OFTEN)) gem_create.in.domain_flags |= AMDGPU_GEM_CREATE_CPU_GTT_USWC; + /* For protected data Buffer needs to be allocated from TMZ */ + if (use_flags & BO_USE_PROTECTED) + gem_create.in.domain_flags |= AMDGPU_GEM_CREATE_ENCRYPTED; + /* Allocate the buffer with the preferred heap. */ ret = drmCommandWriteRead(drv_get_fd(bo->drv), DRM_AMDGPU_GEM_CREATE, &gem_create, sizeof(gem_create));