]> www.infradead.org Git - users/hch/misc.git/commitdiff
media: rockchip: rkvdec: Access v4l2_fh from file
authorJacopo Mondi <jacopo.mondi@ideasonboard.com>
Sun, 10 Aug 2025 01:30:33 +0000 (04:30 +0300)
committerHans Verkuil <hverkuil+cisco@kernel.org>
Wed, 13 Aug 2025 06:33:51 +0000 (08:33 +0200)
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.

Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Reviewed-by: Detlev Casanova <detlev.casanova@collabora.com>
Co-developed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
drivers/media/platform/rockchip/rkvdec/rkvdec.c
drivers/media/platform/rockchip/rkvdec/rkvdec.h

index 481c2488f9ac64e70869ed21e5053cfbc4ed6e0e..9fa80ab3c62b7753e6c992aefd106ee99ed375e4 100644 (file)
@@ -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);
index 3a6322d42b26f575b1c3b60e283b20443c8f845b..481aaa4bffe975fa106fb22e78bef90ade86a6cf 100644 (file)
@@ -124,14 +124,9 @@ 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 fh_to_rkvdec_ctx(file_to_v4l2_fh(filp));
+       return container_of(file_to_v4l2_fh(filp), struct rkvdec_ctx, fh);
 }
 
 struct rkvdec_aux_buf {