f07e572f64
bcm2708: boot tested on RPi B+ v1.2 bcm2709: boot tested on RPi 3B v1.2 and RPi 4B v1.1 4G bcm2710: boot tested on RPi 3B v1.2 bcm2711: boot tested on RPi 4B v1.1 4G Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
56 lines
1.7 KiB
Diff
56 lines
1.7 KiB
Diff
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
|