drm: xlnx: zynqmp_dpsub: Filter interrupts against mask
authorAnatoliy Klymenko <anatoliy.klymenko@amd.com>
Wed, 24 Jan 2024 02:54:01 +0000 (18:54 -0800)
committerTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Wed, 7 Feb 2024 13:17:23 +0000 (15:17 +0200)
commitef8d8df3cb06fb99856bb7164b50ff52d6b07e66
treee2c10c11d85b07a04f1845669fa9634add6820d5
parent7717fc5b22e59975c88a8f2b222b5cee4531de61
drm: xlnx: zynqmp_dpsub: Filter interrupts against mask

Filter out status register against the interrupts' mask.

Some events are being reported via DP status register, even if
corresponding interrupts have been disabled. One instance of such event
leads to generation of VBLANK when the driver is in DRM bridge mode,
which in turn results in NULL pointer dereferencing. We should avoid
processing such events in an interrupt handler context.

This problem is less noticeable when the driver operates in DMA mode, as
in this case we have DRM CRTC object instantiated and DRM framework
simply discards unwanted VBLANKs in drm_handle_vblank().

Signed-off-by: Anatoliy Klymenko <anatoliy.klymenko@amd.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240124025402.373620-5-anatoliy.klymenko@amd.com
drivers/gpu/drm/xlnx/zynqmp_dp.c