Message ID | 20210705233639.335951-1-david@ixit.cz |
---|---|
State | Superseded |
Headers | show |
Series | [v2] drm/msm/dsi: do not use uninitialized kms | expand |
On 06/07/2021 02:36, David Heidelberg wrote: > Without this patch boot ends at NULL ptr exception at msm_dsi_manager_setup_encoder > on devices like Nexus 7 with MDP4 version 4.4. > > Fixes: 03436e3ec69c ("drm/msm/dsi: Move setup_encoder to modeset_init") > > Signed-off-by: David Heidelberg <david@ixit.cz> Being not an expert in the mdp4 sources, I suspect that the fix is not quite correct. I'd suggest setting priv->kms in the mdp4_kms_init() before calling modeset_init(). > --- > > v2: typo in Fixes commit reference > > drivers/gpu/drm/msm/dsi/dsi_manager.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c > index 4ebfedc4a9ac..8114612b34b0 100644 > --- a/drivers/gpu/drm/msm/dsi/dsi_manager.c > +++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c > @@ -230,7 +230,7 @@ void msm_dsi_manager_setup_encoder(int id) > struct msm_kms *kms = priv->kms; > struct drm_encoder *encoder = msm_dsi_get_encoder(msm_dsi); > > - if (encoder && kms->funcs->set_encoder_mode) > + if (encoder && kms && kms->funcs->set_encoder_mode) > kms->funcs->set_encoder_mode(kms, encoder, > dsi_mgr_is_cmd_mode(msm_dsi)); > } > -- With best wishes Dmitry
Thank you, tried your proposed solution, works for me (also seems better). Sending another patch. Best regards David Heidelberg On Wed, Jul 7 2021 at 02:17:14 +0300, Dmitry Baryshkov <dmitry.baryshkov@linaro.org> wrote: > On 06/07/2021 02:36, David Heidelberg wrote: >> Without this patch boot ends at NULL ptr exception at >> msm_dsi_manager_setup_encoder >> on devices like Nexus 7 with MDP4 version 4.4. >> >> Fixes: 03436e3ec69c ("drm/msm/dsi: Move setup_encoder to >> modeset_init") >> >> Signed-off-by: David Heidelberg <david@ixit.cz> > > Being not an expert in the mdp4 sources, I suspect that the fix is > not quite correct. I'd suggest setting priv->kms in the > mdp4_kms_init() before calling modeset_init(). > >> --- >> >> v2: typo in Fixes commit reference >> >> drivers/gpu/drm/msm/dsi/dsi_manager.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c >> b/drivers/gpu/drm/msm/dsi/dsi_manager.c >> index 4ebfedc4a9ac..8114612b34b0 100644 >> --- a/drivers/gpu/drm/msm/dsi/dsi_manager.c >> +++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c >> @@ -230,7 +230,7 @@ void msm_dsi_manager_setup_encoder(int id) >> struct msm_kms *kms = priv->kms; >> struct drm_encoder *encoder = msm_dsi_get_encoder(msm_dsi); >> - if (encoder && kms->funcs->set_encoder_mode) >> + if (encoder && kms && kms->funcs->set_encoder_mode) >> kms->funcs->set_encoder_mode(kms, encoder, >> dsi_mgr_is_cmd_mode(msm_dsi)); >> } >> > > > -- > With best wishes > Dmitry
diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c index 4ebfedc4a9ac..8114612b34b0 100644 --- a/drivers/gpu/drm/msm/dsi/dsi_manager.c +++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c @@ -230,7 +230,7 @@ void msm_dsi_manager_setup_encoder(int id) struct msm_kms *kms = priv->kms; struct drm_encoder *encoder = msm_dsi_get_encoder(msm_dsi); - if (encoder && kms->funcs->set_encoder_mode) + if (encoder && kms && kms->funcs->set_encoder_mode) kms->funcs->set_encoder_mode(kms, encoder, dsi_mgr_is_cmd_mode(msm_dsi)); }
Without this patch boot ends at NULL ptr exception at msm_dsi_manager_setup_encoder on devices like Nexus 7 with MDP4 version 4.4. Fixes: 03436e3ec69c ("drm/msm/dsi: Move setup_encoder to modeset_init") Signed-off-by: David Heidelberg <david@ixit.cz> --- v2: typo in Fixes commit reference drivers/gpu/drm/msm/dsi/dsi_manager.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)