[PATCH] gpu: drm_dp_cec: fix broken CEC adapter properties check
Dmitry Baryshkov
dmitry.baryshkov at linaro.org
Wed Jan 29 10:18:52 UTC 2025
On Wed, Jan 29, 2025 at 10:51:48AM +0100, Hans Verkuil wrote:
> If the hotplug detect of a display is low for longer than one second
> (configurable through drm_dp_cec_unregister_delay), then the CEC adapter
> is unregistered since we assume the display was disconnected. If the
> HPD went low for less than one second, then we check if the properties
> of the CEC adapter have changed, since that indicates that we actually
> switch to new hardware and we have to unregister the old CEC device and
> register a new one.
>
> Unfortunately, the test for changed properties was written poorly, and
> after a new CEC capability was added to the CEC core code the test always
> returned true (i.e. the properties had changed).
>
> As a result the CEC device was unregistered and re-registered for every
> HPD toggle. If the CEC remote controller integration was also enabled
> (CONFIG_MEDIA_CEC_RC was set), then the corresponding input device was
> also unregistered and re-registered. As a result the input device in
> /sys would keep incrementing its number, e.g.:
>
> /sys/devices/pci0000:00/0000:00:08.1/0000:e7:00.0/rc/rc0/input20
>
> Since short HPD toggles are common, the number could over time get into
> the thousands.
>
> While not a serious issue (i.e. nothing crashes), it is not intended
> to work that way.
>
> This patch changes the test so that it only checks for the single CEC
> capability that can actually change, and it ignores any other
> capabilities, so this is now safe as well if new caps are added in
> the future.
>
> With the changed test the bit under #ifndef CONFIG_MEDIA_CEC_RC can be
> dropped as well, so that's a nice cleanup.
>
> Signed-off-by: Hans Verkuil <hverkuil at xs4all.nl>
> Reported-by: Farblos <farblos at vodafonemail.de>
> ---
> Jens (aka Farblos), can you test this patch?
> ---
> drivers/gpu/drm/display/drm_dp_cec.c | 14 +++-----------
> 1 file changed, 3 insertions(+), 11 deletions(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
--
With best wishes
Dmitry
More information about the dri-devel
mailing list