]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: rockhip: rga: Access v4l2_fh from file
authorJacopo Mondi <jacopo.mondi@ideasonboard.com>
Sun, 10 Aug 2025 01:30:32 +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>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
drivers/media/platform/rockchip/rga/rga.c

index 45c42c7ad846fab985e573ef7acf4a5bc1a4cac1..7c657df623f2897cd1ce2b6fa4c4b4de369f1c64 100644 (file)
@@ -462,7 +462,7 @@ static int vidioc_enum_fmt(struct file *file, void *prv, struct v4l2_fmtdesc *f)
 static int vidioc_g_fmt(struct file *file, void *prv, struct v4l2_format *f)
 {
        struct v4l2_pix_format_mplane *pix_fmt = &f->fmt.pix_mp;
-       struct rga_ctx *ctx = prv;
+       struct rga_ctx *ctx = file_to_rga_ctx(file);
        struct vb2_queue *vq;
        struct rga_frame *frm;
 
@@ -504,7 +504,7 @@ static int vidioc_try_fmt(struct file *file, void *prv, struct v4l2_format *f)
 static int vidioc_s_fmt(struct file *file, void *prv, struct v4l2_format *f)
 {
        struct v4l2_pix_format_mplane *pix_fmt = &f->fmt.pix_mp;
-       struct rga_ctx *ctx = prv;
+       struct rga_ctx *ctx = file_to_rga_ctx(file);
        struct rockchip_rga *rga = ctx->rga;
        struct vb2_queue *vq;
        struct rga_frame *frm;
@@ -561,7 +561,7 @@ static int vidioc_s_fmt(struct file *file, void *prv, struct v4l2_format *f)
 static int vidioc_g_selection(struct file *file, void *prv,
                              struct v4l2_selection *s)
 {
-       struct rga_ctx *ctx = prv;
+       struct rga_ctx *ctx = file_to_rga_ctx(file);
        struct rga_frame *f;
        bool use_frame = false;
 
@@ -609,7 +609,7 @@ static int vidioc_g_selection(struct file *file, void *prv,
 static int vidioc_s_selection(struct file *file, void *prv,
                              struct v4l2_selection *s)
 {
-       struct rga_ctx *ctx = prv;
+       struct rga_ctx *ctx = file_to_rga_ctx(file);
        struct rockchip_rga *rga = ctx->rga;
        struct rga_frame *f;
        int ret = 0;