drm/simpledrm: Compute linestride with drm_format_info_min_pitch()
authorThomas Zimmermann <tzimmermann@suse.de>
Thu, 22 Sep 2022 13:09:40 +0000 (15:09 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 27 Sep 2022 08:24:47 +0000 (10:24 +0200)
If not given, compute the stride with drm_format_info_min_pitch(). It's
the standard helper for this purpose.

Suggested-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Fixes: fd9e3169e42b ("drm/simpledrm: Compute framebuffer stride if not set")
Cc: Javier Martinez Canillas <javierm@redhat.com>
Cc: dri-devel@lists.freedesktop.org
Link: https://patchwork.freedesktop.org/patch/msgid/20220922130944.27138-2-tzimmermann@suse.de
drivers/gpu/drm/tiny/simpledrm.c

index ea5b3239a65918fc079c30946ee5ce188607bf2a..51d01e34d5eb5c2d462625e6a0cab5d1063ce018 100644 (file)
@@ -687,8 +687,11 @@ static struct simpledrm_device *simpledrm_device_create(struct drm_driver *drv,
                drm_err(dev, "no simplefb configuration found\n");
                return ERR_PTR(-ENODEV);
        }
-       if (!stride)
-               stride = DIV_ROUND_UP(drm_format_info_bpp(format, 0) * width, 8);
+       if (!stride) {
+               stride = drm_format_info_min_pitch(format, 0, width);
+               if (drm_WARN_ON(dev, !stride))
+                       return ERR_PTR(-EINVAL);
+       }
 
        sdev->mode = simpledrm_mode(width, height);
        sdev->format = format;