eDP panel, please allow change refresh rates, or at least to stick with the downclock one.
I've a Dell latitude 7200 which supports 60hz and 48hz refresh rates.
Under windows, i'm able to manually switch between the two.
Under linux, this is not allowed.
At boot, 48hz modeline is rejected because of "PANEL" (a bit misleading if you ask me).
[drm:drm_mode_prune_invalid] Not using 1920x1280 mode: PANEL
drm debug messages suggest that the system switches between them to save power:
giu 14 11:46:59 latitude kernel: i915 0000:00:02.0: [drm:intel_drrs_downclock_work [i915]] eDP Refresh Rate set to : 48Hz
giu 14 11:46:59 latitude kernel: i915 0000:00:02.0: [drm:intel_drrs_frontbuffer_update.part.0 [i915]] eDP Refresh Rate set to : 60Hz
But xrandr does not report anything different from 60hz for all of the resolutions.
Manually creating new modelines for 48hz with gtf, cvt12 even in reduced pixel clock wont work, the panel stays to 60Hz and the kernel informs me of that:
giu 14 11:35:09 latitude kernel: i915 0000:00:02.0: [drm:intel_panel_compute_config [i915]] [CONNECTOR:95:eDP-1] Requested mode vrefresh (48 Hz) does not match fixed mode vrefresh (60 Hz)
48Hz is important for smooth video playback, would it be possible to let the user set that modeline or at least provide a method to switch and stick to it?
And if the hardware allows it, would it be possible to change refresh rates to custom values?
Thank you.
koko@latitude# uname -a
Linux latitude 5.18.2-arch1-1 #1 SMP PREEMPT_DYNAMIC Mon, 06 Jun 2022 19:58:58 +0000 x86_64 GNU/Linux
Distro: Archlinux