Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/armada: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct()

Plumb the format info from .fb_create() all the way to
drm_helper_mode_fill_fb_struct() to avoid the redundant
lookup.

For the fbdev case a manual drm_get_format_info() lookup
is needed.

Cc: Russell King <linux@armlinux.org.uk>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250701090722.13645-11-ville.syrjala@linux.intel.com

+10 -4
+5 -3
drivers/gpu/drm/armada/armada_fb.c
··· 18 18 }; 19 19 20 20 struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev, 21 - const struct drm_mode_fb_cmd2 *mode, struct armada_gem_object *obj) 21 + const struct drm_format_info *info, 22 + const struct drm_mode_fb_cmd2 *mode, 23 + struct armada_gem_object *obj) 22 24 { 23 25 struct armada_framebuffer *dfb; 24 26 uint8_t format, config; ··· 66 64 dfb->mod = config; 67 65 dfb->fb.obj[0] = &obj->obj; 68 66 69 - drm_helper_mode_fill_fb_struct(dev, &dfb->fb, NULL, mode); 67 + drm_helper_mode_fill_fb_struct(dev, &dfb->fb, info, mode); 70 68 71 69 ret = drm_framebuffer_init(dev, &dfb->fb, &armada_fb_funcs); 72 70 if (ret) { ··· 124 122 goto err_unref; 125 123 } 126 124 127 - dfb = armada_framebuffer_create(dev, mode, obj); 125 + dfb = armada_framebuffer_create(dev, info, mode, obj); 128 126 if (IS_ERR(dfb)) { 129 127 ret = PTR_ERR(dfb); 130 128 goto err;
+1
drivers/gpu/drm/armada/armada_fb.h
··· 17 17 #define drm_fb_obj(fb) drm_to_armada_gem((fb)->obj[0]) 18 18 19 19 struct armada_framebuffer *armada_framebuffer_create(struct drm_device *, 20 + const struct drm_format_info *info, 20 21 const struct drm_mode_fb_cmd2 *, struct armada_gem_object *); 21 22 struct drm_framebuffer *armada_fb_create(struct drm_device *dev, 22 23 struct drm_file *dfile, const struct drm_format_info *info,
+4 -1
drivers/gpu/drm/armada/armada_fbdev.c
··· 78 78 return -ENOMEM; 79 79 } 80 80 81 - dfb = armada_framebuffer_create(dev, &mode, obj); 81 + dfb = armada_framebuffer_create(dev, 82 + drm_get_format_info(dev, mode.pixel_format, 83 + mode.modifier[0]), 84 + &mode, obj); 82 85 83 86 /* 84 87 * A reference is now held by the framebuffer object if