diff options
Diffstat (limited to 'drivers/gpu/drm/arm/hdlcd_crtc.c')
-rw-r--r-- | drivers/gpu/drm/arm/hdlcd_crtc.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/drivers/gpu/drm/arm/hdlcd_crtc.c b/drivers/gpu/drm/arm/hdlcd_crtc.c index 8978d82159e5..e4d67b70244d 100644 --- a/drivers/gpu/drm/arm/hdlcd_crtc.c +++ b/drivers/gpu/drm/arm/hdlcd_crtc.c | |||
@@ -229,6 +229,8 @@ static const struct drm_crtc_helper_funcs hdlcd_crtc_helper_funcs = { | |||
229 | static int hdlcd_plane_atomic_check(struct drm_plane *plane, | 229 | static int hdlcd_plane_atomic_check(struct drm_plane *plane, |
230 | struct drm_plane_state *state) | 230 | struct drm_plane_state *state) |
231 | { | 231 | { |
232 | int i; | ||
233 | struct drm_crtc *crtc; | ||
232 | struct drm_crtc_state *crtc_state; | 234 | struct drm_crtc_state *crtc_state; |
233 | u32 src_h = state->src_h >> 16; | 235 | u32 src_h = state->src_h >> 16; |
234 | 236 | ||
@@ -238,20 +240,17 @@ static int hdlcd_plane_atomic_check(struct drm_plane *plane, | |||
238 | return -EINVAL; | 240 | return -EINVAL; |
239 | } | 241 | } |
240 | 242 | ||
241 | if (!state->fb || !state->crtc) | 243 | for_each_new_crtc_in_state(state->state, crtc, crtc_state, i) { |
242 | return 0; | 244 | /* we cannot disable the plane while the CRTC is active */ |
243 | 245 | if (!state->fb && crtc_state->active) | |
244 | crtc_state = drm_atomic_get_existing_crtc_state(state->state, | 246 | return -EINVAL; |
245 | state->crtc); | 247 | return drm_atomic_helper_check_plane_state(state, crtc_state, |
246 | if (!crtc_state) { | 248 | DRM_PLANE_HELPER_NO_SCALING, |
247 | DRM_DEBUG_KMS("Invalid crtc state\n"); | 249 | DRM_PLANE_HELPER_NO_SCALING, |
248 | return -EINVAL; | 250 | false, true); |
249 | } | 251 | } |
250 | 252 | ||
251 | return drm_atomic_helper_check_plane_state(state, crtc_state, | 253 | return 0; |
252 | DRM_PLANE_HELPER_NO_SCALING, | ||
253 | DRM_PLANE_HELPER_NO_SCALING, | ||
254 | false, true); | ||
255 | } | 254 | } |
256 | 255 | ||
257 | static void hdlcd_plane_atomic_update(struct drm_plane *plane, | 256 | static void hdlcd_plane_atomic_update(struct drm_plane *plane, |