>-----Original Message-----
>From: Jacopo Mondi <[email protected]>
>Sent: Saturday, August 2, 2025 5:23 PM
>To: Mauro Carvalho Chehab <[email protected]>; Devarsh Thakkar
><[email protected]>; Benoit Parrot <[email protected]>; Hans Verkuil
><[email protected]>; Mike Isely <[email protected]>; Laurent Pinchart
><[email protected]>; Hans de Goede <[email protected]>;
>Parthiban Veerasooran <[email protected]>; Christian
>Gromm <[email protected]>; Greg Kroah-Hartman
><[email protected]>; Alex Shi <[email protected]>; Yanteng Si
><[email protected]>; Dongliang Mu <[email protected]>; Jonathan
>Corbet <[email protected]>; Tomasz Figa <[email protected]>; Marek
>Szyprowski <[email protected]>; Andy Walls
><[email protected]>; Michael Tretter <[email protected]>;
>Pengutronix Kernel Team <[email protected]>; Bin Liu
><[email protected]>; Matthias Brugger <[email protected]>;
>AngeloGioacchino Del Regno <[email protected]>;
>Dmitry Osipenko <[email protected]>; Thierry Reding
><[email protected]>; Jonathan Hunter <[email protected]>;
>Mirela Rabulea <[email protected]>; Shawn Guo
><[email protected]>; Sascha Hauer <[email protected]>; Fabio
>Estevam <[email protected]>; Kieran Bingham
><[email protected]>; Michal Simek
><[email protected]>; Ming Qian <[email protected]>; Eagle Zhou
><[email protected]>; Xavier Roumegue (OSS)
><[email protected]>; Philipp Zabel <[email protected]>;
>Vikash Garodia <[email protected]>; Dikshita Agarwal
><[email protected]>; Abhinav Kumar <[email protected]>;
>Bryan O'Donoghue <[email protected]>; Sylwester Nawrocki
><[email protected]>; Jernej Skrabec <[email protected]>;
>Chen-Yu Tsai <[email protected]>; Samuel Holland <[email protected]>;
>Daniel Almeida <[email protected]>; Neil Armstrong
><[email protected]>; Kevin Hilman <[email protected]>; Jerome
>Brunet <[email protected]>; Martin Blumenstingl
><[email protected]>; Nas Chung
><[email protected]>; Jackson Lee
><[email protected]>; Minghsiu Tsai
><[email protected]>; Houlong Wei <[email protected]>;
>Andrew-CT Chen <[email protected]>; Tiffany Lin
><[email protected]>; Yunfei Dong <[email protected]>;
>Geert Uytterhoeven <[email protected]>; Magnus Damm
><[email protected]>; Mikhail Ulyanov
><[email protected]>; Jacob Chen <jacob-
>[email protected]>; Ezequiel Garcia <[email protected]>; Heiko
>Stuebner <[email protected]>; Detlev Casanova
><[email protected]>; Krzysztof Kozlowski <[email protected]>;
>Alim Akhtar <[email protected]>; Sylwester Nawrocki
><[email protected]>; Łukasz Stelmach <[email protected]>;
>Andrzej Pietrasiewicz <[email protected]>; Jacek Anaszewski
><[email protected]>; Andrzej Hajda <[email protected]>;
>Fabien Dessenne <[email protected]>; Hugues Fruchet
><[email protected]>; Jean-Christophe Trotin <jean-
>[email protected]>; Maxime Coquelin
><[email protected]>; Alexandre Torgue
><[email protected]>; Nicolas Dufresne
><[email protected]>; Benjamin Gaignard
><[email protected]>; Steve Longerbeam
><[email protected]>; Maxime Ripard <[email protected]>; Paul
>Kocialkowski <[email protected]>; Niklas Söderlund
><[email protected]>; Robert Foss <[email protected]>; Todor
>Tomov <[email protected]>; Vladimir Zapolskiy
><[email protected]>; Corentin Labbe <[email protected]>;
>Sakari Ailus <[email protected]>; Bingbu Cao
><[email protected]>; Tianshu Qiu <[email protected]>; Stanislaw
>Gruszka <[email protected]>
>Cc: [email protected]; [email protected]; linux-
>[email protected]; [email protected]; linux-arm-
>[email protected]; [email protected]; linux-
>[email protected]; [email protected]; [email protected];
>[email protected]; [email protected]; linux-
>[email protected]; [email protected]; linux-
>[email protected]; [email protected]; linux-
>[email protected]; [email protected];
>Jacopo Mondi <[email protected]>
>Subject: [EXT] [PATCH 39/65] media: imx-jpeg: Access v4l2_fh from file
>
>Caution: This is an external email. Please take care when clicking links or
>opening attachments. When in doubt, report the message using the 'Report
>this email' button
>
>
>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 mxc_jpeg_fh_to_ctx() macro.
>
>Signed-off-by: Jacopo Mondi <[email protected]>

Reviewed-by: Ming Qian <[email protected]>

>---
> drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c | 33 +++++++++++--------------
>-
> 1 file changed, 14 insertions(+), 19 deletions(-)
>
>diff --git a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c
>b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c
>index
>fa7d74d8c1aabd3bf74482e214165d8c1a7e89da..df3ccdf767baf0bf6687808e2c
>017063181a7220 100644
>--- a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c
>+++ b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c
>@@ -644,11 +644,6 @@ static void print_mxc_buf(struct mxc_jpeg_dev *jpeg,
>struct vb2_buffer *buf,
>        }
> }
>
>-static inline struct mxc_jpeg_ctx *mxc_jpeg_fh_to_ctx(struct v4l2_fh *fh) -{
>-       return container_of(fh, struct mxc_jpeg_ctx, fh);
>-}
>-
> static inline struct mxc_jpeg_ctx *mxc_jpeg_file_to_ctx(struct file *filp)  {
>        return container_of(file_to_v4l2_fh(filp), struct mxc_jpeg_ctx, fh); 
> @@ -
>1610,7 +1605,7 @@ static int mxc_jpeg_decoder_cmd(struct file *file, void
>*priv,
>                                struct v4l2_decoder_cmd *cmd)  {
>        struct v4l2_fh *fh = file_to_v4l2_fh(file);
>-       struct mxc_jpeg_ctx *ctx = mxc_jpeg_fh_to_ctx(fh);
>+       struct mxc_jpeg_ctx *ctx = mxc_jpeg_file_to_ctx(file);
>        unsigned long flags;
>        int ret;
>
>@@ -1643,7 +1638,7 @@ static int mxc_jpeg_encoder_cmd(struct file *file,
>void *priv,
>                                struct v4l2_encoder_cmd *cmd)  {
>        struct v4l2_fh *fh = file_to_v4l2_fh(file);
>-       struct mxc_jpeg_ctx *ctx = mxc_jpeg_fh_to_ctx(fh);
>+       struct mxc_jpeg_ctx *ctx = mxc_jpeg_file_to_ctx(file);
>        unsigned long flags;
>        int ret;
>
>@@ -2260,7 +2255,7 @@ static int mxc_jpeg_querycap(struct file *file, void
>*priv,  static int mxc_jpeg_enum_fmt_vid_cap(struct file *file, void *priv,
>                                     struct v4l2_fmtdesc *f)  {
>-       struct mxc_jpeg_ctx *ctx = mxc_jpeg_fh_to_ctx(priv);
>+       struct mxc_jpeg_ctx *ctx = mxc_jpeg_file_to_ctx(file);
>        struct mxc_jpeg_q_data *q_data = mxc_jpeg_get_q_data(ctx, f->type);
>
>        if (ctx->mxc_jpeg->mode == MXC_JPEG_ENCODE) { @@ -2300,7 +2295,7
>@@ static int mxc_jpeg_enum_fmt_vid_cap(struct file *file, void *priv,  static
>int mxc_jpeg_enum_fmt_vid_out(struct file *file, void *priv,
>                                     struct v4l2_fmtdesc *f)  {
>-       struct mxc_jpeg_ctx *ctx = mxc_jpeg_fh_to_ctx(priv);
>+       struct mxc_jpeg_ctx *ctx = mxc_jpeg_file_to_ctx(file);
>        u32 type = ctx->mxc_jpeg->mode == MXC_JPEG_DECODE ?
>MXC_JPEG_FMT_TYPE_ENC :
>                                                             
> MXC_JPEG_FMT_TYPE_RAW;
>        int ret;
>@@ -2441,7 +2436,7 @@ static int mxc_jpeg_try_fmt(struct v4l2_format *f,
>static int mxc_jpeg_try_fmt_vid_cap(struct file *file, void *priv,
>                                    struct v4l2_format *f)  {
>-       struct mxc_jpeg_ctx *ctx = mxc_jpeg_fh_to_ctx(priv);
>+       struct mxc_jpeg_ctx *ctx = mxc_jpeg_file_to_ctx(file);
>        struct mxc_jpeg_dev *jpeg = ctx->mxc_jpeg;
>        struct device *dev = jpeg->dev;
>        struct mxc_jpeg_q_data tmp_q;
>@@ -2460,7 +2455,7 @@ static int mxc_jpeg_try_fmt_vid_cap(struct file *file,
>void *priv,  static int mxc_jpeg_try_fmt_vid_out(struct file *file, void *priv,
>                                    struct v4l2_format *f)  {
>-       struct mxc_jpeg_ctx *ctx = mxc_jpeg_fh_to_ctx(priv);
>+       struct mxc_jpeg_ctx *ctx = mxc_jpeg_file_to_ctx(file);
>        struct mxc_jpeg_dev *jpeg = ctx->mxc_jpeg;
>        struct device *dev = jpeg->dev;
>        struct mxc_jpeg_q_data tmp_q;
>@@ -2512,20 +2507,20 @@ static int mxc_jpeg_s_fmt(struct mxc_jpeg_ctx
>*ctx,  static int mxc_jpeg_s_fmt_vid_cap(struct file *file, void *priv,
>                                  struct v4l2_format *f)  {
>-       return mxc_jpeg_s_fmt(mxc_jpeg_fh_to_ctx(priv), f);
>+       return mxc_jpeg_s_fmt(mxc_jpeg_file_to_ctx(file), f);
> }
>
> static int mxc_jpeg_s_fmt_vid_out(struct file *file, void *priv,
>                                  struct v4l2_format *f)  {
>        int ret;
>-       struct mxc_jpeg_ctx *ctx = mxc_jpeg_fh_to_ctx(priv);
>+       struct mxc_jpeg_ctx *ctx = mxc_jpeg_file_to_ctx(file);
>        struct vb2_queue *dst_vq;
>        struct mxc_jpeg_q_data *q_data_cap;
>        enum v4l2_buf_type cap_type =
>V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
>        struct v4l2_format fc;
>
>-       ret = mxc_jpeg_s_fmt(mxc_jpeg_fh_to_ctx(priv), f);
>+       ret = mxc_jpeg_s_fmt(ctx, f);
>        if (ret)
>                return ret;
>
>@@ -2554,7 +2549,7 @@ static int mxc_jpeg_s_fmt_vid_out(struct file *file,
>void *priv,  static int mxc_jpeg_g_fmt_vid(struct file *file, void *priv,
>                              struct v4l2_format *f)  {
>-       struct mxc_jpeg_ctx *ctx = mxc_jpeg_fh_to_ctx(priv);
>+       struct mxc_jpeg_ctx *ctx = mxc_jpeg_file_to_ctx(file);
>        struct mxc_jpeg_dev *jpeg = ctx->mxc_jpeg;
>        struct device *dev = jpeg->dev;
>        struct v4l2_pix_format_mplane   *pix_mp = &f->fmt.pix_mp;
>@@ -2592,7 +2587,7 @@ static int mxc_jpeg_g_fmt_vid(struct file *file, void
>*priv,
>
> static int mxc_jpeg_dec_g_selection(struct file *file, void *fh, struct
>v4l2_selection *s)  {
>-       struct mxc_jpeg_ctx *ctx = mxc_jpeg_fh_to_ctx(fh);
>+       struct mxc_jpeg_ctx *ctx = mxc_jpeg_file_to_ctx(file);
>        struct mxc_jpeg_q_data *q_data_cap;
>
>        if (s->type != V4L2_BUF_TYPE_VIDEO_CAPTURE && s->type !=
>V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
>@@ -2621,7 +2616,7 @@ static int mxc_jpeg_dec_g_selection(struct file *file,
>void *fh, struct v4l2_sel
>
> static int mxc_jpeg_enc_g_selection(struct file *file, void *fh, struct
>v4l2_selection *s)  {
>-       struct mxc_jpeg_ctx *ctx = mxc_jpeg_fh_to_ctx(fh);
>+       struct mxc_jpeg_ctx *ctx = mxc_jpeg_file_to_ctx(file);
>        struct mxc_jpeg_q_data *q_data_out;
>
>        if (s->type != V4L2_BUF_TYPE_VIDEO_OUTPUT && s->type !=
>V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
>@@ -2649,7 +2644,7 @@ static int mxc_jpeg_enc_g_selection(struct file *file,
>void *fh, struct v4l2_sel
>
> static int mxc_jpeg_g_selection(struct file *file, void *fh, struct 
> v4l2_selection
>*s)  {
>-       struct mxc_jpeg_ctx *ctx = mxc_jpeg_fh_to_ctx(fh);
>+       struct mxc_jpeg_ctx *ctx = mxc_jpeg_file_to_ctx(file);
>
>        if (ctx->mxc_jpeg->mode == MXC_JPEG_DECODE)
>                return mxc_jpeg_dec_g_selection(file, fh, s); @@ -2659,7 
> +2654,7 @@
>static int mxc_jpeg_g_selection(struct file *file, void *fh, struct 
>v4l2_selecti
>
> static int mxc_jpeg_s_selection(struct file *file, void *fh, struct 
> v4l2_selection
>*s)  {
>-       struct mxc_jpeg_ctx *ctx = mxc_jpeg_fh_to_ctx(fh);
>+       struct mxc_jpeg_ctx *ctx = mxc_jpeg_file_to_ctx(file);
>        struct mxc_jpeg_q_data *q_data_out;
>
>        if (ctx->mxc_jpeg->mode != MXC_JPEG_ENCODE)
>
>--
>2.49.0


_______________________________________________
Mjpeg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mjpeg-users

Reply via email to