]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/nouveau/disp: Always accept linear modifier
authorJames Jones <jajones@nvidia.com>
Mon, 11 Aug 2025 22:00:16 +0000 (15:00 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 4 Sep 2025 13:31:55 +0000 (15:31 +0200)
commit e2fe0c54fb7401e6ecd3c10348519ab9e23bd639 upstream.

On some chipsets, which block-linear modifiers are
supported is format-specific. However, linear
modifiers are always be supported. The prior
modifier filtering logic was not accounting for
the linear case.

Cc: stable@vger.kernel.org
Fixes: c586f30bf74c ("drm/nouveau/kms: Add format mod prop to base/ovly/nvdisp")
Signed-off-by: James Jones <jajones@nvidia.com>
Link: https://lore.kernel.org/r/20250811220017.1337-3-jajones@nvidia.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/nouveau/dispnv50/wndw.c

index 7a2cceaee6e97fcdf9a9acb1949e340528ad9157..1199dfc1194c802e57af399e78ffdad64a455caa 100644 (file)
@@ -663,6 +663,10 @@ static bool nv50_plane_format_mod_supported(struct drm_plane *plane,
        struct nouveau_drm *drm = nouveau_drm(plane->dev);
        uint8_t i;
 
+       /* All chipsets can display all formats in linear layout */
+       if (modifier == DRM_FORMAT_MOD_LINEAR)
+               return true;
+
        if (drm->client.device.info.chipset < 0xc0) {
                const struct drm_format_info *info = drm_format_info(format);
                const uint8_t kind = (modifier >> 12) & 0xff;