Skip to content

Commit 797f8fc

Browse files
committed
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 <[email protected]> Reviewed-by: Thomas Zimmermann <[email protected]> Signed-off-by: Ville Syrjälä <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent b4d3607 commit 797f8fc

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

drivers/gpu/drm/armada/armada_fb.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ static const struct drm_framebuffer_funcs armada_fb_funcs = {
1818
};
1919

2020
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)
2224
{
2325
struct armada_framebuffer *dfb;
2426
uint8_t format, config;
@@ -64,7 +66,7 @@ struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
6466
dfb->mod = config;
6567
dfb->fb.obj[0] = &obj->obj;
6668

67-
drm_helper_mode_fill_fb_struct(dev, &dfb->fb, NULL, mode);
69+
drm_helper_mode_fill_fb_struct(dev, &dfb->fb, info, mode);
6870

6971
ret = drm_framebuffer_init(dev, &dfb->fb, &armada_fb_funcs);
7072
if (ret) {
@@ -122,7 +124,7 @@ struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
122124
goto err_unref;
123125
}
124126

125-
dfb = armada_framebuffer_create(dev, mode, obj);
127+
dfb = armada_framebuffer_create(dev, info, mode, obj);
126128
if (IS_ERR(dfb)) {
127129
ret = PTR_ERR(dfb);
128130
goto err;

drivers/gpu/drm/armada/armada_fb.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ struct armada_framebuffer {
1717
#define drm_fb_obj(fb) drm_to_armada_gem((fb)->obj[0])
1818

1919
struct armada_framebuffer *armada_framebuffer_create(struct drm_device *,
20+
const struct drm_format_info *info,
2021
const struct drm_mode_fb_cmd2 *, struct armada_gem_object *);
2122
struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
2223
struct drm_file *dfile, const struct drm_format_info *info,

drivers/gpu/drm/armada/armada_fbdev.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,10 @@ int armada_fbdev_driver_fbdev_probe(struct drm_fb_helper *fbh,
7878
return -ENOMEM;
7979
}
8080

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);
8285

8386
/*
8487
* A reference is now held by the framebuffer object if

0 commit comments

Comments
 (0)