]> www.infradead.org Git - users/jedix/linux-maple.git/commit
drm/connector: hdmi: Fix writing Dynamic Range Mastering infoframes
authorDerek Foreman <derek.foreman@collabora.com>
Tue, 27 Aug 2024 16:39:04 +0000 (11:39 -0500)
committerMaxime Ripard <mripard@kernel.org>
Tue, 24 Sep 2024 14:10:12 +0000 (16:10 +0200)
commitf0fa69b5011a45394554fb8061d74fee4d7cd72c
tree51e5d7f0d32fd32147e6315a1927e143489390c5
parent440d52b370b03b366fd26ace36bab20552116145
drm/connector: hdmi: Fix writing Dynamic Range Mastering infoframes

The largest infoframe we create is the DRM (Dynamic Range Mastering)
infoframe which is 26 bytes + a 4 byte header, for a total of 30
bytes.

With HDMI_MAX_INFOFRAME_SIZE set to 29 bytes, as it is now, we
allocate too little space to pack a DRM infoframe in
write_device_infoframe(), leading to an ENOSPC return from
hdmi_infoframe_pack(), and never calling the connector's
write_infoframe() vfunc.

Instead of having HDMI_MAX_INFOFRAME_SIZE defined in two places,
replace HDMI_MAX_INFOFRAME_SIZE with HDMI_INFOFRAME_SIZE(MAX) and make
MAX 27 bytes - which is defined by the HDMI specification to be the
largest infoframe payload.

Fixes: f378b77227bc ("drm/connector: hdmi: Add Infoframes generation")
Fixes: c602e4959a0c ("drm/connector: hdmi: Create Infoframe DebugFS entries")
Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
Acked-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240827163918.48160-1-derek.foreman@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
drivers/gpu/drm/display/drm_hdmi_state_helper.c
drivers/gpu/drm/drm_debugfs.c
include/linux/hdmi.h