[PATCH v7 3/3] drm: Switch to %p4cc format modifier

Andy Shevchenko andriy.shevchenko at linux.intel.com
Mon Feb 15 13:41:14 UTC 2021


On Mon, Feb 15, 2021 at 01:40:30PM +0200, Sakari Ailus wrote:
> Switch DRM drivers from drm_get_format_name() to %p4cc. This gets rid of a
> large number of temporary variables at the same time.

What a nice clean up!
Reviewed-by: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
after addressing nit-picks below.

Side note (no need to implement esp. right now): it seems often it's coupled
with modifier, would be nice to have them together that %p4ccM or so can do it
in one go.

> Signed-off-by: Sakari Ailus <sakari.ailus at linux.intel.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/dce_v10_0.c        |  5 ++--
>  drivers/gpu/drm/amd/amdgpu/dce_v11_0.c        |  5 ++--
>  drivers/gpu/drm/amd/amdgpu/dce_v6_0.c         |  5 ++--
>  drivers/gpu/drm/amd/amdgpu/dce_v8_0.c         |  5 ++--
>  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  5 ++--
>  .../arm/display/komeda/komeda_format_caps.h   | 11 --------
>  .../arm/display/komeda/komeda_framebuffer.c   |  4 +--
>  .../gpu/drm/arm/display/komeda/komeda_plane.c |  6 ++---
>  drivers/gpu/drm/arm/malidp_mw.c               |  7 ++----
>  drivers/gpu/drm/drm_atomic.c                  |  8 ++----
>  drivers/gpu/drm/drm_crtc.c                    |  7 ++----
>  drivers/gpu/drm/drm_fourcc.c                  | 25 -------------------
>  drivers/gpu/drm/drm_framebuffer.c             | 11 +++-----
>  drivers/gpu/drm/drm_mipi_dbi.c                |  5 ++--
>  drivers/gpu/drm/drm_plane.c                   |  8 ++----
>  .../gpu/drm/hisilicon/kirin/kirin_drm_ade.c   |  5 ++--
>  drivers/gpu/drm/i915/display/intel_display.c  | 14 +++--------
>  .../drm/i915/display/intel_display_debugfs.c  | 19 ++++++--------
>  drivers/gpu/drm/i915/display/intel_sprite.c   |  6 ++---
>  drivers/gpu/drm/mcde/mcde_display.c           |  6 ++---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c      |  6 ++---
>  drivers/gpu/drm/nouveau/nouveau_display.c     |  9 +++----
>  drivers/gpu/drm/radeon/atombios_crtc.c        | 10 +++-----
>  drivers/gpu/drm/sun4i/sun4i_backend.c         |  6 ++---
>  drivers/gpu/drm/vkms/vkms_writeback.c         |  7 ++----
>  drivers/gpu/drm/vmwgfx/vmwgfx_kms.c           | 15 +++++------
>  include/drm/drm_fourcc.h                      |  1 -
>  27 files changed, 64 insertions(+), 157 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
> index 7944781e1086..ea825b4f8ee8 100644
> --- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
> @@ -1862,7 +1862,6 @@ static int dce_v10_0_crtc_do_set_base(struct drm_crtc *crtc,
>  	u32 tmp, viewport_w, viewport_h;
>  	int r;
>  	bool bypass_lut = false;
> -	struct drm_format_name_buf format_name;
>  
>  	/* no fb bound */
>  	if (!atomic && !crtc->primary->fb) {
> @@ -1981,8 +1980,8 @@ static int dce_v10_0_crtc_do_set_base(struct drm_crtc *crtc,
>  #endif
>  		break;
>  	default:
> -		DRM_ERROR("Unsupported screen format %s\n",
> -		          drm_get_format_name(target_fb->format->format, &format_name));
> +		DRM_ERROR("Unsupported screen format %p4cc\n",
> +			  &target_fb->format->format);
>  		return -EINVAL;
>  	}
>  
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
> index 1b6ff0470011..a360a6dec198 100644
> --- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
> @@ -1904,7 +1904,6 @@ static int dce_v11_0_crtc_do_set_base(struct drm_crtc *crtc,
>  	u32 tmp, viewport_w, viewport_h;
>  	int r;
>  	bool bypass_lut = false;
> -	struct drm_format_name_buf format_name;
>  
>  	/* no fb bound */
>  	if (!atomic && !crtc->primary->fb) {
> @@ -2023,8 +2022,8 @@ static int dce_v11_0_crtc_do_set_base(struct drm_crtc *crtc,
>  #endif
>  		break;
>  	default:
> -		DRM_ERROR("Unsupported screen format %s\n",
> -		          drm_get_format_name(target_fb->format->format, &format_name));
> +		DRM_ERROR("Unsupported screen format %p4cc\n",
> +			  &target_fb->format->format);
>  		return -EINVAL;
>  	}
>  
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
> index 83a88385b762..ef124ac853b6 100644
> --- a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
> @@ -1820,7 +1820,6 @@ static int dce_v6_0_crtc_do_set_base(struct drm_crtc *crtc,
>  	u32 viewport_w, viewport_h;
>  	int r;
>  	bool bypass_lut = false;
> -	struct drm_format_name_buf format_name;
>  
>  	/* no fb bound */
>  	if (!atomic && !crtc->primary->fb) {
> @@ -1929,8 +1928,8 @@ static int dce_v6_0_crtc_do_set_base(struct drm_crtc *crtc,
>  #endif
>  		break;
>  	default:
> -		DRM_ERROR("Unsupported screen format %s\n",
> -		          drm_get_format_name(target_fb->format->format, &format_name));
> +		DRM_ERROR("Unsupported screen format %p4cc\n",
> +			  &target_fb->format->format);
>  		return -EINVAL;
>  	}
>  
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
> index 224b30214427..c98650183828 100644
> --- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
> @@ -1791,7 +1791,6 @@ static int dce_v8_0_crtc_do_set_base(struct drm_crtc *crtc,
>  	u32 viewport_w, viewport_h;
>  	int r;
>  	bool bypass_lut = false;
> -	struct drm_format_name_buf format_name;
>  
>  	/* no fb bound */
>  	if (!atomic && !crtc->primary->fb) {
> @@ -1902,8 +1901,8 @@ static int dce_v8_0_crtc_do_set_base(struct drm_crtc *crtc,
>  #endif
>  		break;
>  	default:
> -		DRM_ERROR("Unsupported screen format %s\n",
> -		          drm_get_format_name(target_fb->format->format, &format_name));
> +		DRM_ERROR("Unsupported screen format %p4cc\n",
> +			  &target_fb->format->format);
>  		return -EINVAL;
>  	}
>  
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index c6da89df055d..fcef3bf14952 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -4465,7 +4465,6 @@ fill_dc_plane_info_and_addr(struct amdgpu_device *adev,
>  	const struct drm_framebuffer *fb = plane_state->fb;
>  	const struct amdgpu_framebuffer *afb =
>  		to_amdgpu_framebuffer(plane_state->fb);
> -	struct drm_format_name_buf format_name;
>  	int ret;
>  
>  	memset(plane_info, 0, sizeof(*plane_info));
> @@ -4513,8 +4512,8 @@ fill_dc_plane_info_and_addr(struct amdgpu_device *adev,
>  		break;
>  	default:
>  		DRM_ERROR(
> -			"Unsupported screen format %s\n",
> -			drm_get_format_name(fb->format->format, &format_name));
> +			"Unsupported screen format %p4cc\n",
> +			&fb->format->format);
>  		return -EINVAL;
>  	}
>  
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_format_caps.h b/drivers/gpu/drm/arm/display/komeda/komeda_format_caps.h
> index 32273cf18f7c..cf7a183f773d 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_format_caps.h
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_format_caps.h
> @@ -82,17 +82,6 @@ struct komeda_format_caps_table {
>  
>  extern u64 komeda_supported_modifiers[];
>  
> -static inline const char *komeda_get_format_name(u32 fourcc, u64 modifier)
> -{
> -	struct drm_format_name_buf buf;
> -	static char name[64];
> -
> -	snprintf(name, sizeof(name), "%s with modifier: 0x%llx.",
> -		 drm_get_format_name(fourcc, &buf), modifier);
> -
> -	return name;
> -}
> -
>  const struct komeda_format_caps *
>  komeda_get_format_caps(struct komeda_format_caps_table *table,
>  		       u32 fourcc, u64 modifier);
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
> index 170f9dc8ec19..3c372d2deb0a 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
> @@ -276,8 +276,8 @@ bool komeda_fb_is_layer_supported(struct komeda_fb *kfb, u32 layer_type,
>  	supported = komeda_format_mod_supported(&mdev->fmt_tbl, layer_type,
>  						fourcc, modifier, rot);
>  	if (!supported)
> -		DRM_DEBUG_ATOMIC("Layer TYPE: %d doesn't support fb FMT: %s.\n",
> -			layer_type, komeda_get_format_name(fourcc, modifier));
> +		DRM_DEBUG_ATOMIC("Layer TYPE: %d doesn't support fb FMT: %p4cc with modifier: 0x%llx.\n",
> +				 layer_type, &fourcc, modifier);
>  
>  	return supported;
>  }
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_plane.c b/drivers/gpu/drm/arm/display/komeda/komeda_plane.c
> index 98e915e325dd..2d5066ea270c 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_plane.c
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_plane.c
> @@ -49,10 +49,8 @@ komeda_plane_init_data_flow(struct drm_plane_state *st,
>  
>  	dflow->rot = drm_rotation_simplify(st->rotation, caps->supported_rots);
>  	if (!has_bits(dflow->rot, caps->supported_rots)) {
> -		DRM_DEBUG_ATOMIC("rotation(0x%x) isn't supported by %s.\n",
> -				 dflow->rot,
> -				 komeda_get_format_name(caps->fourcc,
> -							fb->modifier));
> +		DRM_DEBUG_ATOMIC("rotation(0x%x) isn't supported by %p4cc with modifier: 0x%llx.\n",
> +				 dflow->rot, &caps->fourcc, fb->modifier);
>  		return -EINVAL;
>  	}
>  
> diff --git a/drivers/gpu/drm/arm/malidp_mw.c b/drivers/gpu/drm/arm/malidp_mw.c
> index 7d0e7b031e44..f5847a79dd7e 100644
> --- a/drivers/gpu/drm/arm/malidp_mw.c
> +++ b/drivers/gpu/drm/arm/malidp_mw.c
> @@ -151,11 +151,8 @@ malidp_mw_encoder_atomic_check(struct drm_encoder *encoder,
>  		malidp_hw_get_format_id(&malidp->dev->hw->map, SE_MEMWRITE,
>  					fb->format->format, !!fb->modifier);
>  	if (mw_state->format == MALIDP_INVALID_FORMAT_ID) {
> -		struct drm_format_name_buf format_name;
> -
> -		DRM_DEBUG_KMS("Invalid pixel format %s\n",
> -			      drm_get_format_name(fb->format->format,
> -						  &format_name));
> +		DRM_DEBUG_KMS("Invalid pixel format %p4cc\n",
> +			      &fb->format->format);
>  		return -EINVAL;
>  	}
>  
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index dda60051854b..ce2ee6b8bf34 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -578,13 +578,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  	ret = drm_plane_check_pixel_format(plane, fb->format->format,
>  					   fb->modifier);
>  	if (ret) {
> -		struct drm_format_name_buf format_name;
> -
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
> +		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid pixel format %p4cc, modifier 0x%llx\n",
>  				 plane->base.id, plane->name,
> -				 drm_get_format_name(fb->format->format,
> -						     &format_name),
> -				 fb->modifier);
> +				 &fb->format->format, fb->modifier);
>  		return ret;
>  	}
>  
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index 74090fc3aa55..9ba2d3640b47 100644
> --- a/drivers/gpu/drm/drm_crtc.c
> +++ b/drivers/gpu/drm/drm_crtc.c
> @@ -663,11 +663,8 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
>  							   fb->format->format,
>  							   fb->modifier);
>  			if (ret) {
> -				struct drm_format_name_buf format_name;
> -
> -				DRM_DEBUG_KMS("Invalid pixel format %s, modifier 0x%llx\n",
> -					      drm_get_format_name(fb->format->format,
> -								  &format_name),
> +				DRM_DEBUG_KMS("Invalid pixel format %p4cc, modifier 0x%llx\n",
> +					      &fb->format->format,
>  					      fb->modifier);
>  				goto out;
>  			}
> diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c
> index 03262472059c..5cf45aa6eedc 100644
> --- a/drivers/gpu/drm/drm_fourcc.c
> +++ b/drivers/gpu/drm/drm_fourcc.c
> @@ -30,11 +30,6 @@
>  #include <drm/drm_device.h>
>  #include <drm/drm_fourcc.h>
>  
> -static char printable_char(int c)
> -{
> -	return isascii(c) && isprint(c) ? c : '?';
> -}

If it goes as an ABI than your dot is incompatible with this and '?' should be
used instead in the patch 1. And I bend towards suggested '?' rather than '.'.

Also it means that you probably would need different specifiers for full and
short formats.

>  /**
>   * drm_mode_legacy_fb_format - compute drm fourcc code from legacy description
>   * @bpp: bits per pixels
> @@ -130,26 +125,6 @@ uint32_t drm_driver_legacy_fb_format(struct drm_device *dev,
>  }
>  EXPORT_SYMBOL(drm_driver_legacy_fb_format);
>  
> -/**
> - * drm_get_format_name - fill a string with a drm fourcc format's name
> - * @format: format to compute name of
> - * @buf: caller-supplied buffer
> - */
> -const char *drm_get_format_name(uint32_t format, struct drm_format_name_buf *buf)
> -{
> -	snprintf(buf->str, sizeof(buf->str),
> -		 "%c%c%c%c %s-endian (0x%08x)",
> -		 printable_char(format & 0xff),
> -		 printable_char((format >> 8) & 0xff),
> -		 printable_char((format >> 16) & 0xff),
> -		 printable_char((format >> 24) & 0x7f),
> -		 format & DRM_FORMAT_BIG_ENDIAN ? "big" : "little",
> -		 format);
> -
> -	return buf->str;
> -}
> -EXPORT_SYMBOL(drm_get_format_name);
> -
>  /*
>   * Internal function to query information for a given format. See
>   * drm_format_info() for the public API.
> diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c
> index aca62ed51e82..4d01464b6f95 100644
> --- a/drivers/gpu/drm/drm_framebuffer.c
> +++ b/drivers/gpu/drm/drm_framebuffer.c
> @@ -177,11 +177,8 @@ static int framebuffer_check(struct drm_device *dev,
>  
>  	/* check if the format is supported at all */
>  	if (!__drm_format_info(r->pixel_format)) {
> -		struct drm_format_name_buf format_name;
> -
> -		DRM_DEBUG_KMS("bad framebuffer format %s\n",
> -			      drm_get_format_name(r->pixel_format,
> -						  &format_name));
> +		DRM_DEBUG_KMS("bad framebuffer format %p4cc\n",
> +			      &r->pixel_format);
>  		return -EINVAL;
>  	}
>  
> @@ -1160,14 +1157,12 @@ EXPORT_SYMBOL(drm_framebuffer_plane_height);
>  void drm_framebuffer_print_info(struct drm_printer *p, unsigned int indent,
>  				const struct drm_framebuffer *fb)
>  {
> -	struct drm_format_name_buf format_name;
>  	unsigned int i;
>  
>  	drm_printf_indent(p, indent, "allocated by = %s\n", fb->comm);
>  	drm_printf_indent(p, indent, "refcount=%u\n",
>  			  drm_framebuffer_read_refcount(fb));
> -	drm_printf_indent(p, indent, "format=%s\n",
> -			  drm_get_format_name(fb->format->format, &format_name));
> +	drm_printf_indent(p, indent, "format=%p4cc\n", &fb->format->format);
>  	drm_printf_indent(p, indent, "modifier=0x%llx\n", fb->modifier);
>  	drm_printf_indent(p, indent, "size=%ux%u\n", fb->width, fb->height);
>  	drm_printf_indent(p, indent, "layers:\n");
> diff --git a/drivers/gpu/drm/drm_mipi_dbi.c b/drivers/gpu/drm/drm_mipi_dbi.c
> index 230c4fd7131c..43a9b739bba7 100644
> --- a/drivers/gpu/drm/drm_mipi_dbi.c
> +++ b/drivers/gpu/drm/drm_mipi_dbi.c
> @@ -203,7 +203,6 @@ int mipi_dbi_buf_copy(void *dst, struct drm_framebuffer *fb,
>  	struct drm_gem_object *gem = drm_gem_fb_get_obj(fb, 0);
>  	struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(gem);
>  	struct dma_buf_attachment *import_attach = gem->import_attach;
> -	struct drm_format_name_buf format_name;
>  	void *src = cma_obj->vaddr;
>  	int ret = 0;
>  
> @@ -225,8 +224,8 @@ int mipi_dbi_buf_copy(void *dst, struct drm_framebuffer *fb,
>  		drm_fb_xrgb8888_to_rgb565(dst, src, fb, clip, swap);
>  		break;
>  	default:
> -		drm_err_once(fb->dev, "Format is not supported: %s\n",
> -			     drm_get_format_name(fb->format->format, &format_name));
> +		drm_err_once(fb->dev, "Format is not supported: %p4cc\n",
> +			     &fb->format->format);
>  		return -EINVAL;
>  	}
>  
> diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
> index a0cb746bcb0a..4d8429917d7d 100644
> --- a/drivers/gpu/drm/drm_plane.c
> +++ b/drivers/gpu/drm/drm_plane.c
> @@ -623,12 +623,8 @@ static int __setplane_check(struct drm_plane *plane,
>  	ret = drm_plane_check_pixel_format(plane, fb->format->format,
>  					   fb->modifier);
>  	if (ret) {
> -		struct drm_format_name_buf format_name;
> -
> -		DRM_DEBUG_KMS("Invalid pixel format %s, modifier 0x%llx\n",
> -			      drm_get_format_name(fb->format->format,
> -						  &format_name),
> -			      fb->modifier);
> +		DRM_DEBUG_KMS("Invalid pixel format %p4cc, modifier 0x%llx\n",
> +			      &fb->format->format, fb->modifier);
>  		return ret;
>  	}
>  
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index aa6c53f88f7c..70aa6c8844c0 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -549,16 +549,15 @@ static void ade_rdma_set(void __iomem *base, struct drm_framebuffer *fb,
>  			 u32 ch, u32 y, u32 in_h, u32 fmt)
>  {
>  	struct drm_gem_cma_object *obj = drm_fb_cma_get_gem_obj(fb, 0);
> -	struct drm_format_name_buf format_name;
>  	u32 reg_ctrl, reg_addr, reg_size, reg_stride, reg_space, reg_en;
>  	u32 stride = fb->pitches[0];
>  	u32 addr = (u32)obj->paddr + y * stride;
>  
>  	DRM_DEBUG_DRIVER("rdma%d: (y=%d, height=%d), stride=%d, paddr=0x%x\n",
>  			 ch + 1, y, in_h, stride, (u32)obj->paddr);
> -	DRM_DEBUG_DRIVER("addr=0x%x, fb:%dx%d, pixel_format=%d(%s)\n",
> +	DRM_DEBUG_DRIVER("addr=0x%x, fb:%dx%d, pixel_format=%d(%p4cc)\n",
>  			 addr, fb->width, fb->height, fmt,
> -			 drm_get_format_name(fb->format->format, &format_name));
> +			 &fb->format->format);
>  
>  	/* get reg offset */
>  	reg_ctrl = RD_CH_CTRL(ch);
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 53a00cf3fa32..7981627390a0 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -13319,7 +13319,6 @@ static void intel_dump_plane_state(const struct intel_plane_state *plane_state)
>  	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *i915 = to_i915(plane->base.dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
> -	struct drm_format_name_buf format_name;
>  
>  	if (!fb) {
>  		drm_dbg_kms(&i915->drm,
> @@ -13330,10 +13329,9 @@ static void intel_dump_plane_state(const struct intel_plane_state *plane_state)
>  	}
>  
>  	drm_dbg_kms(&i915->drm,
> -		    "[PLANE:%d:%s] fb: [FB:%d] %ux%u format = %s modifier = 0x%llx, visible: %s\n",
> +		    "[PLANE:%d:%s] fb: [FB:%d] %ux%u format = %p4cc modifier = 0x%llx, visible: %s\n",
>  		    plane->base.base.id, plane->base.name,
> -		    fb->base.id, fb->width, fb->height,
> -		    drm_get_format_name(fb->format->format, &format_name),
> +		    fb->base.id, fb->width, fb->height, &fb->format->format,
>  		    fb->modifier, yesno(plane_state->uapi.visible));
>  	drm_dbg_kms(&i915->drm, "\trotation: 0x%x, scaler: %d\n",
>  		    plane_state->hw.rotation, plane_state->scaler_id);
> @@ -17927,13 +17925,9 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
>  	if (!drm_any_plane_has_format(&dev_priv->drm,
>  				      mode_cmd->pixel_format,
>  				      mode_cmd->modifier[0])) {
> -		struct drm_format_name_buf format_name;
> -
>  		drm_dbg_kms(&dev_priv->drm,
> -			    "unsupported pixel format %s / modifier 0x%llx\n",
> -			    drm_get_format_name(mode_cmd->pixel_format,
> -						&format_name),
> -			    mode_cmd->modifier[0]);
> +			    "unsupported pixel format %p4cc / modifier 0x%llx\n",
> +			    &mode_cmd->pixel_format, mode_cmd->modifier[0]);
>  		goto err;
>  	}
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> index ca41e8c00ad7..a5c9fe2e56b3 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> @@ -771,21 +771,21 @@ static void intel_plane_uapi_info(struct seq_file *m, struct intel_plane *plane)
>  	const struct intel_plane_state *plane_state =
>  		to_intel_plane_state(plane->base.state);
>  	const struct drm_framebuffer *fb = plane_state->uapi.fb;
> -	struct drm_format_name_buf format_name;
>  	struct drm_rect src, dst;
>  	char rot_str[48];
>  
>  	src = drm_plane_state_src(&plane_state->uapi);
>  	dst = drm_plane_state_dest(&plane_state->uapi);
>  
> -	if (fb)
> -		drm_get_format_name(fb->format->format, &format_name);
> -
>  	plane_rotation(rot_str, sizeof(rot_str),
>  		       plane_state->uapi.rotation);
>  
> -	seq_printf(m, "\t\tuapi: [FB:%d] %s,0x%llx,%dx%d, visible=%s, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
> -		   fb ? fb->base.id : 0, fb ? format_name.str : "n/a",
> +	seq_printf(m, "\t\tuapi: [FB:%d] ", fb ? fb->base.id : 0);
> +	if (fb)
> +		seq_printf(m, "%p4cc", &fb->format->format);
> +	else
> +		seq_puts(m, "n/a");

> +	seq_printf(m, ",0x%llx,%dx%d, visible=%s, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",

Why not to keep two seq_printf() calls?

if (fb) {
	seq_printf();
} else {
	seq_printf();
}

?

>  		   fb ? fb->modifier : 0,
>  		   fb ? fb->width : 0, fb ? fb->height : 0,
>  		   plane_visibility(plane_state),
> @@ -804,19 +804,16 @@ static void intel_plane_hw_info(struct seq_file *m, struct intel_plane *plane)
>  	const struct intel_plane_state *plane_state =
>  		to_intel_plane_state(plane->base.state);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
> -	struct drm_format_name_buf format_name;
>  	char rot_str[48];
>  
>  	if (!fb)
>  		return;
>  
> -	drm_get_format_name(fb->format->format, &format_name);
> -
>  	plane_rotation(rot_str, sizeof(rot_str),
>  		       plane_state->hw.rotation);
>  
> -	seq_printf(m, "\t\thw: [FB:%d] %s,0x%llx,%dx%d, visible=%s, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
> -		   fb->base.id, format_name.str,
> +	seq_printf(m, "\t\thw: [FB:%d] %p4cc,0x%llx,%dx%d, visible=%s, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
> +		   fb->base.id, &fb->format->format,
>  		   fb->modifier, fb->width, fb->height,
>  		   yesno(plane_state->uapi.visible),
>  		   DRM_RECT_FP_ARG(&plane_state->uapi.src),
> diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
> index 019a2d6d807a..e4e55d1aec10 100644
> --- a/drivers/gpu/drm/i915/display/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/display/intel_sprite.c
> @@ -2285,7 +2285,6 @@ static int skl_plane_check_fb(const struct intel_crtc_state *crtc_state,
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	unsigned int rotation = plane_state->hw.rotation;
> -	struct drm_format_name_buf format_name;
>  
>  	if (!fb)
>  		return 0;
> @@ -2333,9 +2332,8 @@ static int skl_plane_check_fb(const struct intel_crtc_state *crtc_state,
>  		case DRM_FORMAT_XVYU12_16161616:
>  		case DRM_FORMAT_XVYU16161616:
>  			drm_dbg_kms(&dev_priv->drm,
> -				    "Unsupported pixel format %s for 90/270!\n",
> -				    drm_get_format_name(fb->format->format,
> -							&format_name));
> +				    "Unsupported pixel format %p4cc for 90/270!\n",
> +				    &fb->format->format);
>  			return -EINVAL;
>  		default:
>  			break;
> diff --git a/drivers/gpu/drm/mcde/mcde_display.c b/drivers/gpu/drm/mcde/mcde_display.c
> index 7c2e0b865441..83ac7493e751 100644
> --- a/drivers/gpu/drm/mcde/mcde_display.c
> +++ b/drivers/gpu/drm/mcde/mcde_display.c
> @@ -1161,7 +1161,6 @@ static void mcde_display_enable(struct drm_simple_display_pipe *pipe,
>  	int dsi_pkt_size;
>  	int fifo_wtrmrk;
>  	int cpp = fb->format->cpp[0];
> -	struct drm_format_name_buf tmp;
>  	u32 dsi_formatter_frame;
>  	u32 val;
>  	int ret;
> @@ -1173,9 +1172,8 @@ static void mcde_display_enable(struct drm_simple_display_pipe *pipe,
>  		return;
>  	}
>  
> -	dev_info(drm->dev, "enable MCDE, %d x %d format %s\n",
> -		 mode->hdisplay, mode->vdisplay,
> -		 drm_get_format_name(format, &tmp));
> +	dev_info(drm->dev, "enable MCDE, %d x %d format %p4cc\n",
> +		 mode->hdisplay, mode->vdisplay, &format);
>  
>  
>  	/* Clear any pending interrupts */
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> index 56eb22554197..ea9d73983d13 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> @@ -71,7 +71,6 @@ static void _dpu_crtc_setup_blend_cfg(struct dpu_crtc_mixer *mixer,
>  {
>  	struct dpu_hw_mixer *lm = mixer->hw_lm;
>  	uint32_t blend_op;
> -	struct drm_format_name_buf format_name;
>  
>  	/* default to opaque blending */
>  	blend_op = DPU_BLEND_FG_ALPHA_FG_CONST |
> @@ -87,9 +86,8 @@ static void _dpu_crtc_setup_blend_cfg(struct dpu_crtc_mixer *mixer,
>  	lm->ops.setup_blend_config(lm, pstate->stage,
>  				0xFF, 0, blend_op);
>  
> -	DPU_DEBUG("format:%s, alpha_en:%u blend_op:0x%x\n",
> -		drm_get_format_name(format->base.pixel_format, &format_name),
> -		format->alpha_enable, blend_op);
> +	DPU_DEBUG("format:%p4cc, alpha_en:%u blend_op:0x%x\n",
> +		  &format->base.pixel_format, format->alpha_enable, blend_op);
>  }
>  
>  static void _dpu_crtc_program_lm_output_roi(struct drm_crtc *crtc)
> diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
> index bceb48a2dfca..a305b749c321 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_display.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_display.c
> @@ -322,12 +322,9 @@ nouveau_framebuffer_new(struct drm_device *dev,
>  	     mode_cmd->pitches[0] >= 0x10000 || /* at most 64k pitch */
>  	     (mode_cmd->pitches[1] && /* pitches for planes must match */
>  	      mode_cmd->pitches[0] != mode_cmd->pitches[1]))) {
> -		struct drm_format_name_buf format_name;
> -		DRM_DEBUG_KMS("Unsuitable framebuffer: format: %s; pitches: 0x%x\n 0x%x\n",
> -			      drm_get_format_name(mode_cmd->pixel_format,
> -						  &format_name),
> -			      mode_cmd->pitches[0],
> -			      mode_cmd->pitches[1]);
> +		DRM_DEBUG_KMS("Unsuitable framebuffer: format: %p4cc; pitches: 0x%x\n 0x%x\n",
> +			      &mode_cmd->pixel_format,
> +			      mode_cmd->pitches[0], mode_cmd->pitches[1]);
>  		return -EINVAL;
>  	}
>  
> diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
> index 1979ed3d6547..c94e429e75f9 100644
> --- a/drivers/gpu/drm/radeon/atombios_crtc.c
> +++ b/drivers/gpu/drm/radeon/atombios_crtc.c
> @@ -1157,7 +1157,6 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc,
>  	u32 tmp, viewport_w, viewport_h;
>  	int r;
>  	bool bypass_lut = false;
> -	struct drm_format_name_buf format_name;
>  
>  	/* no fb bound */
>  	if (!atomic && !crtc->primary->fb) {
> @@ -1267,8 +1266,8 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc,
>  #endif
>  		break;
>  	default:
> -		DRM_ERROR("Unsupported screen format %s\n",
> -		          drm_get_format_name(target_fb->format->format, &format_name));
> +		DRM_ERROR("Unsupported screen format %p4cc\n",
> +			  &target_fb->format->format);
>  		return -EINVAL;
>  	}
>  
> @@ -1478,7 +1477,6 @@ static int avivo_crtc_do_set_base(struct drm_crtc *crtc,
>  	u32 viewport_w, viewport_h;
>  	int r;
>  	bool bypass_lut = false;
> -	struct drm_format_name_buf format_name;
>  
>  	/* no fb bound */
>  	if (!atomic && !crtc->primary->fb) {
> @@ -1579,8 +1577,8 @@ static int avivo_crtc_do_set_base(struct drm_crtc *crtc,
>  #endif
>  		break;
>  	default:
> -		DRM_ERROR("Unsupported screen format %s\n",
> -		          drm_get_format_name(target_fb->format->format, &format_name));
> +		DRM_ERROR("Unsupported screen format %p4cc\n",
> +			  &target_fb->format->format);
>  		return -EINVAL;
>  	}
>  
> diff --git a/drivers/gpu/drm/sun4i/sun4i_backend.c b/drivers/gpu/drm/sun4i/sun4i_backend.c
> index 522e51a404cc..bf8cfefa0365 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_backend.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_backend.c
> @@ -510,7 +510,6 @@ static int sun4i_backend_atomic_check(struct sunxi_engine *engine,
>  		struct sun4i_layer_state *layer_state =
>  			state_to_sun4i_layer_state(plane_state);
>  		struct drm_framebuffer *fb = plane_state->fb;
> -		struct drm_format_name_buf format_name;
>  
>  		if (!sun4i_backend_plane_is_supported(plane_state,
>  						      &layer_state->uses_frontend))
> @@ -527,9 +526,8 @@ static int sun4i_backend_atomic_check(struct sunxi_engine *engine,
>  			}
>  		}
>  
> -		DRM_DEBUG_DRIVER("Plane FB format is %s\n",
> -				 drm_get_format_name(fb->format->format,
> -						     &format_name));
> +		DRM_DEBUG_DRIVER("Plane FB format is %p4cc\n",
> +				 &fb->format->format);
>  		if (fb->format->has_alpha || (plane_state->alpha != DRM_BLEND_ALPHA_OPAQUE))
>  			num_alpha_planes++;
>  
> diff --git a/drivers/gpu/drm/vkms/vkms_writeback.c b/drivers/gpu/drm/vkms/vkms_writeback.c
> index 78fdc1d59186..0935686475a0 100644
> --- a/drivers/gpu/drm/vkms/vkms_writeback.c
> +++ b/drivers/gpu/drm/vkms/vkms_writeback.c
> @@ -42,11 +42,8 @@ static int vkms_wb_encoder_atomic_check(struct drm_encoder *encoder,
>  	}
>  
>  	if (fb->format->format != vkms_wb_formats[0]) {
> -		struct drm_format_name_buf format_name;
> -
> -		DRM_DEBUG_KMS("Invalid pixel format %s\n",
> -			      drm_get_format_name(fb->format->format,
> -						  &format_name));
> +		DRM_DEBUG_KMS("Invalid pixel format %p4cc\n",
> +			      &fb->format->format);
>  		return -EINVAL;
>  	}
>  
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> index bc67f2b930e1..0cd2c55036bb 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> @@ -895,7 +895,6 @@ static int vmw_kms_new_framebuffer_surface(struct vmw_private *dev_priv,
>  	struct vmw_framebuffer_surface *vfbs;
>  	enum SVGA3dSurfaceFormat format;
>  	int ret;
> -	struct drm_format_name_buf format_name;
>  
>  	/* 3D is only supported on HWv8 and newer hosts */
>  	if (dev_priv->active_display_unit == vmw_du_legacy)
> @@ -933,8 +932,8 @@ static int vmw_kms_new_framebuffer_surface(struct vmw_private *dev_priv,
>  		format = SVGA3D_A1R5G5B5;
>  		break;
>  	default:
> -		DRM_ERROR("Invalid pixel format: %s\n",
> -			  drm_get_format_name(mode_cmd->pixel_format, &format_name));
> +		DRM_ERROR("Invalid pixel format: %p4cc\n",
> +			  &mode_cmd->pixel_format);
>  		return -EINVAL;
>  	}
>  
> @@ -1149,7 +1148,6 @@ static int vmw_create_bo_proxy(struct drm_device *dev,
>  	uint32_t format;
>  	struct vmw_resource *res;
>  	unsigned int bytes_pp;
> -	struct drm_format_name_buf format_name;
>  	int ret;
>  
>  	switch (mode_cmd->pixel_format) {
> @@ -1171,8 +1169,8 @@ static int vmw_create_bo_proxy(struct drm_device *dev,
>  		break;
>  
>  	default:
> -		DRM_ERROR("Invalid framebuffer format %s\n",
> -			  drm_get_format_name(mode_cmd->pixel_format, &format_name));
> +		DRM_ERROR("Invalid framebuffer format %p4cc\n",
> +			  &mode_cmd->pixel_format);
>  		return -EINVAL;
>  	}
>  
> @@ -1216,7 +1214,6 @@ static int vmw_kms_new_framebuffer_bo(struct vmw_private *dev_priv,
>  	struct drm_device *dev = dev_priv->dev;
>  	struct vmw_framebuffer_bo *vfbd;
>  	unsigned int requested_size;
> -	struct drm_format_name_buf format_name;
>  	int ret;
>  
>  	requested_size = mode_cmd->height * mode_cmd->pitches[0];
> @@ -1236,8 +1233,8 @@ static int vmw_kms_new_framebuffer_bo(struct vmw_private *dev_priv,
>  		case DRM_FORMAT_RGB565:
>  			break;
>  		default:
> -			DRM_ERROR("Invalid pixel format: %s\n",
> -				  drm_get_format_name(mode_cmd->pixel_format, &format_name));
> +			DRM_ERROR("Invalid pixel format: %p4cc\n",
> +				  &mode_cmd->pixel_format);
>  			return -EINVAL;
>  		}
>  	}
> diff --git a/include/drm/drm_fourcc.h b/include/drm/drm_fourcc.h
> index 156b122c0ad5..3ea17b8a79d3 100644
> --- a/include/drm/drm_fourcc.h
> +++ b/include/drm/drm_fourcc.h
> @@ -318,6 +318,5 @@ unsigned int drm_format_info_block_height(const struct drm_format_info *info,
>  					  int plane);
>  uint64_t drm_format_info_min_pitch(const struct drm_format_info *info,
>  				   int plane, unsigned int buffer_width);
> -const char *drm_get_format_name(uint32_t format, struct drm_format_name_buf *buf);
>  
>  #endif /* __DRM_FOURCC_H__ */
> -- 
> 2.29.2
> 

-- 
With Best Regards,
Andy Shevchenko




More information about the dri-devel mailing list