]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
drm/msm/hdmi: Enable HPD after HDMI IRQ is set up
authorTodor Tomov <todor.tomov@linaro.org>
Fri, 19 Oct 2018 14:07:22 +0000 (17:07 +0300)
committerSean Paul <seanpaul@chromium.org>
Mon, 3 Dec 2018 13:46:13 +0000 (08:46 -0500)
commitee4456359640defe3f51cc6b728bfce4bc444c9e
treef9f02260f621aed247323ce048e90185da8d5bd8
parent7f9743abaa79d3491fee7a0446461b0fdd2aeaa5
drm/msm/hdmi: Enable HPD after HDMI IRQ is set up

SoCs that contain MDP5 have a top level wrapper called MDSS that
manages locks, power and irq for the sub-blocks within it.

Irq for HDMI is also routed through the MDSS.

Shortly after the Hot Plug Detection (HPD) is enabled in HDMI,
HDMI interrupts are recieved by the MDSS interrupt handler.
However at this moment the HDMI irq is still not mapped to
the MDSS irq domain so the HDMI irq handler cannot be called
to process the interrupts.

This leads to a flood of HDMI interrupts on CPU 0.

If we are lucky to have the HDMI initialization running on a
different CPU, it will eventually map the HDMI irq to MDSS irq
domain, the next HDMI interrupt will be handled by the HDMI irq
handler, the interrupt flood will stop and we will recover.

If the HDMI initialization is running on CPU 0, then it cannot
complete and there is nothing to stop the interrupt flood on
CPU 0. The system is stuck.

Fix this by moving the HPD enablement after the HDMI irq is
mapped to the MDSS irq domain.

Signed-off-by: Todor Tomov <todor.tomov@linaro.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
drivers/gpu/drm/msm/hdmi/hdmi.c
drivers/gpu/drm/msm/hdmi/hdmi.h
drivers/gpu/drm/msm/hdmi/hdmi_connector.c