summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/arc
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2021-01-12 09:43:51 +0100
committerDaniel Vetter <daniel.vetter@ffwll.ch>2021-02-25 12:47:08 +0100
commitdaaddeb0c9c0313d41d7e6364fee52f734dfa1be (patch)
treeecf4520eed011fc1f58bf57fce80e1d589a64a29 /drivers/gpu/drm/arc
parentc9e88a2ab5b411b5b41940e9e5b4b15d647d64d6 (diff)
downloadlinux-daaddeb0c9c0313d41d7e6364fee52f734dfa1be.tar.bz2
drm/arc: Align with simple pipe helpers
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
Diffstat (limited to 'drivers/gpu/drm/arc')
-rw-r--r--drivers/gpu/drm/arc/arcpgu_crtc.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/gpu/drm/arc/arcpgu_crtc.c b/drivers/gpu/drm/arc/arcpgu_crtc.c
index 1cf29dea931e..15a2f8e074be 100644
--- a/drivers/gpu/drm/arc/arcpgu_crtc.c
+++ b/drivers/gpu/drm/arc/arcpgu_crtc.c
@@ -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,
};