diff options
author | Shirish S <[email protected]> | 2017-04-25 12:26:57 +0530 |
---|---|---|
committer | Alex Deucher <[email protected]> | 2017-09-26 18:06:29 -0400 |
commit | 110ff5439a3e1d19acf02ec5b819e6802c4b8b83 (patch) | |
tree | 0a3920f369bcc12ffca2bdc6e115feb8be4c02e8 | |
parent | e6fbd5df0e4e1cf644ddfd50d1df27e5e4ad2220 (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.c | 14 |
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; |