drm/arc: Align with simple pipe helpers
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 12 Jan 2021 08:43:51 +0000 (09:43 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 25 Feb 2021 11:47:08 +0000 (12:47 +0100)
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.

Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210112084358.2771527-8-daniel.vetter@ffwll.ch
drivers/gpu/drm/arc/arcpgu_crtc.c

index 1cf29dea931e40cb91a4f33546c0c7690534c479..15a2f8e074befa6033c23e94db372fe211a14be9 100644 (file)
@@ -74,10 +74,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,
@@ -111,7 +110,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);
 }
@@ -121,6 +120,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) |
@@ -140,7 +141,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,
 };