mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
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
This commit is contained in:
parent
b4d360701b
commit
797f8fc4cc
|
|
@ -18,7 +18,9 @@ static const struct drm_framebuffer_funcs armada_fb_funcs = {
|
|||
};
|
||||
|
||||
struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
|
||||
const struct drm_mode_fb_cmd2 *mode, struct armada_gem_object *obj)
|
||||
const struct drm_format_info *info,
|
||||
const struct drm_mode_fb_cmd2 *mode,
|
||||
struct armada_gem_object *obj)
|
||||
{
|
||||
struct armada_framebuffer *dfb;
|
||||
uint8_t format, config;
|
||||
|
|
@ -64,7 +66,7 @@ struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
|
|||
dfb->mod = config;
|
||||
dfb->fb.obj[0] = &obj->obj;
|
||||
|
||||
drm_helper_mode_fill_fb_struct(dev, &dfb->fb, NULL, mode);
|
||||
drm_helper_mode_fill_fb_struct(dev, &dfb->fb, info, mode);
|
||||
|
||||
ret = drm_framebuffer_init(dev, &dfb->fb, &armada_fb_funcs);
|
||||
if (ret) {
|
||||
|
|
@ -122,7 +124,7 @@ struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
|
|||
goto err_unref;
|
||||
}
|
||||
|
||||
dfb = armada_framebuffer_create(dev, mode, obj);
|
||||
dfb = armada_framebuffer_create(dev, info, mode, obj);
|
||||
if (IS_ERR(dfb)) {
|
||||
ret = PTR_ERR(dfb);
|
||||
goto err;
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ struct armada_framebuffer {
|
|||
#define drm_fb_obj(fb) drm_to_armada_gem((fb)->obj[0])
|
||||
|
||||
struct armada_framebuffer *armada_framebuffer_create(struct drm_device *,
|
||||
const struct drm_format_info *info,
|
||||
const struct drm_mode_fb_cmd2 *, struct armada_gem_object *);
|
||||
struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
|
||||
struct drm_file *dfile, const struct drm_format_info *info,
|
||||
|
|
|
|||
|
|
@ -78,7 +78,10 @@ int armada_fbdev_driver_fbdev_probe(struct drm_fb_helper *fbh,
|
|||
return -ENOMEM;
|
||||
}
|
||||
|
||||
dfb = armada_framebuffer_create(dev, &mode, obj);
|
||||
dfb = armada_framebuffer_create(dev,
|
||||
drm_get_format_info(dev, mode.pixel_format,
|
||||
mode.modifier[0]),
|
||||
&mode, obj);
|
||||
|
||||
/*
|
||||
* A reference is now held by the framebuffer object if
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user