]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
drm/bridge: refactor HDMI InfoFrame callbacks
authorDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Wed, 7 Jan 2026 18:15:02 +0000 (20:15 +0200)
committerDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Mon, 19 Jan 2026 11:11:46 +0000 (13:11 +0200)
commitb626b1a1c9ccadd8861870a2a450f02e0c61ab88
tree7297ae1fe3ea7ed78bd1c733c50ae65668c4e1da
parentafc399f7a5ea7bf405b2ef85c7470529b1a9e47c
drm/bridge: refactor HDMI InfoFrame callbacks

Having only a single set of callbacks, hdmi_clear_infoframe and
hdmi_write_infoframe, bridge drivers don't have an easy way to signal to
the DRM framework, which InfoFrames are actually supported by the
hardware and by the driver and which are not. Also, it makes it
extremely easy for HDMI bridge drivers to skip implementing the
seemingly required InfoFrames (e.g. HDMI VSI). Last, but not least,
those callbacks take a single 'type' parameter, which makes it
impossible to implement support for multiple VSIs (which will be
required once we start working on HDMI Forum VSI).

Split the callbacks into a per-InfoFrame-kind pairs, letting the bridge
drivers actually signal supported features. The implementation follows
the overall drm_bridge design, where the bridge has a single
drm_bridge_funcs implementation and signals, which functions are to be
called using the drm_bridge->ops flags.

The AVI and HDMI VSI are assumed to be required for a normal HDMI
operation (with the drivers getting a drm_warn_once() stub
implementation if one is missing). The Audio InfoFrame is handled by the
existing DRM_BRIDGE_OP_HDMI_AUDIO, while the SPD and HDR DRM InfoFrames
got new drm_bridge_ops values.

Acked-by: Maxime Ripard <mripard@kernel.org>
Link: https://patch.msgid.link/20260107-limit-infoframes-2-v4-5-213d0d3bd490@oss.qualcomm.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
drivers/gpu/drm/bridge/inno-hdmi.c
drivers/gpu/drm/bridge/ite-it6263.c
drivers/gpu/drm/bridge/lontium-lt9611.c
drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c
drivers/gpu/drm/display/drm_bridge_connector.c
drivers/gpu/drm/mediatek/mtk_hdmi_common.c
drivers/gpu/drm/mediatek/mtk_hdmi_v2.c
drivers/gpu/drm/msm/hdmi/hdmi_bridge.c
drivers/gpu/drm/rockchip/rk3066_hdmi.c
include/drm/drm_bridge.h