drm/tegra: Don't set allow_fb_modifiers explicitly
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 13 Apr 2021 09:49:01 +0000 (11:49 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 15 Apr 2021 11:35:15 +0000 (13:35 +0200)
Since

commit 890880ddfdbe256083170866e49c87618b706ac7
Author: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Date:   Fri Jan 4 09:56:10 2019 +0100

    drm: Auto-set allow_fb_modifiers when given modifiers at plane init

this is done automatically as part of plane init, if drivers set the
modifier list correctly. Which is the case here.

It was slightly inconsistently though, since planes with only linear
modifier support haven't listed that explicitly. Fix that, and cc:
stable to allow userspace to rely on this. Again don't backport
further than where Paul's patch got added.

Cc: stable@vger.kernel.org # v5.1 +
Cc: Pekka Paalanen <pekka.paalanen@collabora.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Jonathan Hunter <jonathanh@nvidia.com>
Cc: linux-tegra@vger.kernel.org
Link: https://patchwork.freedesktop.org/patch/msgid/20210413094904.3736372-10-daniel.vetter@ffwll.ch
drivers/gpu/drm/tegra/dc.c
drivers/gpu/drm/tegra/drm.c

index da6afe7f0c7dcbed588a9e945f1ffe228c8e0bc4..fa9a91dba4b5a1f14f82061687d63ffce526c36a 100644 (file)
@@ -959,6 +959,11 @@ static const struct drm_plane_helper_funcs tegra_cursor_plane_helper_funcs = {
        .atomic_disable = tegra_cursor_atomic_disable,
 };
 
+static const uint64_t linear_modifiers[] = {
+       DRM_FORMAT_MOD_LINEAR,
+       DRM_FORMAT_MOD_INVALID
+};
+
 static struct drm_plane *tegra_dc_cursor_plane_create(struct drm_device *drm,
                                                      struct tegra_dc *dc)
 {
@@ -987,7 +992,7 @@ static struct drm_plane *tegra_dc_cursor_plane_create(struct drm_device *drm,
 
        err = drm_universal_plane_init(drm, &plane->base, possible_crtcs,
                                       &tegra_plane_funcs, formats,
-                                      num_formats, NULL,
+                                      num_formats, linear_modifiers,
                                       DRM_PLANE_TYPE_CURSOR, NULL);
        if (err < 0) {
                kfree(plane);
@@ -1106,7 +1111,8 @@ static struct drm_plane *tegra_dc_overlay_plane_create(struct drm_device *drm,
 
        err = drm_universal_plane_init(drm, &plane->base, possible_crtcs,
                                       &tegra_plane_funcs, formats,
-                                      num_formats, NULL, type, NULL);
+                                      num_formats, linear_modifiers,
+                                      type, NULL);
        if (err < 0) {
                kfree(plane);
                return ERR_PTR(err);
index e32c0dcf2762c78c6b20d04892b3925f58aaf17b..b2dc3c6fefcbe0a2398360b37f2a2e8d300e7059 100644 (file)
@@ -1126,8 +1126,6 @@ static int host1x_drm_probe(struct host1x_device *dev)
        drm->mode_config.max_width = 4096;
        drm->mode_config.max_height = 4096;
 
-       drm->mode_config.allow_fb_modifiers = true;
-
        drm->mode_config.normalize_zpos = true;
 
        drm->mode_config.funcs = &tegra_drm_mode_config_funcs;