drm/sun4i: backend: Avoid counting YUV planes that use the frontend
authorPaul Kocialkowski <paul.kocialkowski@bootlin.com>
Fri, 23 Nov 2018 09:24:46 +0000 (10:24 +0100)
committerMaxime Ripard <maxime.ripard@bootlin.com>
Tue, 27 Nov 2018 08:51:54 +0000 (09:51 +0100)
Our hardware has a limited number of YUV planes (usually 1) that can be
supported using the backend only. However, YUV planes can also be
supported by the frontend and must then not be counted when checking for
that limitation.

Only count the YUV plane when the frontend is not used.

Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181123092515.2511-15-paul.kocialkowski@bootlin.com
drivers/gpu/drm/sun4i/sun4i_backend.c

index 52caf561da0e0930c2846f8bca91e5a30ddf9034..2a9569f16c8115554e96225120f75ac515480677 100644 (file)
@@ -542,6 +542,11 @@ static int sun4i_backend_atomic_check(struct sunxi_engine *engine,
                        DRM_DEBUG_DRIVER("Using the frontend for plane %d\n",
                                         plane->index);
                        num_frontend_planes++;
+               } else {
+                       if (fb->format->is_yuv) {
+                               DRM_DEBUG_DRIVER("Plane FB format is YUV\n");
+                               num_yuv_planes++;
+                       }
                }
 
                DRM_DEBUG_DRIVER("Plane FB format is %s\n",
@@ -550,11 +555,6 @@ static int sun4i_backend_atomic_check(struct sunxi_engine *engine,
                if (fb->format->has_alpha || (plane_state->alpha != DRM_BLEND_ALPHA_OPAQUE))
                        num_alpha_planes++;
 
-               if (fb->format->is_yuv) {
-                       DRM_DEBUG_DRIVER("Plane FB format is YUV\n");
-                       num_yuv_planes++;
-               }
-
                DRM_DEBUG_DRIVER("Plane zpos is %d\n",
                                 plane_state->normalized_zpos);