As the MDSS registers the IRQ domain before populating child devices, there is little point in deferring the IRQ request up to the msm_dp_modeset_init(). Following the 'get resources as early as possible' paradigm, move dp_request_irq() call to dp_display_probe(). Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> --- drivers/gpu/drm/msm/dp/dp_display.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c index 40c7f91abec9..0fb3cb773bec 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -1309,6 +1309,12 @@ static int dp_display_probe(struct platform_device *pdev) dp->dp_display.is_edp = (dp->dp_display.connector_type == DRM_MODE_CONNECTOR_eDP); + rc = dp_display_request_irq(&dp->dp_display); + if (rc) { + DRM_ERROR("request_irq failed, ret=%d\n", rc); + return rc; + } + rc = dp_init_sub_modules(dp); if (rc) { DRM_ERROR("init sub module failed\n"); @@ -1600,12 +1606,6 @@ int msm_dp_modeset_init(struct msm_dp *dp_display, struct drm_device *dev, dp_priv = container_of(dp_display, struct dp_display_private, dp_display); - ret = dp_display_request_irq(dp_display); - if (ret) { - DRM_ERROR("request_irq failed, ret=%d\n", ret); - return ret; - } - ret = dp_display_get_next_bridge(dp_display); if (ret) return ret; -- 2.35.1