From a6f91bb86e4cbb36a368fa2aa2ae432096ca105d 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(-) diff --git a/drivers/gpu/drm/vc4/vc4_firmware_kms.c b/drivers/gpu/drm/vc4/vc4_firmware_kms.c index b9f78c93c9c5f1..f245b056f58323 100644 --- 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 }; @@ -1052,8 +1058,10 @@ vc4_crtc_mode_valid(struct drm_crtc *crtc, const struct drm_display_mode *mode) 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