[PATCH v7 14/19] drm/bridge: inno-hdmi: Make the supported HDMI version selectable
Michal Wilczynski
m.wilczynski at samsung.com
Fri Nov 6 05:58:48 PST 2026
inno_hdmi_probe() advertises HDMI 1.2 for every integration, which caps
the TMDS character rate at 165 MHz. That matches the Rockchip variants,
whose PHY configuration tables stop at 165 MHz, but not every SoC that
uses this controller: the StarFive JH7110 supports HDMI 1.4b and drives
pixel clocks up to 297 MHz for 3840x2160 and 4096x2160 at 30 Hz.
Add a plat_data field for the supported version and keep HDMI 1.2 when
it is left unset, so the Rockchip integrations are unchanged.
Signed-off-by: Michal Wilczynski <m.wilczynski at samsung.com>
---
drivers/gpu/drm/bridge/inno-hdmi.c | 3 ++-
include/drm/bridge/inno_hdmi.h | 3 +++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/inno-hdmi.c b/drivers/gpu/drm/bridge/inno-hdmi.c
index 9aa005ff65a23bf55672f97aa1ea6688cf1b7ba3..ce036965a483e47d349df85db1ed7dad31f4e8f0 100644
--- a/drivers/gpu/drm/bridge/inno-hdmi.c
+++ b/drivers/gpu/drm/bridge/inno-hdmi.c
@@ -1177,7 +1177,8 @@ struct inno_hdmi *inno_hdmi_probe(struct platform_device *pdev,
hdmi->bridge.type = DRM_MODE_CONNECTOR_HDMIA;
hdmi->bridge.vendor = "Inno";
hdmi->bridge.product = "Inno HDMI";
- hdmi->bridge.supported_hdmi_ver = HDMI_VERSION_1_2;
+ hdmi->bridge.supported_hdmi_ver = plat_data->supported_hdmi_ver ?:
+ HDMI_VERSION_1_2;
hdmi->bridge.ddc = inno_hdmi_i2c_adapter(hdmi);
if (IS_ERR(hdmi->bridge.ddc))
diff --git a/include/drm/bridge/inno_hdmi.h b/include/drm/bridge/inno_hdmi.h
index cc5099d05f641eef5de91ed5becde7337c04b013..89a38f26091eda1ef7818fea9d1d9c99e4ae019e 100644
--- a/include/drm/bridge/inno_hdmi.h
+++ b/include/drm/bridge/inno_hdmi.h
@@ -6,6 +6,7 @@
#ifndef __INNO_HDMI__
#define __INNO_HDMI__
+#include <linux/hdmi.h>
#include <linux/types.h>
#include <drm/drm_modes.h>
@@ -34,6 +35,8 @@ struct inno_hdmi_plat_data {
struct inno_hdmi_phy_config *default_phy_config;
/* Clock the register interface from the TMDS clock, not the system clock. */
bool reg_clk_source_tmds;
+ /* HDMI version the integration supports; HDMI 1.2 if left unset. */
+ enum hdmi_version supported_hdmi_ver;
};
struct inno_hdmi *inno_hdmi_bind(struct platform_device *pdev,
--
2.34.1
More information about the linux-riscv
mailing list