mbox series

[v2,0/2] drm/msm: Fix dsi/bridge probe

Message ID 20211130141048.294246-1-angelogioacchino.delregno@collabora.com
Headers show
Series drm/msm: Fix dsi/bridge probe | expand

Message

AngeloGioacchino Del Regno Nov. 30, 2021, 2:10 p.m. UTC
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).

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              | 67 +++++++++++++---------
 drivers/gpu/drm/msm/msm_kms.h              |  3 +
 11 files changed, 133 insertions(+), 97 deletions(-)

Comments

AngeloGioacchino Del Regno Nov. 30, 2021, 2:14 p.m. UTC | #1
Il 30/11/21 15:10, AngeloGioacchino Del Regno ha scritto:
> 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).
> 
> 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              | 67 +++++++++++++---------
>   drivers/gpu/drm/msm/msm_kms.h              |  3 +
>   11 files changed, 133 insertions(+), 97 deletions(-)
> 

Dmitry, just as a note: I've obviously dropped your R-b when sending v2
as despite having a very similar title and description, this is, in the end,
a different thing.

Cheers,
- Angelo