Skip to content

Commit 283da9e

Browse files
committed
drm/gem/afbc: Eliminate redundant drm_get_format_info()
Pass along the format info from .fb_create() to aliminate the redundant drm_get_format_info() calls from the afbc code. Cc: Sandy Huang <[email protected]> Cc: "Heiko Stübner" <[email protected]> Cc: Andy Yan <[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 04a5889 commit 283da9e

File tree

3 files changed

+8
-13
lines changed

3 files changed

+8
-13
lines changed

drivers/gpu/drm/drm_gem_framebuffer_helper.c

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -500,13 +500,9 @@ EXPORT_SYMBOL(drm_gem_fb_end_cpu_access);
500500
// TODO Drop this function and replace by drm_format_info_bpp() once all
501501
// DRM_FORMAT_* provide proper block info in drivers/gpu/drm/drm_fourcc.c
502502
static __u32 drm_gem_afbc_get_bpp(struct drm_device *dev,
503+
const struct drm_format_info *info,
503504
const struct drm_mode_fb_cmd2 *mode_cmd)
504505
{
505-
const struct drm_format_info *info;
506-
507-
info = drm_get_format_info(dev, mode_cmd->pixel_format,
508-
mode_cmd->modifier[0]);
509-
510506
switch (info->format) {
511507
case DRM_FORMAT_YUV420_8BIT:
512508
return 12;
@@ -520,6 +516,7 @@ static __u32 drm_gem_afbc_get_bpp(struct drm_device *dev,
520516
}
521517

522518
static int drm_gem_afbc_min_size(struct drm_device *dev,
519+
const struct drm_format_info *info,
523520
const struct drm_mode_fb_cmd2 *mode_cmd,
524521
struct drm_afbc_framebuffer *afbc_fb)
525522
{
@@ -560,7 +557,7 @@ static int drm_gem_afbc_min_size(struct drm_device *dev,
560557
afbc_fb->aligned_height = ALIGN(mode_cmd->height, h_alignment);
561558
afbc_fb->offset = mode_cmd->offsets[0];
562559

563-
bpp = drm_gem_afbc_get_bpp(dev, mode_cmd);
560+
bpp = drm_gem_afbc_get_bpp(dev, info, mode_cmd);
564561
if (!bpp) {
565562
drm_dbg_kms(dev, "Invalid AFBC bpp value: %d\n", bpp);
566563
return -EINVAL;
@@ -582,6 +579,7 @@ static int drm_gem_afbc_min_size(struct drm_device *dev,
582579
*
583580
* @dev: DRM device
584581
* @afbc_fb: afbc-specific framebuffer
582+
* @info: pixel format information
585583
* @mode_cmd: Metadata from the userspace framebuffer creation request
586584
* @afbc_fb: afbc framebuffer
587585
*
@@ -595,20 +593,16 @@ static int drm_gem_afbc_min_size(struct drm_device *dev,
595593
* Zero on success or a negative error value on failure.
596594
*/
597595
int drm_gem_fb_afbc_init(struct drm_device *dev,
596+
const struct drm_format_info *info,
598597
const struct drm_mode_fb_cmd2 *mode_cmd,
599598
struct drm_afbc_framebuffer *afbc_fb)
600599
{
601-
const struct drm_format_info *info;
602600
struct drm_gem_object **objs;
603601
int ret;
604602

605603
objs = afbc_fb->base.obj;
606-
info = drm_get_format_info(dev, mode_cmd->pixel_format,
607-
mode_cmd->modifier[0]);
608-
if (!info)
609-
return -EINVAL;
610604

611-
ret = drm_gem_afbc_min_size(dev, mode_cmd, afbc_fb);
605+
ret = drm_gem_afbc_min_size(dev, info, mode_cmd, afbc_fb);
612606
if (ret < 0)
613607
return ret;
614608

drivers/gpu/drm/rockchip/rockchip_drm_fb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ rockchip_fb_create(struct drm_device *dev, struct drm_file *file,
4949
}
5050

5151
if (drm_is_afbc(mode_cmd->modifier[0])) {
52-
ret = drm_gem_fb_afbc_init(dev, mode_cmd, afbc_fb);
52+
ret = drm_gem_fb_afbc_init(dev, info, mode_cmd, afbc_fb);
5353
if (ret) {
5454
drm_framebuffer_put(&afbc_fb->base);
5555
return ERR_PTR(ret);

include/drm/drm_gem_framebuffer_helper.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ void drm_gem_fb_end_cpu_access(struct drm_framebuffer *fb, enum dma_data_directi
5252
(((modifier) & AFBC_VENDOR_AND_TYPE_MASK) == DRM_FORMAT_MOD_ARM_AFBC(0))
5353

5454
int drm_gem_fb_afbc_init(struct drm_device *dev,
55+
const struct drm_format_info *info,
5556
const struct drm_mode_fb_cmd2 *mode_cmd,
5657
struct drm_afbc_framebuffer *afbc_fb);
5758

0 commit comments

Comments
 (0)