From 110ff5439a3e1d19acf02ec5b819e6802c4b8b83 Mon Sep 17 00:00:00 2001 From: Shirish S Date: Tue, 25 Apr 2017 12:26:57 +0530 Subject: [PATCH] drm/amd/display: update the YUV plane offsets This patch updates the planes default offsets to the appropriate ones, and aligns the pitch to 64 bits. BUG=SWDEV-119421 TEST=Boots to UI on jadeite TEST= plane_test --format AR24 --size 500x50 -p --format YV12 --size 500x500 plane_test --format AR24 --size 500x50 -p --format YV12 --size 1280x720 plane_test --format AR24 --size 500x50 -p --format YV12 --size 1366x768 Signed-off-by: Shirish S Signed-off-by: Alex Deucher --- .../drm/amd/display/amdgpu_dm/amdgpu_dm_types.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c index 225b8e6b673f..851fbd32fc8d 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c @@ -511,21 +511,21 @@ static void fill_plane_attributes_from_fb( surface->address.type = PLN_ADDR_TYPE_VIDEO_PROGRESSIVE; surface->address.video_progressive.luma_addr.low_part = lower_32_bits(fb_location); - surface->address.video_progressive.chroma_addr.high_part - = upper_32_bits(fb_location); + surface->address.video_progressive.chroma_addr.low_part + = lower_32_bits(fb_location) + + (fb->width * fb->height); surface->plane_size.video.luma_size.x = 0; surface->plane_size.video.luma_size.y = 0; surface->plane_size.video.luma_size.width = fb->width; surface->plane_size.video.luma_size.height = fb->height; /* TODO: unhardcode */ - surface->plane_size.video.luma_pitch = fb->pitches[0] / 4; + surface->plane_size.video.luma_pitch = ALIGN(fb->width, 64); surface->plane_size.video.chroma_size.x = 0; surface->plane_size.video.chroma_size.y = 0; - surface->plane_size.video.chroma_size.width = fb->width; - surface->plane_size.video.chroma_size.height = fb->height; - surface->plane_size.video.chroma_pitch = - fb->pitches[0] / 4; + surface->plane_size.video.chroma_size.width = fb->width / 2; + surface->plane_size.video.chroma_size.height = fb->height / 2; + surface->plane_size.video.chroma_pitch = ALIGN(fb->width, 64) / 2; /* TODO: unhardcode */ surface->color_space = COLOR_SPACE_YCBCR709;