drm/vc4: Make FKMS max refresh rate a module parameter
authorDave Stevenson <dave.stevenson@raspberrypi.com>
Fri, 3 Jul 2020 13:11:55 +0000 (14:11 +0100)
committerPhil Elwell <8911409+pelwell@users.noreply.github.com>
Fri, 3 Jul 2020 16:14:31 +0000 (17:14 +0100)
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

index ab794ee..a173ca4 100644 (file)
@@ -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"
 #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 *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