On Thu 26 Aug 00:13 PDT 2021, Stephen Boyd wrote: > Quoting Bjorn Andersson (2021-08-25 16:42:31) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c [..] > > @@ -203,8 +204,8 @@ static int dpu_kms_debugfs_init(struct msm_kms *kms, struct drm_minor *minor) > > dpu_debugfs_vbif_init(dpu_kms, entry); > > dpu_debugfs_core_irq_init(dpu_kms, entry); > > > > - if (priv->dp) > > - msm_dp_debugfs_init(priv->dp, minor); > > + for (i = 0; i < ARRAY_SIZE(priv->dp); i++) > > + msm_dp_debugfs_init(priv->dp[i], minor); > > Does this need the same if (!priv->dp) continue check like the other > loops over priv->dp? > [..] > > @@ -800,7 +809,8 @@ static int dpu_irq_postinstall(struct msm_kms *kms) > > if (!priv) > > return -EINVAL; > > > > - msm_dp_irq_postinstall(priv->dp); > > + for (i = 0; i < ARRAY_SIZE(priv->dp); i++) > > + msm_dp_irq_postinstall(priv->dp[i]); > > This one too? Or maybe those gained NULL pointer checks. > This already has a NULL check, that's why I added one to the adjacent msm_dp_debugfs_init() as well. > > > > return 0; > > } > > diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c [..] > > @@ -1194,6 +1230,10 @@ static int dp_display_probe(struct platform_device *pdev) > > if (!dp) > > return -ENOMEM; > > > > + dp->id = dp_display_get_id(pdev); > > Ah ok, it's signed for this error check. Maybe assign dp->id in the > function and return 0 instead of assigning it here? > dp_display_assign_id() > I like the fact that the "getter" doesn't have side effects, but making dp->id unsigned makes sense. So let's pay the price of a local signed variable here. > > + if (dp->id < 0) > > + return -EINVAL; > > + Thanks for the feedback, Bjorn