aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0699-drm-amd-display-Implement-plane-atomic_check.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0699-drm-amd-display-Implement-plane-atomic_check.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0699-drm-amd-display-Implement-plane-atomic_check.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0699-drm-amd-display-Implement-plane-atomic_check.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0699-drm-amd-display-Implement-plane-atomic_check.patch
new file mode 100644
index 00000000..e0198420
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0699-drm-amd-display-Implement-plane-atomic_check.patch
@@ -0,0 +1,49 @@
+From 66ea729d92dcdb5701649ad8dafbe449acb63b47 Mon Sep 17 00:00:00 2001
+From: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com>
+Date: Wed, 26 Jul 2017 15:52:28 -0400
+Subject: [PATCH 0699/4131] drm/amd/display: Implement plane atomic_check.
+
+Use per surface validation hook.
+
+Signed-off-by: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com>
+Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
+Acked-by: Harry Wentland <Harry.Wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+index ad8dc2c..8f3038f 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+@@ -3291,9 +3291,26 @@ int dm_create_validation_set_for_connector(struct drm_connector *connector,
+ return MODE_OK;
+ }
+
++int dm_plane_atomic_check(struct drm_plane *plane,
++ struct drm_plane_state *state)
++{
++ struct amdgpu_device *adev = plane->dev->dev_private;
++ struct dc *dc = adev->dm.dc;
++ struct dm_plane_state *dm_plane_state = to_dm_plane_state(state);
++
++ if (!dm_plane_state->surface)
++ return true;
++
++ if (dc_validate_surface(dc, dm_plane_state->surface))
++ return 0;
++
++ return -EINVAL;
++}
++
+ static const struct drm_plane_helper_funcs dm_plane_helper_funcs = {
+ .prepare_fb = dm_plane_helper_prepare_fb,
+ .cleanup_fb = dm_plane_helper_cleanup_fb,
++ .atomic_check = dm_plane_atomic_check,
+ };
+
+ /*
+--
+2.7.4
+