[PATCH RFC 2/6] drm/connector: hdmi: fix Infoframes generation
Dmitry Baryshkov
dmitry.baryshkov at linaro.org
Thu Mar 7 23:57:01 UTC 2024
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.baryshkov at 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
More information about the Freedreno
mailing list