linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>,
	David Airlie <airlied@linux.ie>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Sean Paul <seanpaul@chromium.org>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Hans Verkuil <hans.verkuil@cisco.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Paul Kocialkowski <paul.kocialkowski@bootlin.com>,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	linux-media@vger.kernel.org
Subject: Re: [PATCH 19/20] lib: image-formats: Add more functions
Date: Wed, 17 Apr 2019 15:41:32 +0300	[thread overview]
Message-ID: <20190417124131.febnqtpp6oetbafs@paasikivi.fi.intel.com> (raw)
In-Reply-To: <382f72c5938f538c8489cb2032050f4be252ad59.1555487650.git-series.maxime.ripard@bootlin.com>

Hi Maxime,

On Wed, Apr 17, 2019 at 09:54:45AM +0200, Maxime Ripard wrote:
> V4L2 drivers typically need a few more helpers compared to DRM drivers, so
> let's add them.
> 
> Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
> ---
>  include/linux/image-formats.h | 42 ++++++++++++++++++++++++++++++++++++-
>  1 file changed, 42 insertions(+)
> 
> diff --git a/include/linux/image-formats.h b/include/linux/image-formats.h
> index b78b8e861fc9..a2cf3528bd31 100644
> --- a/include/linux/image-formats.h
> +++ b/include/linux/image-formats.h
> @@ -388,6 +388,48 @@ uint64_t image_format_info_min_pitch(const struct image_format_info *info,
>  			    image_format_info_block_height(info, plane));
>  }
>  
> +/**
> + * image_format_info_plane_stride - determine the stride value
> + * @format: pointer to the image_format_info
> + * @width: plane width
> + * @plane: plane index
> + *
> + * Returns:
> + * The bytes per pixel value for the specified plane.

In V4L2 the bytesperline (stride) value is user configurable and is also
subject to hardware capabilities. So effectively this makes what the
function returns a minimum value for a given format. I think you could add
this to the documentation. This is also not the number of bytes per pixel,
as suggested above. So, e.g.

	Returns the minimum number of bytes between two consecutive lines.

> + */
> +static inline
> +unsigned int image_format_info_plane_stride(const struct image_format_info *format,
> +					    unsigned int width, int plane)
> +{
> +	if (!format || plane >= format->num_planes)
> +		return 0;
> +
> +	return image_format_info_plane_width(format, width, plane) *
> +		image_format_info_plane_cpp(format, plane);
> +}
> +
> +/**
> + * image_format_info_plane_size - determine the size value
> + * @format: pointer to the image_format_info
> + * @width: plane width
> + * @height: plane width
> + * @plane: plane index
> + *
> + * Returns:
> + * The size of the plane buffer.

Similarly:

	Returns the minimum size of the plane buffer.

With these,

Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>

> + */
> +static inline
> +unsigned int image_format_info_plane_size(const struct image_format_info *format,
> +					  unsigned int width, unsigned int height,
> +					  int plane)
> +{
> +	if (!format || plane >= format->num_planes)
> +		return 0;
> +
> +	return image_format_info_plane_stride(format, width, plane) *
> +		image_format_info_plane_height(format, height, plane);
> +}
> +
>  const struct image_format_info *__image_format_drm_lookup(u32 drm);
>  const struct image_format_info *__image_format_v4l2_lookup(u32 v4l2);
>  const struct image_format_info *image_format_drm_lookup(u32 drm);

-- 
Sakari Ailus
sakari.ailus@linux.intel.com

  parent reply	other threads:[~2019-04-17 12:41 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-17  7:54 [PATCH 00/20] drm: Split out the formats API and move it to a common place Maxime Ripard
2019-04-17  7:54 ` [PATCH 01/20] drm: Remove users of drm_format_num_planes Maxime Ripard
2019-04-17  7:54 ` [PATCH 02/20] drm: Remove users of drm_format_(horz|vert)_chroma_subsampling Maxime Ripard
2019-04-17 13:32   ` Philipp Zabel
2019-04-17  7:54 ` [PATCH 03/20] drm/fourcc: Pass the format_info pointer to drm_format_plane_cpp Maxime Ripard
2019-04-17  7:54 ` [PATCH 04/20] drm/fourcc: Pass the format_info pointer to drm_format_plane_width/height Maxime Ripard
     [not found]   ` <776131c6-b8be-4302-ea9a-f7d84203f28c@linux.intel.com>
2019-04-17 11:01     ` Maxime Ripard
2019-04-17 11:10       ` Maarten Lankhorst
2019-04-17 13:12         ` Maxime Ripard
2019-04-17  7:54 ` [PATCH 05/20] drm: Replace instances of drm_format_info by drm_get_format_info Maxime Ripard
2019-04-17  7:54 ` [PATCH 06/20] lib: Add video format information library Maxime Ripard
2019-04-17 12:34   ` Paul Kocialkowski
2019-04-17 12:48     ` Maxime Ripard
2019-04-17 14:03       ` Paul Kocialkowski
2019-04-23 11:22   ` Thomas Zimmermann
2019-04-23 16:56     ` Paul Kocialkowski
2019-04-17  7:54 ` [PATCH 07/20] drm/fb: Move from drm_format_info to image_format_info Maxime Ripard
2019-04-17  7:54 ` [PATCH 08/20] drm/malidp: Convert to generic image format library Maxime Ripard
2019-04-17  7:54 ` [PATCH 09/20] drm/client: " Maxime Ripard
2019-04-17  7:54 ` [PATCH 10/20] drm/exynos: " Maxime Ripard
2019-04-17  7:54 ` [PATCH 11/20] drm/i915: " Maxime Ripard
2019-04-17  7:54 ` [PATCH 12/20] drm/ipuv3: " Maxime Ripard
2019-04-17  7:54 ` [PATCH 13/20] drm/msm: " Maxime Ripard
2019-04-17  7:54 ` [PATCH 14/20] drm/omap: " Maxime Ripard
2019-04-17  7:54 ` [PATCH 15/20] drm/rockchip: " Maxime Ripard
2019-04-17  7:54 ` [PATCH 16/20] drm/tegra: " Maxime Ripard
2019-04-17  7:54 ` [PATCH 17/20] drm/fourcc: Remove old DRM format API Maxime Ripard
2019-04-17  7:54 ` [PATCH 18/20] lib: image-formats: Add v4l2 formats support Maxime Ripard
2019-05-02  8:24   ` Hans Verkuil
2019-05-06 13:22     ` Maxime Ripard
2019-04-17  7:54 ` [PATCH 19/20] lib: image-formats: Add more functions Maxime Ripard
2019-04-17 12:39   ` Paul Kocialkowski
2019-04-17 12:41   ` Sakari Ailus [this message]
2019-04-17  7:54 ` [PATCH 20/20] media: sun6i: Convert to the image format API Maxime Ripard
2019-04-17 12:23 ` [PATCH 00/20] drm: Split out the formats API and move it to a common place Paul Kocialkowski
2019-04-17 12:38 ` Paul Kocialkowski
2019-04-17 15:41 ` Daniel Vetter
2019-04-18  6:22   ` Maxime Ripard
2019-04-18  7:52     ` Daniel Vetter
2019-04-18  9:02       ` Maxime Ripard
2019-04-18 10:07         ` Daniel Vetter
2019-04-18 12:01           ` Maxime Ripard
2019-04-18 12:32             ` Daniel Vetter
2019-04-18 20:56               ` Maxime Ripard
2019-04-20 23:05                 ` Laurent Pinchart
2019-05-02  8:25                 ` Hans Verkuil
2019-04-20 22:59           ` Laurent Pinchart
2019-04-23  7:25             ` Daniel Vetter
2019-04-23  8:59               ` Daniel Stone
2019-04-23 15:54                 ` Laurent Pinchart
2019-04-23 16:02                   ` Daniel Stone
2019-04-23 16:38                     ` Paul Kocialkowski
2019-04-23 15:45               ` Laurent Pinchart
2019-04-23 16:46                 ` Paul Kocialkowski
2019-04-23 19:18                 ` Daniel Vetter
2019-05-11 19:26                   ` Laurent Pinchart
2019-05-13 14:57                     ` Daniel Vetter
2019-05-13 15:23                       ` Mauro Carvalho Chehab
2019-04-18 11:49         ` Paul Kocialkowski
2019-04-20 22:40           ` Laurent Pinchart
2019-04-23  7:30             ` Daniel Vetter
2019-04-23 12:33               ` Paul Kocialkowski
2019-04-23 14:28                 ` Nicolas Dufresne
2019-04-23 14:55                   ` Paul Kocialkowski
2019-04-23 15:09                   ` Daniel Vetter
2019-04-23 17:16                     ` Nicolas Dufresne
2019-04-23 19:06                       ` Daniel Vetter
2019-04-23 16:54             ` Paul Kocialkowski
2019-05-11 19:19               ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190417124131.febnqtpp6oetbafs@paasikivi.fi.intel.com \
    --to=sakari.ailus@linux.intel.com \
    --cc=airlied@linux.ie \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hans.verkuil@cisco.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=maxime.ripard@bootlin.com \
    --cc=mchehab@kernel.org \
    --cc=paul.kocialkowski@bootlin.com \
    --cc=seanpaul@chromium.org \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).