[PATCH 44/65] media: rockchip: rkvdec: Access v4l2_fh from file

Detlev Casanova detlev.casanova at collabora.com
Sat Aug 2 09:02:27 PDT 2025


Hi Jacopo,

Thanks for the cleanup !

On Saturday, 2 August 2025 05:23:06 EDT Jacopo Mondi wrote:
> The v4l2_fh associated with an open file handle is now guaranteed
> to be available in file->private_data, initialised by v4l2_fh_add().
> 
> Access the v4l2_fh, and from there the driver-specific structure,
> from the file * in all ioctl handlers.
> 
> While at it, remove the now unused fh_to_rkvdec_ctx() macro.
> 
> Signed-off-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>

Reviewed-by: Detlev Casanova <detlev.casanova at collabora.com>

> ---
>  drivers/media/platform/rockchip/rkvdec/rkvdec.c | 14 +++++++-------
>  drivers/media/platform/rockchip/rkvdec/rkvdec.h |  5 -----
>  2 files changed, 7 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec.c
> b/drivers/media/platform/rockchip/rkvdec/rkvdec.c index
> 481c2488f9ac64e70869ed21e5053cfbc4ed6e0e..9fa80ab3c62b7753e6c992aefd106ee99
> ed375e4 100644 --- a/drivers/media/platform/rockchip/rkvdec/rkvdec.c
> +++ b/drivers/media/platform/rockchip/rkvdec/rkvdec.c
> @@ -354,7 +354,7 @@ static int rkvdec_try_capture_fmt(struct file *file,
> void *priv, struct v4l2_format *f)
>  {
>  	struct v4l2_pix_format_mplane *pix_mp = &f->fmt.pix_mp;
> -	struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
> +	struct rkvdec_ctx *ctx = file_to_rkvdec_ctx(file);
>  	const struct rkvdec_coded_fmt_desc *coded_desc;
> 
>  	/*
> @@ -387,7 +387,7 @@ static int rkvdec_try_output_fmt(struct file *file, void
> *priv, struct v4l2_format *f)
>  {
>  	struct v4l2_pix_format_mplane *pix_mp = &f->fmt.pix_mp;
> -	struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
> +	struct rkvdec_ctx *ctx = file_to_rkvdec_ctx(file);
>  	const struct rkvdec_coded_fmt_desc *desc;
> 
>  	desc = rkvdec_find_coded_fmt_desc(pix_mp->pixelformat);
> @@ -418,7 +418,7 @@ static int rkvdec_try_output_fmt(struct file *file, void
> *priv, static int rkvdec_s_capture_fmt(struct file *file, void *priv,
>  				struct v4l2_format *f)
>  {
> -	struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
> +	struct rkvdec_ctx *ctx = file_to_rkvdec_ctx(file);
>  	struct vb2_queue *vq;
>  	int ret;
> 
> @@ -439,7 +439,7 @@ static int rkvdec_s_capture_fmt(struct file *file, void
> *priv, static int rkvdec_s_output_fmt(struct file *file, void *priv,
>  			       struct v4l2_format *f)
>  {
> -	struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
> +	struct rkvdec_ctx *ctx = file_to_rkvdec_ctx(file);
>  	struct v4l2_m2m_ctx *m2m_ctx = ctx->fh.m2m_ctx;
>  	const struct rkvdec_coded_fmt_desc *desc;
>  	struct v4l2_format *cap_fmt;
> @@ -504,7 +504,7 @@ static int rkvdec_s_output_fmt(struct file *file, void
> *priv, static int rkvdec_g_output_fmt(struct file *file, void *priv,
>  			       struct v4l2_format *f)
>  {
> -	struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
> +	struct rkvdec_ctx *ctx = file_to_rkvdec_ctx(file);
> 
>  	*f = ctx->coded_fmt;
>  	return 0;
> @@ -513,7 +513,7 @@ static int rkvdec_g_output_fmt(struct file *file, void
> *priv, static int rkvdec_g_capture_fmt(struct file *file, void *priv,
>  				struct v4l2_format *f)
>  {
> -	struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
> +	struct rkvdec_ctx *ctx = file_to_rkvdec_ctx(file);
> 
>  	*f = ctx->decoded_fmt;
>  	return 0;
> @@ -532,7 +532,7 @@ static int rkvdec_enum_output_fmt(struct file *file,
> void *priv, static int rkvdec_enum_capture_fmt(struct file *file, void
> *priv, struct v4l2_fmtdesc *f)
>  {
> -	struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
> +	struct rkvdec_ctx *ctx = file_to_rkvdec_ctx(file);
>  	u32 fourcc;
> 
>  	fourcc = rkvdec_enum_decoded_fmt(ctx, f->index, ctx->image_fmt);
> diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec.h
> b/drivers/media/platform/rockchip/rkvdec/rkvdec.h index
> 35effe9467845fdfc4ffea432211d1d2e75a08b0..481aaa4bffe975fa106fb22e78bef90ad
> e86a6cf 100644 --- a/drivers/media/platform/rockchip/rkvdec/rkvdec.h
> +++ b/drivers/media/platform/rockchip/rkvdec/rkvdec.h
> @@ -124,11 +124,6 @@ struct rkvdec_ctx {
>  	void *priv;
>  };
> 
> -static inline struct rkvdec_ctx *fh_to_rkvdec_ctx(struct v4l2_fh *fh)
> -{
> -	return container_of(fh, struct rkvdec_ctx, fh);
> -}
> -
>  static inline struct rkvdec_ctx *file_to_rkvdec_ctx(struct file *filp)
>  {
>  	return container_of(file_to_v4l2_fh(filp), struct rkvdec_ctx, fh);







More information about the linux-amlogic mailing list