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. Likewise debugfs lists all InfoFrames with some contents even if it the particular type is not being supported by the hardware.
Sort that out, making sure that all interfaces are consistent: - Add a way for the driver to define which InfoFrames it supports - Don't call callbacks for unsupported InfoFrames - Don't register debugfs files for unsupported InfoFrame types Signed-off-by: Dmitry Baryshkov <[email protected]> --- Changes in v4: - Dropped software / autogenerated distinction, revert back to software_infoframes - Dropped LT9611UXC patch, it doesn't fit anymore - Don't warn in HDMI Audio helpers if the device doesn't support InfoFrames at all (this is useful for DP controllers). - Rebased on a fresh drm-misc-next, picking up ADV7511 and IT6263 InfoFrames changes. - Link to v3: https://lore.kernel.org/r/[email protected] Changes in v3: - Fixed supported infoframes initialization (Liu Ying) - Implemented separate flags for DRM-generated InfoFrames and hardware-generated ones - Warn if required InfoFrames are not supported by the driver (Maxime) - Changed drivers to error out if the DRM framework requires the unsupported InfoFrame (Maxime) - Implemented DRM_BRIDGE_OP_HDMI and DRM_BRIDGE_OP_HDMI_AUDIO for Lontium lt9611uxc bridge. - Link to v2: https://lore.kernel.org/r/[email protected] Changes in v2: - Corrected whitespace / newline issues & other small syntax fixes (Liu Ying) - Added audio to the list of InfoFrames supported by the VC4 driver (Liu Ying) - Changed drm_dbg_kms() to drm_warn_once() in the Audio InfoFrame update code (Liu Ying) - Corrected subject for ITE IT6263 patch (Liu Ying) - Added patch, dropping default list of InfoFrames in drm_bridge_connector. - Link to v1: https://lore.kernel.org/r/[email protected] --- Dmitry Baryshkov (10): drm/connector: let drivers declare infoframes as unsupported drm/bridge: adv7511: declare supported infoframes drm/bridge: ite-it6263: declare supported infoframes drm/bridge: lontium-lt9611: declare supported infoframes drm/bridge: synopsys/dw-hdmi-qp: declare supported infoframes drm/msm: hdmi: declare supported infoframes drm/rockchip: rk3066: declare supported infoframes drm/display: bridge_connector: drop default list for HDMI Infoframes drm/connector: verify that HDMI connectors support necessary InfoFrames drm/display: hdmi-audio: warn if HDMI connector doesn't support Audio IF drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 9 ++++- drivers/gpu/drm/bridge/ite-it6263.c | 5 +++ drivers/gpu/drm/bridge/lontium-lt9611.c | 11 ++++-- drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c | 7 +++- drivers/gpu/drm/display/drm_bridge_connector.c | 1 + drivers/gpu/drm/display/drm_hdmi_audio_helper.c | 12 ++++++ drivers/gpu/drm/display/drm_hdmi_state_helper.c | 43 +++++++++++++++++++--- drivers/gpu/drm/drm_connector.c | 11 ++++++ drivers/gpu/drm/drm_debugfs.c | 16 +++++--- drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 8 +++- drivers/gpu/drm/rockchip/inno_hdmi.c | 5 ++- drivers/gpu/drm/rockchip/rk3066_hdmi.c | 6 ++- drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 3 +- drivers/gpu/drm/tests/drm_connector_test.c | 28 ++++++++++++++ drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 8 ++++ drivers/gpu/drm/vc4/vc4_hdmi.c | 5 +++ include/drm/drm_bridge.h | 12 +++++- include/drm/drm_connector.h | 30 ++++++++++++++- 18 files changed, 193 insertions(+), 27 deletions(-) --- base-commit: f50b969bafafb2810a07f376387350c4c0d72a21 change-id: 20250815-drm-limit-infoframes-e782fa7f3360 Best regards, -- With best wishes Dmitry
