Message ID | 20220218100403.7028-11-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm: Review of mode copies | expand |
On 18/02/2022 13:03, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > This on stack middle man mode looks entirely pointless. > Just duplicate the original mode directly. > > Cc: Rob Clark <robdclark@gmail.com> > Cc: Sean Paul <sean@poorly.run> > Cc: Abhinav Kumar <quic_abhinavk@quicinc.com> > Cc: linux-arm-msm@vger.kernel.org > Cc: freedreno@lists.freedesktop.org > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> I took a glance at the surrounding piece of code. The dp_connector_get_modes() calls dp_display_get_modes() in attempt to fill the dp_mode argument. However the dp_display_get_modes() function just calls dp_panel_get_modes(), which does not touch dp_mode argument since the commit ab205927592b ("drm/msm/dp: remove mode hard-coding in case of DP CTS") dating September 2020. I think we can drop this piece of code completely. > --- > drivers/gpu/drm/msm/dp/dp_drm.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/msm/dp/dp_drm.c b/drivers/gpu/drm/msm/dp/dp_drm.c > index d4d360d19eba..09188d02aa1e 100644 > --- a/drivers/gpu/drm/msm/dp/dp_drm.c > +++ b/drivers/gpu/drm/msm/dp/dp_drm.c > @@ -56,7 +56,7 @@ static int dp_connector_get_modes(struct drm_connector *connector) > int rc = 0; > struct msm_dp *dp; > struct dp_display_mode *dp_mode = NULL; > - struct drm_display_mode *m, drm_mode; > + struct drm_display_mode *m; > > if (!connector) > return 0; > @@ -82,13 +82,11 @@ static int dp_connector_get_modes(struct drm_connector *connector) > return rc; > } > if (dp_mode->drm_mode.clock) { /* valid DP mode */ > - memset(&drm_mode, 0x0, sizeof(drm_mode)); > - drm_mode_copy(&drm_mode, &dp_mode->drm_mode); > - m = drm_mode_duplicate(connector->dev, &drm_mode); > + m = drm_mode_duplicate(connector->dev, &dp_mode->drm_mode); > if (!m) { > DRM_ERROR("failed to add mode %ux%u\n", > - drm_mode.hdisplay, > - drm_mode.vdisplay); > + dp_mode->drm_mode.hdisplay, > + dp_mode->drm_mode.vdisplay); > kfree(dp_mode); > return 0; > }
diff --git a/drivers/gpu/drm/msm/dp/dp_drm.c b/drivers/gpu/drm/msm/dp/dp_drm.c index d4d360d19eba..09188d02aa1e 100644 --- a/drivers/gpu/drm/msm/dp/dp_drm.c +++ b/drivers/gpu/drm/msm/dp/dp_drm.c @@ -56,7 +56,7 @@ static int dp_connector_get_modes(struct drm_connector *connector) int rc = 0; struct msm_dp *dp; struct dp_display_mode *dp_mode = NULL; - struct drm_display_mode *m, drm_mode; + struct drm_display_mode *m; if (!connector) return 0; @@ -82,13 +82,11 @@ static int dp_connector_get_modes(struct drm_connector *connector) return rc; } if (dp_mode->drm_mode.clock) { /* valid DP mode */ - memset(&drm_mode, 0x0, sizeof(drm_mode)); - drm_mode_copy(&drm_mode, &dp_mode->drm_mode); - m = drm_mode_duplicate(connector->dev, &drm_mode); + m = drm_mode_duplicate(connector->dev, &dp_mode->drm_mode); if (!m) { DRM_ERROR("failed to add mode %ux%u\n", - drm_mode.hdisplay, - drm_mode.vdisplay); + dp_mode->drm_mode.hdisplay, + dp_mode->drm_mode.vdisplay); kfree(dp_mode); return 0; }