Switch to using drm_driver_legacy_fb_format() instead of
drm_mode_legacy_fb_format() to use the same logic as for the
DRM_IOCTL_MODE_ADDFB ioctl when selecting a framebuffer format.

Signed-off-by: Frej Drejhammar <[email protected]>
Cc: Maarten Lankhorst <[email protected]>
Cc: Maxime Ripard <[email protected]>
Cc: Thomas Zimmermann <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>

---

This is an evolved version of the changes proposed in "drm: Don't
return unsupported formats in drm_mode_legacy_fb_format" [1] following
the suggestions of Thomas Zimmermann.

[1] https://lore.kernel.org/all/[email protected]/
---
 drivers/gpu/drm/drm_fb_helper.c     | 2 +-
 drivers/gpu/drm/drm_fbdev_dma.c     | 4 +++-
 drivers/gpu/drm/drm_fbdev_generic.c | 4 +++-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index d612133e2cf7..61c22e6c72af 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -1453,7 +1453,7 @@ static uint32_t drm_fb_helper_find_format(struct 
drm_fb_helper *fb_helper, const
         * the framebuffer emulation can only deal with such
         * formats, specifically RGB/BGA formats.
         */
-       format = drm_mode_legacy_fb_format(bpp, depth);
+       format = drm_driver_legacy_fb_format(dev, bpp, depth);
        if (!format)
                goto err;
 
diff --git a/drivers/gpu/drm/drm_fbdev_dma.c b/drivers/gpu/drm/drm_fbdev_dma.c
index 6c9427bb4053..f6c89b62b177 100644
--- a/drivers/gpu/drm/drm_fbdev_dma.c
+++ b/drivers/gpu/drm/drm_fbdev_dma.c
@@ -90,7 +90,9 @@ static int drm_fbdev_dma_helper_fb_probe(struct drm_fb_helper 
*fb_helper,
                    sizes->surface_width, sizes->surface_height,
                    sizes->surface_bpp);
 
-       format = drm_mode_legacy_fb_format(sizes->surface_bpp, 
sizes->surface_depth);
+       format = drm_driver_legacy_fb_format(dev,
+                                            sizes->surface_bpp,
+                                            sizes->surface_depth);
        buffer = drm_client_framebuffer_create(client, sizes->surface_width,
                                               sizes->surface_height, format);
        if (IS_ERR(buffer))
diff --git a/drivers/gpu/drm/drm_fbdev_generic.c 
b/drivers/gpu/drm/drm_fbdev_generic.c
index d647d89764cb..0a567f37d127 100644
--- a/drivers/gpu/drm/drm_fbdev_generic.c
+++ b/drivers/gpu/drm/drm_fbdev_generic.c
@@ -84,7 +84,9 @@ static int drm_fbdev_generic_helper_fb_probe(struct 
drm_fb_helper *fb_helper,
                    sizes->surface_width, sizes->surface_height,
                    sizes->surface_bpp);
 
-       format = drm_mode_legacy_fb_format(sizes->surface_bpp, 
sizes->surface_depth);
+       format = drm_driver_legacy_fb_format(dev,
+                                            sizes->surface_bpp,
+                                            sizes->surface_depth);
        buffer = drm_client_framebuffer_create(client, sizes->surface_width,
                                               sizes->surface_height, format);
        if (IS_ERR(buffer))
-- 
2.44.0

Reply via email to