Message ID | 20200415074034.175360-47-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | devm_drm_dev_alloc, v2 | expand |
Hi Daniel. On Wed, Apr 15, 2020 at 09:40:21AM +0200, Daniel Vetter wrote: > Simple pipe helpers only have an enable and disable hook, no more > mode_set_nofb. Call it from our enable hook to align with that > conversions. > > Atomic helpers always call mode_set_nofb and enable together, so > there's no functional change here. Hmmm.... mode_set_nofb() is only called from drm_atomic_helper - crtc_set_mode() crtc_set_mode() is only called from drm_atomic_helper_commit_modeset_disables() drm_atomic_helper_commit_modeset_disables() is called from drm_atomic_helper_commit_tail() So it seems you are right. > > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > Cc: Alexey Brodkin <abrodkin@synopsys.com> Acked-by: Sam Ravnborg <sam@ravnborg.org> > --- > drivers/gpu/drm/arc/arcpgu_crtc.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/arc/arcpgu_crtc.c b/drivers/gpu/drm/arc/arcpgu_crtc.c > index 72719556debb..c7769edeefdf 100644 > --- a/drivers/gpu/drm/arc/arcpgu_crtc.c > +++ b/drivers/gpu/drm/arc/arcpgu_crtc.c > @@ -73,10 +73,9 @@ static enum drm_mode_status arc_pgu_crtc_mode_valid(struct drm_crtc *crtc, > return MODE_NOCLOCK; > } > > -static void arc_pgu_crtc_mode_set_nofb(struct drm_crtc *crtc) > +static void arc_pgu_mode_set(struct arcpgu_drm_private *arcpgu) > { > - struct arcpgu_drm_private *arcpgu = crtc_to_arcpgu_priv(crtc); > - struct drm_display_mode *m = &crtc->state->adjusted_mode; > + struct drm_display_mode *m = &arcpgu->pipe.crtc.state->adjusted_mode; > u32 val; > > arc_pgu_write(arcpgu, ARCPGU_REG_FMT, > @@ -110,7 +109,7 @@ static void arc_pgu_crtc_mode_set_nofb(struct drm_crtc *crtc) > arc_pgu_write(arcpgu, ARCPGU_REG_STRIDE, 0); > arc_pgu_write(arcpgu, ARCPGU_REG_START_SET, 1); > > - arc_pgu_set_pxl_fmt(crtc); > + arc_pgu_set_pxl_fmt(&arcpgu->pipe.crtc); > > clk_set_rate(arcpgu->clk, m->crtc_clock * 1000); > } > @@ -120,6 +119,8 @@ static void arc_pgu_crtc_atomic_enable(struct drm_crtc *crtc, > { > struct arcpgu_drm_private *arcpgu = crtc_to_arcpgu_priv(crtc); > > + arc_pgu_mode_set(arcpgu); > + > clk_prepare_enable(arcpgu->clk); > arc_pgu_write(arcpgu, ARCPGU_REG_CTRL, > arc_pgu_read(arcpgu, ARCPGU_REG_CTRL) | > @@ -139,7 +140,6 @@ static void arc_pgu_crtc_atomic_disable(struct drm_crtc *crtc, > > static const struct drm_crtc_helper_funcs arc_pgu_crtc_helper_funcs = { > .mode_valid = arc_pgu_crtc_mode_valid, > - .mode_set_nofb = arc_pgu_crtc_mode_set_nofb, > .atomic_enable = arc_pgu_crtc_atomic_enable, > .atomic_disable = arc_pgu_crtc_atomic_disable, > }; > -- > 2.25.1 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/drivers/gpu/drm/arc/arcpgu_crtc.c b/drivers/gpu/drm/arc/arcpgu_crtc.c index 72719556debb..c7769edeefdf 100644 --- a/drivers/gpu/drm/arc/arcpgu_crtc.c +++ b/drivers/gpu/drm/arc/arcpgu_crtc.c @@ -73,10 +73,9 @@ static enum drm_mode_status arc_pgu_crtc_mode_valid(struct drm_crtc *crtc, return MODE_NOCLOCK; } -static void arc_pgu_crtc_mode_set_nofb(struct drm_crtc *crtc) +static void arc_pgu_mode_set(struct arcpgu_drm_private *arcpgu) { - struct arcpgu_drm_private *arcpgu = crtc_to_arcpgu_priv(crtc); - struct drm_display_mode *m = &crtc->state->adjusted_mode; + struct drm_display_mode *m = &arcpgu->pipe.crtc.state->adjusted_mode; u32 val; arc_pgu_write(arcpgu, ARCPGU_REG_FMT, @@ -110,7 +109,7 @@ static void arc_pgu_crtc_mode_set_nofb(struct drm_crtc *crtc) arc_pgu_write(arcpgu, ARCPGU_REG_STRIDE, 0); arc_pgu_write(arcpgu, ARCPGU_REG_START_SET, 1); - arc_pgu_set_pxl_fmt(crtc); + arc_pgu_set_pxl_fmt(&arcpgu->pipe.crtc); clk_set_rate(arcpgu->clk, m->crtc_clock * 1000); } @@ -120,6 +119,8 @@ static void arc_pgu_crtc_atomic_enable(struct drm_crtc *crtc, { struct arcpgu_drm_private *arcpgu = crtc_to_arcpgu_priv(crtc); + arc_pgu_mode_set(arcpgu); + clk_prepare_enable(arcpgu->clk); arc_pgu_write(arcpgu, ARCPGU_REG_CTRL, arc_pgu_read(arcpgu, ARCPGU_REG_CTRL) | @@ -139,7 +140,6 @@ static void arc_pgu_crtc_atomic_disable(struct drm_crtc *crtc, static const struct drm_crtc_helper_funcs arc_pgu_crtc_helper_funcs = { .mode_valid = arc_pgu_crtc_mode_valid, - .mode_set_nofb = arc_pgu_crtc_mode_set_nofb, .atomic_enable = arc_pgu_crtc_atomic_enable, .atomic_disable = arc_pgu_crtc_atomic_disable, };
Simple pipe helpers only have an enable and disable hook, no more mode_set_nofb. Call it from our enable hook to align with that conversions. Atomic helpers always call mode_set_nofb and enable together, so there's no functional change here. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Cc: Alexey Brodkin <abrodkin@synopsys.com> --- drivers/gpu/drm/arc/arcpgu_crtc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)