Declare which infoframes are supported via the .hdmi_write_infoframe()
interface. Return -EOPNOTSUPP if the driver is asked to write or clear
the unsupported InfoFrame.

Reviewed-by: Liu Ying <victor....@nxp.com>
Acked-by: Daniel Stone <dani...@collabora.com>
Signed-off-by: Dmitry Baryshkov <dmitry.barysh...@oss.qualcomm.com>
---
 drivers/gpu/drm/rockchip/rk3066_hdmi.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/rockchip/rk3066_hdmi.c 
b/drivers/gpu/drm/rockchip/rk3066_hdmi.c
index 
ae4a5ac2299a93a49f87df7604752f6b651c839c..6ac854c0fe4d155b351821782a6d8bbd550de656
 100644
--- a/drivers/gpu/drm/rockchip/rk3066_hdmi.c
+++ b/drivers/gpu/drm/rockchip/rk3066_hdmi.c
@@ -164,7 +164,7 @@ static int rk3066_hdmi_bridge_clear_infoframe(struct 
drm_bridge *bridge,
 
        if (type != HDMI_INFOFRAME_TYPE_AVI) {
                drm_err(bridge->dev, "Unsupported infoframe type: %u\n", type);
-               return 0;
+               return -EOPNOTSUPP;
        }
 
        hdmi_writeb(hdmi, HDMI_CP_BUF_INDEX, HDMI_INFOFRAME_AVI);
@@ -182,7 +182,7 @@ rk3066_hdmi_bridge_write_infoframe(struct drm_bridge 
*bridge,
 
        if (type != HDMI_INFOFRAME_TYPE_AVI) {
                drm_err(bridge->dev, "Unsupported infoframe type: %u\n", type);
-               return 0;
+               return -EOPNOTSUPP;
        }
 
        rk3066_hdmi_bridge_clear_infoframe(bridge, type);
@@ -696,6 +696,8 @@ rk3066_hdmi_register(struct drm_device *drm, struct 
rk3066_hdmi *hdmi)
        hdmi->bridge.type = DRM_MODE_CONNECTOR_HDMIA;
        hdmi->bridge.vendor = "Rockchip";
        hdmi->bridge.product = "RK3066 HDMI";
+       hdmi->bridge.supported_infoframes =
+               DRM_CONNECTOR_INFOFRAME_AVI;
 
        hdmi->bridge.ddc = rk3066_hdmi_i2c_adapter(hdmi);
        if (IS_ERR(hdmi->bridge.ddc))

-- 
2.47.3

Reply via email to