Gate only HDMI Vendor Infoframe generation on the
info->has_hdmi_infoframe. All other infoframes were defined in earlier
HDMI specs and should be generated by default.

Signed-off-by: Dmitry Baryshkov <dmitry.barysh...@linaro.org>
---
 drivers/gpu/drm/drm_atomic_state_helper.c | 25 ++++++++++---------------
 1 file changed, 10 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c 
b/drivers/gpu/drm/drm_atomic_state_helper.c
index 46d9fd2ea8fa..691efce9661a 100644
--- a/drivers/gpu/drm/drm_atomic_state_helper.c
+++ b/drivers/gpu/drm/drm_atomic_state_helper.c
@@ -1025,9 +1025,6 @@ hdmi_generate_infoframes(const struct drm_connector 
*connector,
        if (!info->is_hdmi)
                return 0;
 
-       if (!info->has_hdmi_infoframe)
-               return 0;
-
        ret = hdmi_generate_avi_infoframe(connector, state);
        if (ret)
                return ret;
@@ -1045,9 +1042,11 @@ hdmi_generate_infoframes(const struct drm_connector 
*connector,
        if (ret)
                return ret;
 
-       ret = hdmi_generate_hdmi_vendor_infoframe(connector, state);
-       if (ret)
-               return ret;
+       if (info->has_hdmi_infoframe) {
+               ret = hdmi_generate_hdmi_vendor_infoframe(connector, state);
+               if (ret)
+                       return ret;
+       }
 
        return 0;
 }
@@ -1208,9 +1207,6 @@ int 
drm_atomic_helper_connector_hdmi_update_infoframes(struct drm_connector *con
        if (!info->is_hdmi)
                return 0;
 
-       if (!info->has_hdmi_infoframe)
-               return 0;
-
        mutex_lock(&connector->hdmi.infoframes.lock);
 
        ret = UPDATE_INFOFRAME(connector, old_state, new_state, avi);
@@ -1233,9 +1229,11 @@ int 
drm_atomic_helper_connector_hdmi_update_infoframes(struct drm_connector *con
        if (ret)
                goto out;
 
-       ret = UPDATE_INFOFRAME(connector, old_state, new_state, hdmi);
-       if (ret)
-               goto out;
+       if (info->has_hdmi_infoframe) {
+               ret = UPDATE_INFOFRAME(connector, old_state, new_state, hdmi);
+               if (ret)
+                       goto out;
+       }
 
 out:
        mutex_unlock(&connector->hdmi.infoframes.lock);
@@ -1269,9 +1267,6 @@ 
drm_atomic_helper_connector_hdmi_update_audio_infoframe(struct drm_connector *co
        if (!info->is_hdmi)
                return 0;
 
-       if (!info->has_hdmi_infoframe)
-               return 0;
-
        memcpy(&infoframe.data, frame, sizeof(infoframe.data));
        infoframe.set = true;
 

-- 
2.39.2

Reply via email to