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 <dmitry.baryshkov@oss.qualcomm.com>
---
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/20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com
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/20250819-drm-limit-infoframes-v2-0-7595dda24fbd@oss.qualcomm.com
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/20250816-drm-limit-infoframes-v1-0-6dc17d5f07e9@oss.qualcomm.com
---
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