diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0357-drm-amd-display-update-the-YUV-plane-offsets.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/0357-drm-amd-display-update-the-YUV-plane-offsets.patch | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0357-drm-amd-display-update-the-YUV-plane-offsets.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0357-drm-amd-display-update-the-YUV-plane-offsets.patch new file mode 100644 index 00000000..dd2bb0f0 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/0357-drm-amd-display-update-the-YUV-plane-offsets.patch @@ -0,0 +1,57 @@ +From 38ea05ab4b2c71b9361d4da4db932b6ce3276bda Mon Sep 17 00:00:00 2001 +From: Shirish S <shirish.s@amd.com> +Date: Tue, 25 Apr 2017 12:26:57 +0530 +Subject: [PATCH 0357/4131] 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 <shirish.s@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/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 e99c9da..c73918d 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 +@@ -510,21 +510,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; +-- +2.7.4 + |