aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/0332-drm-amd-display-Use-DRM-helper-for-best_encoder.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0332-drm-amd-display-Use-DRM-helper-for-best_encoder.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/0332-drm-amd-display-Use-DRM-helper-for-best_encoder.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0332-drm-amd-display-Use-DRM-helper-for-best_encoder.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0332-drm-amd-display-Use-DRM-helper-for-best_encoder.patch
new file mode 100644
index 00000000..3f3f5de5
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0332-drm-amd-display-Use-DRM-helper-for-best_encoder.patch
@@ -0,0 +1,71 @@
+From c237bd4404885019b902d0ce0a41a979d968537f Mon Sep 17 00:00:00 2001
+From: Leo Li <sunpeng.li@amd.com>
+Date: Thu, 23 Aug 2018 15:28:08 -0400
+Subject: [PATCH 0332/2940] drm/amd/display: Use DRM helper for best_encoder
+
+[Why]
+Our implementation is functionally identical to DRM's
+
+Note that instead of checking if the provided id is 0, the helper
+follows through with the mode object search. However, It will still
+return NULL, since 0 is not a valid object id, and missed searches
+will return NULL.
+
+[How]
+Remove our implementation, and replace it with
+drm_atomic_helper_best_encoder.
+
+Change-Id: I96a0adce860385dc3efe9b2b3b8b89c06eeff273
+Signed-off-by: Leo Li <sunpeng.li@amd.com>
+Reviewed-by: David Francis <David.Francis@amd.com>
+Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+Signed-off-by: Kalyan Alle <kalyan.alle@amd.com>
+---
+ .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 24 +------------------
+ 1 file changed, 1 insertion(+), 23 deletions(-)
+
+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 c87ffaa266b4..f6b91235ed44 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+@@ -3099,28 +3099,6 @@ static const struct drm_connector_funcs amdgpu_dm_connector_funcs = {
+ .atomic_get_property = amdgpu_dm_connector_atomic_get_property
+ };
+
+-static struct drm_encoder *best_encoder(struct drm_connector *connector)
+-{
+- int enc_id = connector->encoder_ids[0];
+- struct drm_mode_object *obj;
+- struct drm_encoder *encoder;
+-
+- DRM_DEBUG_DRIVER("Finding the best encoder\n");
+-
+- /* pick the encoder ids */
+- if (enc_id) {
+- obj = drm_mode_object_find(connector->dev, NULL, enc_id, DRM_MODE_OBJECT_ENCODER);
+- if (!obj) {
+- DRM_ERROR("Couldn't find a matching encoder for our connector\n");
+- return NULL;
+- }
+- encoder = obj_to_encoder(obj);
+- return encoder;
+- }
+- DRM_ERROR("No encoder id\n");
+- return NULL;
+-}
+-
+ static int get_modes(struct drm_connector *connector)
+ {
+ return amdgpu_dm_connector_get_modes(connector);
+@@ -3241,7 +3219,7 @@ amdgpu_dm_connector_helper_funcs = {
+ */
+ .get_modes = get_modes,
+ .mode_valid = amdgpu_dm_connector_mode_valid,
+- .best_encoder = best_encoder
++ .best_encoder = drm_atomic_helper_best_encoder
+ };
+
+ static void dm_crtc_helper_disable(struct drm_crtc *crtc)
+--
+2.17.1
+