drm/ingenic: Handle errors of drm_atomic_get_plane_state
authorPaul Cercueil <paul@crapouillou.net>
Tue, 28 Jul 2020 15:16:40 +0000 (17:16 +0200)
committerPaul Cercueil <paul@crapouillou.net>
Wed, 29 Jul 2020 00:29:26 +0000 (02:29 +0200)
drm_atomic_get_plane_state() can return errors, so we need to handle
these.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20200728151641.26124-2-paul@crapouillou.net
drivers/gpu/drm/ingenic/ingenic-drm-drv.c

index ada990a..64eabab 100644 (file)
@@ -215,10 +215,17 @@ static int ingenic_drm_crtc_atomic_check(struct drm_crtc *crtc,
 
        if (priv->soc_info->has_osd) {
                f1_state = drm_atomic_get_plane_state(state->state, &priv->f1);
+               if (IS_ERR(f1_state))
+                       return PTR_ERR(f1_state);
+
                f0_state = drm_atomic_get_plane_state(state->state, &priv->f0);
+               if (IS_ERR(f0_state))
+                       return PTR_ERR(f0_state);
 
                if (IS_ENABLED(CONFIG_DRM_INGENIC_IPU) && priv->ipu_plane) {
                        ipu_state = drm_atomic_get_plane_state(state->state, priv->ipu_plane);
+                       if (IS_ERR(ipu_state))
+                               return PTR_ERR(ipu_state);
 
                        /* IPU and F1 planes cannot be enabled at the same time. */
                        if (f1_state->fb && ipu_state->fb) {