Skip to content

Commit a34cc7b

Browse files
committed
drm: Allow the caller to pass in the format info to drm_helper_mode_fill_fb_struct()
Soon all drivers should have the format info already available in the places where they call drm_helper_mode_fill_fb_struct(). Allow it to be passed along into drm_helper_mode_fill_fb_struct() instead of doing yet another redundant lookup. Start by always passing in NULL and still doing the extra lookup. The actual changes to avoid the lookup will follow. Done with cocci (with some manual fixups): @@ identifier dev, fb, mode_cmd; expression get_format_info; @@ void drm_helper_mode_fill_fb_struct(struct drm_device *dev, struct drm_framebuffer *fb, + const struct drm_format_info *info, const struct drm_mode_fb_cmd2 *mode_cmd) { ... - fb->format = get_format_info; + fb->format = info ?: get_format_info; ... } @@ identifier dev, fb, mode_cmd; @@ void drm_helper_mode_fill_fb_struct(struct drm_device *dev, struct drm_framebuffer *fb, + const struct drm_format_info *info, const struct drm_mode_fb_cmd2 *mode_cmd); @@ expression dev, fb, mode_cmd; @@ drm_helper_mode_fill_fb_struct(dev, fb + ,NULL ,mode_cmd); Cc: Alex Deucher <[email protected]> Cc: Liviu Dudau <[email protected]> Cc: Russell King <[email protected]> Cc: Inki Dae <[email protected]> Cc: Seung-Woo Kim <[email protected]> Cc: Kyungmin Park <[email protected]> Cc: Patrik Jakobsson <[email protected]> Cc: Rob Clark <[email protected]> Cc: Abhinav Kumar <[email protected]> Cc: Dmitry Baryshkov <[email protected]> Cc: Sean Paul <[email protected]> Cc: Marijn Suijten <[email protected]> Cc: Lyude Paul <[email protected]> Cc: Danilo Krummrich <[email protected]> Cc: Tomi Valkeinen <[email protected]> Cc: Thierry Reding <[email protected]> Cc: Mikko Perttunen <[email protected]> Cc: Gerd Hoffmann <[email protected]> Cc: Dmitry Osipenko <[email protected]> Cc: Gurchetan Singh <[email protected]> Cc: Chia-I Wu <[email protected]> Cc: Zack Rusin <[email protected]> Cc: Broadcom internal kernel review list <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Reviewed-by: Thomas Zimmermann <[email protected]> Reviewed-by: Laurent Pinchart <[email protected]> Reviewed-by: Dmitry Baryshkov <[email protected]> Reviewed-by: Liviu Dudau <[email protected]> Acked-by: Alex Deucher <[email protected]> Acked-by: Rodrigo Vivi <[email protected]> Signed-off-by: Ville Syrjälä <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent 81112ea commit a34cc7b

File tree

16 files changed

+21
-17
lines changed

16 files changed

+21
-17
lines changed

drivers/gpu/drm/amd/amdgpu/amdgpu_display.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1202,7 +1202,7 @@ static int amdgpu_display_gem_fb_verify_and_init(struct drm_device *dev,
12021202
int ret;
12031203

12041204
rfb->base.obj[0] = obj;
1205-
drm_helper_mode_fill_fb_struct(dev, &rfb->base, mode_cmd);
1205+
drm_helper_mode_fill_fb_struct(dev, &rfb->base, NULL, mode_cmd);
12061206
/* Verify that the modifier is supported. */
12071207
if (!drm_any_plane_has_format(dev, mode_cmd->pixel_format,
12081208
mode_cmd->modifier[0])) {

drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ komeda_fb_create(struct drm_device *dev, struct drm_file *file,
178178
return ERR_PTR(-EINVAL);
179179
}
180180

181-
drm_helper_mode_fill_fb_struct(dev, &kfb->base, mode_cmd);
181+
drm_helper_mode_fill_fb_struct(dev, &kfb->base, NULL, mode_cmd);
182182

183183
if (kfb->base.modifier)
184184
ret = komeda_fb_afbc_size_check(kfb, file, mode_cmd);

drivers/gpu/drm/armada/armada_fb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
6464
dfb->mod = config;
6565
dfb->fb.obj[0] = &obj->obj;
6666

67-
drm_helper_mode_fill_fb_struct(dev, &dfb->fb, mode);
67+
drm_helper_mode_fill_fb_struct(dev, &dfb->fb, NULL, mode);
6868

6969
ret = drm_framebuffer_init(dev, &dfb->fb, &armada_fb_funcs);
7070
if (ret) {

drivers/gpu/drm/drm_gem_framebuffer_helper.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ drm_gem_fb_init(struct drm_device *dev,
7575
unsigned int i;
7676
int ret;
7777

78-
drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
78+
drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
7979

8080
for (i = 0; i < num_planes; i++)
8181
fb->obj[i] = obj[i];

drivers/gpu/drm/drm_modeset_helper.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,20 +74,22 @@ EXPORT_SYMBOL(drm_helper_move_panel_connectors_to_head);
7474
* drm_helper_mode_fill_fb_struct - fill out framebuffer metadata
7575
* @dev: DRM device
7676
* @fb: drm_framebuffer object to fill out
77+
* @info: pixel format information
7778
* @mode_cmd: metadata from the userspace fb creation request
7879
*
7980
* This helper can be used in a drivers fb_create callback to pre-fill the fb's
8081
* metadata fields.
8182
*/
8283
void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
8384
struct drm_framebuffer *fb,
85+
const struct drm_format_info *info,
8486
const struct drm_mode_fb_cmd2 *mode_cmd)
8587
{
8688
int i;
8789

8890
fb->dev = dev;
89-
fb->format = drm_get_format_info(dev, mode_cmd->pixel_format,
90-
mode_cmd->modifier[0]);
91+
fb->format = info ? : drm_get_format_info(dev, mode_cmd->pixel_format,
92+
mode_cmd->modifier[0]);
9193
fb->width = mode_cmd->width;
9294
fb->height = mode_cmd->height;
9395
for (i = 0; i < 4; i++) {

drivers/gpu/drm/exynos/exynos_drm_fb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ exynos_drm_framebuffer_init(struct drm_device *dev,
7676
fb->obj[i] = &exynos_gem[i]->base;
7777
}
7878

79-
drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
79+
drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
8080

8181
ret = drm_framebuffer_init(dev, fb, &exynos_drm_fb_funcs);
8282
if (ret < 0) {

drivers/gpu/drm/gma500/framebuffer.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ static int psb_framebuffer_init(struct drm_device *dev,
4747
if (mode_cmd->pitches[0] & 63)
4848
return -EINVAL;
4949

50-
drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
50+
drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
5151
fb->obj[0] = obj;
5252
ret = drm_framebuffer_init(dev, fb, &psb_fb_funcs);
5353
if (ret) {

drivers/gpu/drm/i915/display/intel_fb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2254,7 +2254,7 @@ int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
22542254
goto err_frontbuffer_put;
22552255
}
22562256

2257-
drm_helper_mode_fill_fb_struct(display->drm, fb, mode_cmd);
2257+
drm_helper_mode_fill_fb_struct(display->drm, fb, NULL, mode_cmd);
22582258

22592259
for (i = 0; i < fb->format->num_planes; i++) {
22602260
unsigned int stride_alignment;

drivers/gpu/drm/msm/msm_fb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ static struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
227227
msm_fb->base.obj[i] = bos[i];
228228
}
229229

230-
drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
230+
drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
231231

232232
ret = drm_framebuffer_init(dev, fb, &msm_framebuffer_funcs);
233233
if (ret) {

drivers/gpu/drm/nouveau/nouveau_display.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ nouveau_framebuffer_new(struct drm_device *dev,
321321
if (!(fb = *pfb = kzalloc(sizeof(*fb), GFP_KERNEL)))
322322
return -ENOMEM;
323323

324-
drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
324+
drm_helper_mode_fill_fb_struct(dev, fb, NULL, mode_cmd);
325325
fb->obj[0] = gem;
326326

327327
ret = drm_framebuffer_init(dev, fb, &nouveau_framebuffer_funcs);

0 commit comments

Comments
 (0)