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 <ikshwaku.chauhan@amd.corp-partner.google.com>
Change-Id: Iae154dc8f6668369bfb72abd9baa285a7f120217
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2658261
Reviewed-by: Shirish S <shirish.s@amd.com>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: Drew Davenport <ddavenport@chromium.org>
This commit is contained in:
Ikshwaku Chauhan 2021-01-28 23:56:12 +05:30 committed by Commit Bot
parent 146ee021c0
commit 4b69e28065

View file

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