• Kuogee Hsieh's avatar
    drm/msm/dp: check core_initialized before disable interrupts at dp_display_unbind() · d80c3ba0
    Kuogee Hsieh authored
    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: 570d3e5d ("drm/msm/dp: stop event kernel thread when DP unbind")
    Signed-off-by: default avatarKuogee Hsieh <quic_khsieh@quicinc.com>
    Reviewed-by: default avatarStephen 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.comSigned-off-by: default avatarRob Clark <robdclark@chromium.org>
    d80c3ba0
dp_display.c 43.2 KB