[PATCH RFC 21/25] drm/rockchip: dw_hdmi_qp: Add QMS support

Nicolas Frattaroli nicolas.frattaroli at collabora.com
Mon Sep 21 08:51:47 PDT 2026


Register the "qms_enabled" property on RK3588. This property can then be
used by userspace to request that a given VRR target frame rate on a
CRTC should be achieved through QMS. The common HDMI state helpers
implement the actual functionality for this.

Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli at collabora.com>
---
 drivers/gpu/drm/rockchip/dw_hdmi_qp-rockchip.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/rockchip/dw_hdmi_qp-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi_qp-rockchip.c
index 2b9432aa8c54..01ed7c18a7e0 100644
--- a/drivers/gpu/drm/rockchip/dw_hdmi_qp-rockchip.c
+++ b/drivers/gpu/drm/rockchip/dw_hdmi_qp-rockchip.c
@@ -521,6 +521,7 @@ struct rockchip_hdmi_qp_cfg {
 	const struct rockchip_hdmi_qp_ctrl_ops *ctrl_ops;
 	const struct dw_hdmi_qp_phy_ops *phy_ops;
 	bool supports_vrr;
+	bool supports_qms;
 };
 
 static const struct rockchip_hdmi_qp_cfg rk3576_hdmi_cfg = {
@@ -541,6 +542,7 @@ static const struct rockchip_hdmi_qp_cfg rk3588_hdmi_cfg = {
 	.ctrl_ops = &rk3588_hdmi_ctrl_ops,
 	.phy_ops = &rk3588_hdmi_phy_ops,
 	.supports_vrr = true,
+	.supports_qms = true,
 };
 
 static const struct of_device_id dw_hdmi_qp_rockchip_dt_ids[] = {
@@ -709,6 +711,13 @@ static int dw_hdmi_qp_rockchip_bind(struct device *dev, struct device *master,
 					     "Failed to attach 'vrr_capable' property\n");
 	}
 
+	if (cfg->supports_qms) {
+		ret = drm_connector_attach_qms_enabled_property(connector);
+		if (ret)
+			return dev_err_probe(hdmi->dev, ret,
+					     "Failed to attach 'qms_enabled' property\n");
+	}
+
 	return 0;
 }
 

-- 
2.55.0




More information about the linux-arm-kernel mailing list