diff options
Diffstat (limited to 'drivers/gpu/drm/meson/meson_crtc.c')
-rw-r--r-- | drivers/gpu/drm/meson/meson_crtc.c | 23 |
1 files changed, 2 insertions, 21 deletions
diff --git a/drivers/gpu/drm/meson/meson_crtc.c b/drivers/gpu/drm/meson/meson_crtc.c index 75d97f1b2e8f..4f5c67f70c4d 100644 --- a/drivers/gpu/drm/meson/meson_crtc.c +++ b/drivers/gpu/drm/meson/meson_crtc.c | |||
@@ -46,7 +46,6 @@ struct meson_crtc { | |||
46 | struct drm_crtc base; | 46 | struct drm_crtc base; |
47 | struct drm_pending_vblank_event *event; | 47 | struct drm_pending_vblank_event *event; |
48 | struct meson_drm *priv; | 48 | struct meson_drm *priv; |
49 | bool enabled; | ||
50 | }; | 49 | }; |
51 | #define to_meson_crtc(x) container_of(x, struct meson_crtc, base) | 50 | #define to_meson_crtc(x) container_of(x, struct meson_crtc, base) |
52 | 51 | ||
@@ -82,7 +81,8 @@ static const struct drm_crtc_funcs meson_crtc_funcs = { | |||
82 | 81 | ||
83 | }; | 82 | }; |
84 | 83 | ||
85 | static void meson_crtc_enable(struct drm_crtc *crtc) | 84 | static void meson_crtc_atomic_enable(struct drm_crtc *crtc, |
85 | struct drm_crtc_state *old_state) | ||
86 | { | 86 | { |
87 | struct meson_crtc *meson_crtc = to_meson_crtc(crtc); | 87 | struct meson_crtc *meson_crtc = to_meson_crtc(crtc); |
88 | struct drm_crtc_state *crtc_state = crtc->state; | 88 | struct drm_crtc_state *crtc_state = crtc->state; |
@@ -108,20 +108,6 @@ static void meson_crtc_enable(struct drm_crtc *crtc) | |||
108 | 108 | ||
109 | drm_crtc_vblank_on(crtc); | 109 | drm_crtc_vblank_on(crtc); |
110 | 110 | ||
111 | meson_crtc->enabled = true; | ||
112 | } | ||
113 | |||
114 | static void meson_crtc_atomic_enable(struct drm_crtc *crtc, | ||
115 | struct drm_crtc_state *old_state) | ||
116 | { | ||
117 | struct meson_crtc *meson_crtc = to_meson_crtc(crtc); | ||
118 | struct meson_drm *priv = meson_crtc->priv; | ||
119 | |||
120 | DRM_DEBUG_DRIVER("\n"); | ||
121 | |||
122 | if (!meson_crtc->enabled) | ||
123 | meson_crtc_enable(crtc); | ||
124 | |||
125 | priv->viu.osd1_enabled = true; | 111 | priv->viu.osd1_enabled = true; |
126 | } | 112 | } |
127 | 113 | ||
@@ -153,8 +139,6 @@ static void meson_crtc_atomic_disable(struct drm_crtc *crtc, | |||
153 | 139 | ||
154 | crtc->state->event = NULL; | 140 | crtc->state->event = NULL; |
155 | } | 141 | } |
156 | |||
157 | meson_crtc->enabled = false; | ||
158 | } | 142 | } |
159 | 143 | ||
160 | static void meson_crtc_atomic_begin(struct drm_crtc *crtc, | 144 | static void meson_crtc_atomic_begin(struct drm_crtc *crtc, |
@@ -163,9 +147,6 @@ static void meson_crtc_atomic_begin(struct drm_crtc *crtc, | |||
163 | struct meson_crtc *meson_crtc = to_meson_crtc(crtc); | 147 | struct meson_crtc *meson_crtc = to_meson_crtc(crtc); |
164 | unsigned long flags; | 148 | unsigned long flags; |
165 | 149 | ||
166 | if (crtc->state->enable && !meson_crtc->enabled) | ||
167 | meson_crtc_enable(crtc); | ||
168 | |||
169 | if (crtc->state->event) { | 150 | if (crtc->state->event) { |
170 | WARN_ON(drm_crtc_vblank_get(crtc) != 0); | 151 | WARN_ON(drm_crtc_vblank_get(crtc) != 0); |
171 | 152 | ||