aboutsummaryrefslogtreecommitdiff
path: root/SOURCES/steamdeck-oled-refresh-rate.patch
diff options
context:
space:
mode:
Diffstat (limited to 'SOURCES/steamdeck-oled-refresh-rate.patch')
-rw-r--r--SOURCES/steamdeck-oled-refresh-rate.patch174
1 files changed, 0 insertions, 174 deletions
diff --git a/SOURCES/steamdeck-oled-refresh-rate.patch b/SOURCES/steamdeck-oled-refresh-rate.patch
deleted file mode 100644
index 9f82ab9..0000000
--- a/SOURCES/steamdeck-oled-refresh-rate.patch
+++ /dev/null
@@ -1,174 +0,0 @@
-From 74b669e1b1296dfb2987a29840ddae29c2b31353 Mon Sep 17 00:00:00 2001
-From: Matthew Schwartz <njtransit215@gmail.com>
-Date: Wed, 17 Apr 2024 21:31:14 -0700
-Subject: [PATCH 0/2] fix Galileo/OLED Deck refresh rate modesetting
-
-For some bizarre reason, these amdgpu_freesync_vid_mode parameters are the key to letting the Galileo/OLED Deck's 90hz display modeset properly within gamescope and gamescope-session. This adds the parameters back until a fix comes from upstream.
-
-Alex Deucher (2):
- Reapply "Revert drm/amd/display: Enable Freesync Video Mode by
- default"
- Revert "drm/amd: Remove freesync video mode amdgpu parameter"
-
- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 +
- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 27 +++++++++++++++++++
- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 12 +++++----
- 3 files changed, 35 insertions(+), 5 deletions(-)
-
---
-2.44.0
-
-From dbdedb7714422407d78a715031304e1be54680e1 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher@amd.com>
-Date: Tue, 27 Feb 2024 13:08:12 -0500
-Subject: [PATCH 1/2] Reapply "Revert drm/amd/display: Enable Freesync Video
- Mode by default"
-
-This reverts commit 11b92df8a2f7f4605ccc764ce6ae4a72760674df.
-
-This conflicts with how compositors want to handle VRR. Now
-that compositors actually handle VRR, we probably don't need
-freesync video.
-
-Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/2985
-Acked-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 12 +++++++-----
- 1 file changed, 7 insertions(+), 5 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 46dd06e8fc7e..1010a89a17e6 100644
---- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-@@ -6233,7 +6233,8 @@ create_stream_for_sink(struct drm_connector *connector,
- */
- DRM_DEBUG_DRIVER("No preferred mode found\n");
- } else if (aconnector) {
-- recalculate_timing = is_freesync_video_mode(&mode, aconnector);
-+ recalculate_timing = amdgpu_freesync_vid_mode &&
-+ is_freesync_video_mode(&mode, aconnector);
- if (recalculate_timing) {
- freesync_mode = get_highest_refresh_rate_mode(aconnector, false);
- drm_mode_copy(&saved_mode, &mode);
-@@ -7544,7 +7545,7 @@ static void amdgpu_dm_connector_add_freesync_modes(struct drm_connector *connect
- struct amdgpu_dm_connector *amdgpu_dm_connector =
- to_amdgpu_dm_connector(connector);
-
-- if (!edid)
-+ if (!(amdgpu_freesync_vid_mode && edid))
- return;
-
- if (amdgpu_dm_connector->max_vfreq - amdgpu_dm_connector->min_vfreq > 10)
-@@ -9838,7 +9839,8 @@ static int dm_update_crtc_state(struct amdgpu_display_manager *dm,
- * TODO: Refactor this function to allow this check to work
- * in all conditions.
- */
-- if (dm_new_crtc_state->stream &&
-+ if (amdgpu_freesync_vid_mode &&
-+ dm_new_crtc_state->stream &&
- is_timing_unchanged_for_freesync(new_crtc_state, old_crtc_state))
- goto skip_modeset;
-
-@@ -9878,7 +9880,7 @@ static int dm_update_crtc_state(struct amdgpu_display_manager *dm,
- }
-
- /* Now check if we should set freesync video mode */
-- if (dm_new_crtc_state->stream &&
-+ if (amdgpu_freesync_vid_mode && dm_new_crtc_state->stream &&
- dc_is_stream_unchanged(new_stream, dm_old_crtc_state->stream) &&
- dc_is_stream_scaling_unchanged(new_stream, dm_old_crtc_state->stream) &&
- is_timing_unchanged_for_freesync(new_crtc_state,
-@@ -9891,7 +9893,7 @@ static int dm_update_crtc_state(struct amdgpu_display_manager *dm,
- set_freesync_fixed_config(dm_new_crtc_state);
-
- goto skip_modeset;
-- } else if (aconnector &&
-+ } else if (amdgpu_freesync_vid_mode && aconnector &&
- is_freesync_video_mode(&new_crtc_state->mode,
- aconnector)) {
- struct drm_display_mode *high_mode;
---
-2.44.0
-
-
-From 74b669e1b1296dfb2987a29840ddae29c2b31353 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher@amd.com>
-Date: Tue, 27 Feb 2024 13:03:40 -0500
-Subject: [PATCH 2/2] Revert "drm/amd: Remove freesync video mode amdgpu
- parameter"
-
-This reverts commit e94e787e37b99645e7c02d20d0a1ba0f8a18a82a.
-
-This conflicts with how compositors want to handle VRR. Now
-that compositors actually handle VRR, we probably don't need
-freesync video.
-
-Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/2985
-Acked-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 +
- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 27 +++++++++++++++++++++++++
- 2 files changed, 28 insertions(+)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-index 9246bca0a008..9c62552bec34 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-@@ -196,6 +196,7 @@
- extern uint amdgpu_smu_memory_pool_size;
- extern int amdgpu_smu_pptable_id;
- extern uint amdgpu_dc_feature_mask;
-+extern uint amdgpu_freesync_vid_mode;
- extern uint amdgpu_dc_debug_mask;
- extern uint amdgpu_dc_visual_confirm;
- extern uint amdgpu_dm_abm_level;
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
-index af7fae7907d7..8e1299fe2c54 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
-@@ -199,6 +199,7 @@ int amdgpu_mes_kiq;
- int amdgpu_noretry = -1;
- int amdgpu_force_asic_type = -1;
- int amdgpu_tmz = -1; /* auto */
-+uint amdgpu_freesync_vid_mode;
- int amdgpu_reset_method = -1; /* auto */
- int amdgpu_num_kcq = -1;
- int amdgpu_smartshift_bias;
-@@ -883,6 +884,32 @@ module_param_named(damageclips, amdgpu_damage_clips, int, 0444);
- MODULE_PARM_DESC(tmz, "Enable TMZ feature (-1 = auto (default), 0 = off, 1 = on)");
- module_param_named(tmz, amdgpu_tmz, int, 0444);
-
-+/**
-+ * DOC: freesync_video (uint)
-+ * Enable the optimization to adjust front porch timing to achieve seamless
-+ * mode change experience when setting a freesync supported mode for which full
-+ * modeset is not needed.
-+ *
-+ * The Display Core will add a set of modes derived from the base FreeSync
-+ * video mode into the corresponding connector's mode list based on commonly
-+ * used refresh rates and VRR range of the connected display, when users enable
-+ * this feature. From the userspace perspective, they can see a seamless mode
-+ * change experience when the change between different refresh rates under the
-+ * same resolution. Additionally, userspace applications such as Video playback
-+ * can read this modeset list and change the refresh rate based on the video
-+ * frame rate. Finally, the userspace can also derive an appropriate mode for a
-+ * particular refresh rate based on the FreeSync Mode and add it to the
-+ * connector's mode list.
-+ *
-+ * Note: This is an experimental feature.
-+ *
-+ * The default value: 0 (off).
-+ */
-+MODULE_PARM_DESC(
-+ freesync_video,
-+ "Enable freesync modesetting optimization feature (0 = off (default), 1 = on)");
-+module_param_named(freesync_video, amdgpu_freesync_vid_mode, uint, 0444);
-+
- /**
- * DOC: reset_method (int)
- * GPU reset method (-1 = auto (default), 0 = legacy, 1 = mode0, 2 = mode1, 3 = mode2, 4 = baco)
---
-2.44.0
-