aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/0357-drm-amd-display-update-the-YUV-plane-offsets.patch
diff options
context:
space:
mode:
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.patch57
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
+