]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/sun4i: backend: Allow a NULL plane pointer to retrieve the format
authorMaxime Ripard <maxime.ripard@free-electrons.com>
Mon, 22 Jan 2018 09:25:17 +0000 (10:25 +0100)
committerMaxime Ripard <maxime.ripard@free-electrons.com>
Mon, 22 Jan 2018 14:14:49 +0000 (15:14 +0100)
The function converting the DRM format to its equivalent in the backend
registers was assuming that we were having a plane.

However, we might want to use that function when setting up a plane using
the frontend, in which case we will not have a plane associated to the
backend's layer. Yet, we still need to setup the format to the one output
by the frontend.

Test for NULL plane pointers before referencing them, so that we can work
around it.

Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Link: https://patchwork.freedesktop.org/patch/msgid/bfbe4c2e8525a7542526b648d59a8f3546e905f1.1516613040.git-series.maxime.ripard@free-electrons.com
drivers/gpu/drm/sun4i/sun4i_backend.c

index 095fddbaff027d3282355a66af69d26d433a553b..e016489f519e53d05d8f4416ef822a262a168a36 100644 (file)
@@ -93,7 +93,7 @@ void sun4i_backend_layer_enable(struct sun4i_backend *backend,
 static int sun4i_backend_drm_format_to_layer(struct drm_plane *plane,
                                             u32 format, u32 *mode)
 {
-       if ((plane->type == DRM_PLANE_TYPE_PRIMARY) &&
+       if (plane && (plane->type == DRM_PLANE_TYPE_PRIMARY) &&
            (format == DRM_FORMAT_ARGB8888))
                format = DRM_FORMAT_XRGB8888;