drm/mediatek: hdmi: Add optional limit on maximal HDMI mode clock
authorNeil Armstrong <narmstrong@baylibre.com>
Mon, 19 Apr 2021 07:32:43 +0000 (09:32 +0200)
committerChun-Kuang Hu <chunkuang.hu@kernel.org>
Wed, 12 May 2021 23:52:32 +0000 (07:52 +0800)
Some SoCs like the MT8167 have a hard limit on the maximal
supported HDMI TMDS clock, so add a configuration value to
filter out those modes.

Signed-off-by: Fabien Parent <fparent@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
drivers/gpu/drm/mediatek/mtk_hdmi.c

index 0539262..bc50d97 100644 (file)
@@ -149,6 +149,7 @@ struct hdmi_audio_param {
 struct mtk_hdmi_conf {
        bool tz_disabled;
        bool cea_modes_only;
+       unsigned long max_mode_clock;
 };
 
 struct mtk_hdmi {
@@ -1226,6 +1227,10 @@ static int mtk_hdmi_bridge_mode_valid(struct drm_bridge *bridge,
        if (hdmi->conf->cea_modes_only && !drm_match_cea_mode(mode))
                return MODE_BAD;
 
+       if (hdmi->conf->max_mode_clock &&
+           mode->clock > hdmi->conf->max_mode_clock)
+               return MODE_CLOCK_HIGH;
+
        if (mode->clock < 27000)
                return MODE_CLOCK_LOW;
        if (mode->clock > 297000)