mirror_ubuntu-kernels/drivers/gpu/drm/msm/dp
Kuogee Hsieh d80c3ba0ac drm/msm/dp: check core_initialized before disable interrupts at dp_display_unbind()
During msm initialize phase, dp_display_unbind() will be called to undo
initializations had been done by dp_display_bind() previously if there is
error happen at msm_drm_bind. In this case, core_initialized flag had to
be check to make sure clocks is on before update DP controller register
to disable HPD interrupts. Otherwise system will crash due to below NOC
fatal error.

QTISECLIB [01f01a7ad]CNOC2 ERROR: ERRLOG0_LOW = 0x00061007
QTISECLIB [01f01a7ad]GEM_NOC ERROR: ERRLOG0_LOW = 0x00001007
QTISECLIB [01f0371a0]CNOC2 ERROR: ERRLOG0_HIGH = 0x00000003
QTISECLIB [01f055297]GEM_NOC ERROR: ERRLOG0_HIGH = 0x00000003
QTISECLIB [01f072beb]CNOC2 ERROR: ERRLOG1_LOW = 0x00000024
QTISECLIB [01f0914b8]GEM_NOC ERROR: ERRLOG1_LOW = 0x00000042
QTISECLIB [01f0ae639]CNOC2 ERROR: ERRLOG1_HIGH = 0x00004002
QTISECLIB [01f0cc73f]GEM_NOC ERROR: ERRLOG1_HIGH = 0x00004002
QTISECLIB [01f0ea092]CNOC2 ERROR: ERRLOG2_LOW = 0x0009020c
QTISECLIB [01f10895f]GEM_NOC ERROR: ERRLOG2_LOW = 0x0ae9020c
QTISECLIB [01f125ae1]CNOC2 ERROR: ERRLOG2_HIGH = 0x00000000
QTISECLIB [01f143be7]GEM_NOC ERROR: ERRLOG2_HIGH = 0x00000000
QTISECLIB [01f16153a]CNOC2 ERROR: ERRLOG3_LOW = 0x00000000
QTISECLIB [01f17fe07]GEM_NOC ERROR: ERRLOG3_LOW = 0x00000000
QTISECLIB [01f19cf89]CNOC2 ERROR: ERRLOG3_HIGH = 0x00000000
QTISECLIB [01f1bb08e]GEM_NOC ERROR: ERRLOG3_HIGH = 0x00000000
QTISECLIB [01f1d8a31]CNOC2 ERROR: SBM1 FAULTINSTATUS0_LOW = 0x00000002
QTISECLIB [01f1f72a4]GEM_NOC ERROR: SBM0 FAULTINSTATUS0_LOW = 0x00000001
QTISECLIB [01f21a217]CNOC3 ERROR: ERRLOG0_LOW = 0x00000006
QTISECLIB [01f23dfd3]NOC error fatal

changes in v2:
-- drop the first patch (drm/msm: enable msm irq after all initializations are done successfully at msm_drm_init()) since the problem had been fixed by other patch

Fixes: 570d3e5d28 ("drm/msm/dp: stop event kernel thread when DP unbind")
Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Patchwork: https://patchwork.freedesktop.org/patch/488387/
Link: https://lore.kernel.org/r/1654538139-7450-1-git-send-email-quic_khsieh@quicinc.com
Signed-off-by: Rob Clark <robdclark@chromium.org>
2022-06-18 09:14:05 -07:00
..
dp_audio.c drm/msm/dp: replace DRM_DEBUG_DP marco with drm_dbg_dp 2022-05-02 02:13:01 +03:00
dp_audio.h drm/msm/dp: add audio support for Display Port on MSM 2020-09-15 10:54:34 -07:00
dp_aux.c drm/msm/dp: wait for hpd high before aux transaction 2022-05-02 02:39:34 +03:00
dp_aux.h drm/msm/dp: wait for hpd high before aux transaction 2022-05-02 02:39:34 +03:00
dp_catalog.c drm/msm/dp: wait for hpd high before aux transaction 2022-05-02 02:39:34 +03:00
dp_catalog.h drm/msm/dp: wait for hpd high before aux transaction 2022-05-02 02:39:34 +03:00
dp_clk_util.c drm/msm/dpu: simplify clocks handling 2022-02-18 20:15:12 +03:00
dp_clk_util.h drm/msm/dpu: simplify clocks handling 2022-02-18 20:15:12 +03:00
dp_ctrl.c drm/msm/dp: Always clear mask bits to disable interrupts at dp_ctrl_reset_irq_ctrl() 2022-06-01 16:15:05 -07:00
dp_ctrl.h drm/msm/dp: tear down main link at unplug handle immediately 2022-05-02 02:13:01 +03:00
dp_debug.c drm/msm/dp: remove max_pclk_khz field from dp_panel/dp_display 2022-05-02 02:13:01 +03:00
dp_debug.h drm/msm/dp: Use the connector passed to dp_debug_get() 2021-10-15 16:40:09 -07:00
dp_display.c drm/msm/dp: check core_initialized before disable interrupts at dp_display_unbind() 2022-06-18 09:14:05 -07:00
dp_display.h drm/msm/dp: Add eDP support via aux_bus 2022-05-02 02:13:01 +03:00
dp_drm.c drm/msm/dp: Add eDP support via aux_bus 2022-05-02 02:13:01 +03:00
dp_drm.h drm/msm/dp: remove extra wrappers and public functions 2022-05-02 02:13:01 +03:00
dp_hpd.c drm/msm/dp: Drop now unused hpd_high member 2021-11-29 16:19:58 -08:00
dp_hpd.h drm/msm/dp: Drop now unused hpd_high member 2021-11-29 16:19:58 -08:00
dp_link.c drm/msm/dp: replace DRM_DEBUG_DP marco with drm_dbg_dp 2022-05-02 02:13:01 +03:00
dp_link.h drm/msm/dp: DisplayPort PHY compliance tests fixup 2020-11-04 08:26:25 -08:00
dp_panel.c drm/msm/dp: drop dp_mode argument from dp_panel_get_modes() 2022-05-02 02:13:01 +03:00
dp_panel.h drm/msm/dp: remove max_pclk_khz field from dp_panel/dp_display 2022-05-02 02:13:01 +03:00
dp_parser.c drm/msm/dp: Add eDP support via aux_bus 2022-05-02 02:13:01 +03:00
dp_parser.h drm/msm/dp: Add eDP support via aux_bus 2022-05-02 02:13:01 +03:00
dp_power.c drm/msm/dp: replace DRM_DEBUG_DP marco with drm_dbg_dp 2022-05-02 02:13:01 +03:00
dp_power.h drm/msm/dp: Fixed couple of typos 2021-06-23 07:33:52 -07:00
dp_reg.h drm/msm/dp: return correct connection status after suspend 2020-11-10 12:38:58 -08:00