It's not uncommon for the particular device to support only a subset of
HDMI InfoFrames. Currently it's mostly ignored by the framework: it
calls write_infoframe() / clear_infoframe() callbacks for all frames and
expects them to return success even if the InfoFrame is not supported.
Sort that out, making sure that all interfaces are consistent:
- In atomic_check() callback verify and disable unsupported InfoFrames.
- In write_infoframe() / clear_infoframe() callbacks return -EOPNOTSUPP
for unsupported InfoFrames.
- In write_device_infoframe() / clear_infoframe() functions warn if the
callback returns -EOPNOTSUPP for the frame which is set (or was set
beforehand).
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
Dmitry Baryshkov (9):
drm/display: hdmi-state-helpers: warn on unsupported InfoFrame types
drm/bridge: adv7511: handle unsupported InfoFrames
drm/bridge: ite-it6263: handle unsupported InfoFrames
drm/bridge: lontium-lt9611: handle unsupported InfoFrames
drm/bridge: synopsys/dw-hdmi-qp: handle unsupported InfoFrames
drm/msm: hdmi: handle unsupported InfoFrames
drm/rockchip: rk3066_hdmi: handle unsupported InfoFrames
drm/rockchip: inno-hdmi: handle unsupported InfoFrames
drm/sun4i: hdmi: handle unsupported InfoFrames
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 20 ++++++++--
drivers/gpu/drm/bridge/ite-it6263.c | 27 +++++++++++++-
drivers/gpu/drm/bridge/lontium-lt9611.c | 22 ++++++++---
drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c | 20 ++++++++--
drivers/gpu/drm/display/drm_hdmi_state_helper.c | 4 ++
drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 19 ++++++++--
drivers/gpu/drm/rockchip/inno_hdmi.c | 46 +++++++++++++++++------
drivers/gpu/drm/rockchip/rk3066_hdmi.c | 38 +++++++++++++++----
drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 49 ++++++++++++++++++++++---
9 files changed, 202 insertions(+), 43 deletions(-)
---
base-commit: bf2602a3cb2381fb1a04bf1c39a290518d2538d1
change-id: 20250927-limit-infoframes-2-6b93e599e79a
Best regards,
--
With best wishes
Dmitry