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 <[email protected]>
---
 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

Reply via email to