]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Aug 2024 00:12:27 +0000 (08:12 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Aug 2024 00:12:27 +0000 (08:12 +0800)
added patches:
drm-amd-display-don-t-register-panel_power_savings-on-oled-panels.patch

queue-6.10/drm-amd-display-don-t-register-panel_power_savings-on-oled-panels.patch [new file with mode: 0644]
queue-6.10/series

diff --git a/queue-6.10/drm-amd-display-don-t-register-panel_power_savings-on-oled-panels.patch b/queue-6.10/drm-amd-display-don-t-register-panel_power_savings-on-oled-panels.patch
new file mode 100644 (file)
index 0000000..9705c52
--- /dev/null
@@ -0,0 +1,73 @@
+From 76cb763e6ea62e838ccc8f7a1ea4246d690fccc9 Mon Sep 17 00:00:00 2001
+From: Mario Limonciello <mario.limonciello@amd.com>
+Date: Thu, 9 May 2024 12:05:24 -0500
+Subject: drm/amd/display: Don't register panel_power_savings on OLED panels
+
+From: Mario Limonciello <mario.limonciello@amd.com>
+
+commit 76cb763e6ea62e838ccc8f7a1ea4246d690fccc9 upstream.
+
+OLED panels don't support the ABM, they shouldn't offer the
+panel_power_savings attribute to the user. Check whether aux BL
+control support was enabled to decide whether to offer it.
+
+Reported-by: Gergo Koteles <soyer@irl.hu>
+Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3359
+Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
+Reviewed-by: Harry Wentland <harry.wentland@amd.com>
+Tested-by: Gergo Koteles <soyer@irl.hu>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |   29 ++++++++++++++++++----
+ 1 file changed, 25 insertions(+), 4 deletions(-)
+
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+@@ -6562,12 +6562,34 @@ static const struct attribute_group amdg
+       .attrs = amdgpu_attrs
+ };
++static bool
++amdgpu_dm_should_create_sysfs(struct amdgpu_dm_connector *amdgpu_dm_connector)
++{
++      if (amdgpu_dm_abm_level >= 0)
++              return false;
++
++      if (amdgpu_dm_connector->base.connector_type != DRM_MODE_CONNECTOR_eDP)
++              return false;
++
++      /* check for OLED panels */
++      if (amdgpu_dm_connector->bl_idx >= 0) {
++              struct drm_device *drm = amdgpu_dm_connector->base.dev;
++              struct amdgpu_display_manager *dm = &drm_to_adev(drm)->dm;
++              struct amdgpu_dm_backlight_caps *caps;
++
++              caps = &dm->backlight_caps[amdgpu_dm_connector->bl_idx];
++              if (caps->aux_support)
++                      return false;
++      }
++
++      return true;
++}
++
+ static void amdgpu_dm_connector_unregister(struct drm_connector *connector)
+ {
+       struct amdgpu_dm_connector *amdgpu_dm_connector = to_amdgpu_dm_connector(connector);
+-      if (connector->connector_type == DRM_MODE_CONNECTOR_eDP &&
+-          amdgpu_dm_abm_level < 0)
++      if (amdgpu_dm_should_create_sysfs(amdgpu_dm_connector))
+               sysfs_remove_group(&connector->kdev->kobj, &amdgpu_group);
+       drm_dp_aux_unregister(&amdgpu_dm_connector->dm_dp_aux.aux);
+@@ -6674,8 +6696,7 @@ amdgpu_dm_connector_late_register(struct
+               to_amdgpu_dm_connector(connector);
+       int r;
+-      if (connector->connector_type == DRM_MODE_CONNECTOR_eDP &&
+-          amdgpu_dm_abm_level < 0) {
++      if (amdgpu_dm_should_create_sysfs(amdgpu_dm_connector)) {
+               r = sysfs_create_group(&connector->kdev->kobj,
+                                      &amdgpu_group);
+               if (r)
index eb5f0bb4561559425fb9ff9341a7d021038c0eb4..0ac88dd6a1e05a786bc8c2ddedcef65308d8534c 100644 (file)
@@ -134,3 +134,4 @@ powerpc-topology-check-if-a-core-is-online.patch
 printk-panic-allow-cpu-backtraces-to-be-written-into.patch
 arm64-fix-kasan-random-tag-seed-initialization.patch
 block-fix-lockdep-warning-in-blk_mq_mark_tag_wait.patch
+drm-amd-display-don-t-register-panel_power_savings-on-oled-panels.patch