| From ff882e312a746a4a794a089e912e5e56baa8b5b4 Mon Sep 17 00:00:00 2001 |
| From: Dave Stevenson <dave.stevenson@raspberrypi.com> |
| Date: Fri, 3 Jul 2020 14:11:55 +0100 |
| Subject: [PATCH] drm/vc4: Make FKMS max refresh rate a module |
| parameter |
| |
| Some people want to use the high refresh rate modes for 1080p100 |
| and 1080p120, but they're currently filtered out as generally |
| they don't add anything. |
| |
| Make the filter threshold a module parameter so that it can be |
| adjusted. |
| |
| https://github.com/raspberrypi/linux/issues/3677 |
| |
| Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> |
| --- |
| drivers/gpu/drm/vc4/vc4_firmware_kms.c | 12 ++++++++++-- |
| 1 file changed, 10 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c |
| +++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c |
| @@ -14,6 +14,8 @@ |
| * Pi's firmware display stack. |
| */ |
| |
| +#include <linux/module.h> |
| + |
| #include "drm/drm_atomic_helper.h" |
| #include "drm/drm_gem_framebuffer_helper.h" |
| #include "drm/drm_plane_helper.h" |
| @@ -32,6 +34,10 @@ |
| #include "vc_image_types.h" |
| #include <soc/bcm2835/raspberrypi-firmware.h> |
| |
| +int fkms_max_refresh_rate = 85; |
| +module_param(fkms_max_refresh_rate, int, 0644); |
| +MODULE_PARM_DESC(fkms_max_refresh_rate, "Max supported refresh rate"); |
| + |
| struct get_display_cfg { |
| u32 max_pixel_clock[2]; //Max pixel clock for each display |
| }; |
| @@ -1069,8 +1075,10 @@ vc4_crtc_mode_valid(struct drm_crtc *crt |
| return MODE_NO_DBLESCAN; |
| } |
| |
| - /* Disable refresh rates > 85Hz as limited gain from them */ |
| - if (drm_mode_vrefresh(mode) > 85) |
| + /* Disable refresh rates > defined threshold (default 85Hz) as limited |
| + * gain from them |
| + */ |
| + if (drm_mode_vrefresh(mode) > fkms_max_refresh_rate) |
| return MODE_BAD_VVALUE; |
| |
| /* Limit the pixel clock based on the HDMI clock limits from the |