aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShirish S <[email protected]>2017-04-25 12:26:57 +0530
committerAlex Deucher <[email protected]>2017-09-26 18:06:29 -0400
commit110ff5439a3e1d19acf02ec5b819e6802c4b8b83 (patch)
tree0a3920f369bcc12ffca2bdc6e115feb8be4c02e8
parente6fbd5df0e4e1cf644ddfd50d1df27e5e4ad2220 (diff)
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 <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c14
1 files 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;