drm/sun4i: layer: Assign backend pointer before calling DRM helpers
authorChen-Yu Tsai <wens@csie.org>
Fri, 25 Jan 2019 03:23:07 +0000 (11:23 +0800)
committerMaxime Ripard <maxime.ripard@bootlin.com>
Fri, 25 Jan 2019 09:41:45 +0000 (10:41 +0100)
We might want to use the backend pointer from DRM callbacks that get
called within drm_universal_plane_init(), such as the
.format_mod_supported callback.

Move the assignment of the layer's backend pointer to right after the
structure is allocated.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190125032314.20915-5-wens@csie.org
drivers/gpu/drm/sun4i/sun4i_layer.c

index c5a999ca1d72a90e8debfd108fb3b13fdeec6272..95d4aaa51a5c08ccee14de10f7b3011d7155984a 100644 (file)
@@ -182,6 +182,8 @@ static struct sun4i_layer *sun4i_layer_init_one(struct drm_device *drm,
        if (!layer)
                return ERR_PTR(-ENOMEM);
 
+       layer->backend = backend;
+
        /* possible crtcs are set later */
        ret = drm_universal_plane_init(drm, &layer->plane, 0,
                                       &sun4i_backend_layer_funcs,
@@ -195,7 +197,6 @@ static struct sun4i_layer *sun4i_layer_init_one(struct drm_device *drm,
 
        drm_plane_helper_add(&layer->plane,
                             &sun4i_backend_layer_helper_funcs);
-       layer->backend = backend;
 
        drm_plane_create_alpha_property(&layer->plane);
        drm_plane_create_zpos_property(&layer->plane, 0, 0,