mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2024-12-23 23:23:31 +00:00
20ea6adbf1
Build system: x86_64 Build-tested: bcm2708, bcm2709, bcm2710, bcm2711 Run-tested: bcm2708/RPiB+, bcm2709/RPi3B, bcm2710/RPi3B, bcm2711/RPi4B Signed-off-by: Marty Jones <mj8263788@gmail.com> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
41 lines
1.3 KiB
Diff
41 lines
1.3 KiB
Diff
From e63d40712a11de18ea217c2211dfd3ae937bab7f Mon Sep 17 00:00:00 2001
|
|
From: Maxime Ripard <maxime@cerno.tech>
|
|
Date: Mon, 13 Dec 2021 15:33:11 +0100
|
|
Subject: [PATCH] drm/vc4: hdmi: Take the sink maximum TMDS clock into
|
|
account
|
|
|
|
In the function that validates that the clock isn't too high, we've only
|
|
taken our controller limitations into account so far.
|
|
|
|
However, the sink can have a limit on the maximum TMDS clock it can deal
|
|
with too which is exposed through the EDID and the drm_display_info.
|
|
|
|
Make sure we check it.
|
|
|
|
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
|
---
|
|
drivers/gpu/drm/vc4/vc4_hdmi.c | 6 ++++++
|
|
1 file changed, 6 insertions(+)
|
|
|
|
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
|
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
|
@@ -1254,12 +1254,18 @@ static enum drm_mode_status
|
|
vc4_hdmi_encoder_clock_valid(const struct vc4_hdmi *vc4_hdmi,
|
|
unsigned long long clock)
|
|
{
|
|
+ const struct drm_connector *connector = &vc4_hdmi->connector;
|
|
+ const struct drm_display_info *info = &connector->display_info;
|
|
+
|
|
if (clock > vc4_hdmi->variant->max_pixel_clock)
|
|
return MODE_CLOCK_HIGH;
|
|
|
|
if (vc4_hdmi->disable_4kp60 && clock > HDMI_14_MAX_TMDS_CLK)
|
|
return MODE_CLOCK_HIGH;
|
|
|
|
+ if (info->max_tmds_clock && clock > (info->max_tmds_clock * 1000))
|
|
+ return MODE_CLOCK_HIGH;
|
|
+
|
|
return MODE_OK;
|
|
}
|
|
|