Context, from patch 2/2: Since commit 8f59ee9a570c ("drm/msm/dsi: Adjust probe order"), the DSI host gets initialized earlier, but this caused unability to probe the entire stack of components because they all depend on interrupts coming from the main `mdss` node (mdp5, or dpu1). Changes in v3: - Removed a forgotten (and wrong) kfree() call. Series v2: After a very nice conversation with Dmitry, it turned out that my first approach to solve this issue wasn't great: even though it appeared to actually work, it was introducing a number of issues, one of which was critical as it was not removing down the DRM device when it's supposed to. Instead of actually fixing that patch, I went for "simplifying" the approach by not initializing the entire MDSS, but just the interrupt controller, which still untangles the infinite probe deferrals, but actually doesn't even touch most of the already present logic in place. AngeloGioacchino Del Regno (2): drm/msm: Allocate msm_drm_private early and pass it as driver data drm/msm: Initialize MDSS irq domain at probe time drivers/gpu/drm/msm/adreno/adreno_device.c | 16 ++--- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 4 +- drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c | 50 ++++++++++------ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 3 +- drivers/gpu/drm/msm/disp/mdp5/mdp5_mdss.c | 58 ++++++++++++------ drivers/gpu/drm/msm/dp/dp_display.c | 10 +--- drivers/gpu/drm/msm/dsi/dsi.c | 6 +- drivers/gpu/drm/msm/edp/edp.c | 6 +- drivers/gpu/drm/msm/hdmi/hdmi.c | 7 +-- drivers/gpu/drm/msm/msm_drv.c | 68 +++++++++++++--------- drivers/gpu/drm/msm/msm_kms.h | 3 + 11 files changed, 133 insertions(+), 98 deletions(-) -- 2.33.1