linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
To: "Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"Devarsh Thakkar" <devarsht@ti.com>,
	"Benoit Parrot" <bparrot@ti.com>,
	"Hans Verkuil" <hverkuil@kernel.org>,
	"Mike Isely" <isely@pobox.com>,
	"Laurent Pinchart" <laurent.pinchart@ideasonboard.com>,
	"Hans de Goede" <hansg@kernel.org>,
	"Parthiban Veerasooran" <parthiban.veerasooran@microchip.com>,
	"Christian Gromm" <christian.gromm@microchip.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Alex Shi" <alexs@kernel.org>,
	"Yanteng Si" <si.yanteng@linux.dev>,
	"Dongliang Mu" <dzm91@hust.edu.cn>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Tomasz Figa" <tfiga@chromium.org>,
	"Marek Szyprowski" <m.szyprowski@samsung.com>,
	"Andy Walls" <awalls@md.metrocast.net>,
	"Michael Tretter" <m.tretter@pengutronix.de>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Bin Liu" <bin.liu@mediatek.com>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"AngeloGioacchino Del Regno"
	<angelogioacchino.delregno@collabora.com>,
	"Dmitry Osipenko" <digetx@gmail.com>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"Jonathan Hunter" <jonathanh@nvidia.com>,
	"Mirela Rabulea" <mirela.rabulea@nxp.com>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Sascha Hauer" <s.hauer@pengutronix.de>,
	"Fabio Estevam" <festevam@gmail.com>,
	"Kieran Bingham" <kieran.bingham+renesas@ideasonboard.com>,
	"Michal Simek" <michal.simek@amd.com>,
	"Ming Qian" <ming.qian@nxp.com>, "Zhou Peng" <eagle.zhou@nxp.com>,
	"Xavier Roumegue" <xavier.roumegue@oss.nxp.com>,
	"Philipp Zabel" <p.zabel@pengutronix.de>,
	"Vikash Garodia" <quic_vgarodia@quicinc.com>,
	"Dikshita Agarwal" <quic_dikshita@quicinc.com>,
	"Abhinav Kumar" <abhinav.kumar@linux.dev>,
	"Bryan O'Donoghue" <bryan.odonoghue@linaro.org>,
	"Sylwester Nawrocki" <sylvester.nawrocki@gmail.com>,
	"Jernej Skrabec" <jernej.skrabec@gmail.com>,
	"Chen-Yu Tsai" <wens@csie.org>,
	"Samuel Holland" <samuel@sholland.org>,
	"Daniel Almeida" <daniel.almeida@collabora.com>,
	"Neil Armstrong" <neil.armstrong@linaro.org>,
	"Kevin Hilman" <khilman@baylibre.com>,
	"Jerome Brunet" <jbrunet@baylibre.com>,
	"Martin Blumenstingl" <martin.blumenstingl@googlemail.com>,
	"Nas Chung" <nas.chung@chipsnmedia.com>,
	"Jackson Lee" <jackson.lee@chipsnmedia.com>,
	"Minghsiu Tsai" <minghsiu.tsai@mediatek.com>,
	"Houlong Wei" <houlong.wei@mediatek.com>,
	"Andrew-CT Chen" <andrew-ct.chen@mediatek.com>,
	"Tiffany Lin" <tiffany.lin@mediatek.com>,
	"Yunfei Dong" <yunfei.dong@mediatek.com>,
	"Geert Uytterhoeven" <geert+renesas@glider.be>,
	"Magnus Damm" <magnus.damm@gmail.com>,
	"Mikhail Ulyanov" <mikhail.ulyanov@cogentembedded.com>,
	"Jacob Chen" <jacob-chen@iotwrt.com>,
	"Ezequiel Garcia" <ezequiel@vanguardiasur.com.ar>,
	"Heiko Stuebner" <heiko@sntech.de>,
	"Detlev Casanova" <detlev.casanova@collabora.com>,
	"Krzysztof Kozlowski" <krzk@kernel.org>,
	"Alim Akhtar" <alim.akhtar@samsung.com>,
	"Sylwester Nawrocki" <s.nawrocki@samsung.com>,
	"Łukasz Stelmach" <l.stelmach@samsung.com>,
	"Andrzej Pietrasiewicz" <andrzejtp2010@gmail.com>,
	"Jacek Anaszewski" <jacek.anaszewski@gmail.com>,
	"Andrzej Hajda" <andrzej.hajda@intel.com>,
	"Fabien Dessenne" <fabien.dessenne@foss.st.com>,
	"Hugues Fruchet" <hugues.fruchet@foss.st.com>,
	"Jean-Christophe Trotin" <jean-christophe.trotin@foss.st.com>,
	"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
	"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
	"Nicolas Dufresne" <nicolas.dufresne@collabora.com>,
	"Benjamin Gaignard" <benjamin.gaignard@collabora.com>,
	"Steve Longerbeam" <slongerbeam@gmail.com>,
	"Maxime Ripard" <mripard@kernel.org>,
	"Paul Kocialkowski" <paulk@sys-base.io>,
	"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	"Robert Foss" <rfoss@kernel.org>,
	"Todor Tomov" <todor.too@gmail.com>,
	"Vladimir Zapolskiy" <vladimir.zapolskiy@linaro.org>,
	"Corentin Labbe" <clabbe@baylibre.com>,
	"Sakari Ailus" <sakari.ailus@linux.intel.com>,
	"Bingbu Cao" <bingbu.cao@intel.com>,
	"Tianshu Qiu" <tian.shu.qiu@intel.com>,
	"Stanislaw Gruszka" <stanislaw.gruszka@linux.intel.com>
Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
	 linux-staging@lists.linux.dev, linux-doc@vger.kernel.org,
	 linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org,  linux-tegra@vger.kernel.org,
	imx@lists.linux.dev,  linux-renesas-soc@vger.kernel.org,
	linux-arm-msm@vger.kernel.org,
	 linux-samsung-soc@vger.kernel.org, linux-sunxi@lists.linux.dev,
	 linux-usb@vger.kernel.org, linux-amlogic@lists.infradead.org,
	 linux-rockchip@lists.infradead.org,
	 linux-stm32@st-md-mailman.stormreply.com,
	mjpeg-users@lists.sourceforge.net,
	 Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Subject: [PATCH 00/65] media: Rationalise usage of v4l2_fh
Date: Sat, 02 Aug 2025 11:22:22 +0200	[thread overview]
Message-ID: <20250802-media-private-data-v1-0-eb140ddd6a9d@ideasonboard.com> (raw)

The v4l2_fh abstraction layer provides to drivers support to represent
per-open file handle context and associate driver-specific data to them.

Currently drivers that do not require custom per-file handle data can
use the v4l2_fh_open() and v4l2_fh_release() helpers as handlers
v4l2_file_operations open() and close() functions. The two helpers
set the file->private_data pointer to the newly allocated v4l2_fh.

Drivers that instead store per-file handle data and represent them with
driver-specific types that embed an instance of struct v4l2_fh have
instead to use different helpers: v4l2_fh_init() and v4l2_fh_add() it's
their responsibility to initialize file->private_data with what they
consider more opportune.

Unfortunately this leads to inconsistencies and slightly different
implementations in drivers, which increase the maintenance burden.

The series starts with patches from Laurent to address some of
these inconsistencies. Some drivers in-facts set the file->private_data
pointer to their own driver-specific types that embed the v4l2_fh.
As the driver-specific type can be accessed with a simple container_of
we can make all drivers set file->private_data to point to the v4l2_fh
to make all the code base use the same pattern.

Once all drivers have been made consistent we can modify the framework
to automate the file->private_data initialisation by modifying
v4l2_fh_add() to set file->private_data to the v4l2_fh allocated by
drivers as part of their private structures. Once that's done we can now
remove all direct accesses to file->private_data by providing the
file_to_v4l2_fh helper.

Now that all drivers that use v4l2_fh are guaranteed to have
file->private_data initialised we can remove accesses to the 'void
*priv' filed provided by v4l2-ioctl to drivers to make sure they always
go through the file * and retrieve the driver specific type from the
v4l2_fh there embedded. This guarantees a more robust data type layout
and make usage of v4l2_fh more consistent and clear across the code
base.

Once that's done, the v4l2-ioctl layer can be modified to stop passing
file->private_data as the second argument to all ioctl handlers, as it
is not ideal to have access to the same data through two different entry
point.

As mentioned in the commit message of the last patch, there are plans to
re-use the second ioctl argument to provide drivers a
video_device_state. This patch series paves the way for that by making
sure the argument can be re-used safely.

Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
---
Jacopo Mondi (36):
      media: rcar-vin: Do not set file->private_data
      media: rzg2l-cru: Do not set file->private_data
      media: camss: Remove custom .release fop()
      media: v4l2-ioctl: Access v4l2_fh from private_data
      media: allegro: Access v4l2_fh from file
      media: meson-ge2d: Access v4l2_fh from file
      media: coda: Access v4l2_fh from file
      media: wave5: Access v4l2_fh from file
      media: m2m-deinterlace: Access v4l2_fh from file
      media: mtk: jpeg: Access v4l2_fh from file->private_data
      media: mtk_mdp_m2m: Access v4l2_fh from file
      media: mtk: mdp3: Access v4l2_fh from file
      media: mtk: vcodec: Access v4l2_fh from file
      media: tegra-vde: Access v4l2_fh from file
      media: imx-jpeg: Access v4l2_fh from file
      media: imx-isi: Access v4l2_fh from file
      media: nxp: mx2: Access v4l2_fh from file
      media: renesas: Access v4l2_fh from file
      media: rockhip: rga: Access v4l2_fh from file
      media: rockchip: rkvdec: Access v4l2_fh from file
      media: exynos-gsc: Access v4l2_fh from file
      media: exynos4-is: Access v4l2_fh from file
      media: s3c-camif: Set queue owner using file
      media: s5p-g2d: Access v4l2_fh from file
      media: s5p-jpeg: Access v4l2_fh from file
      media: s5p-mfc: Access v4l2_fh from file
      media: bdisp: Access v4l2_fh from file
      media: st: delta: Access v4l2_fh from file
      media: stm32: dma2d: Access v4l2_fh from file
      media: omap3isp: Access v4l2_fh from file
      media: cx18:  Access v4l2_fh from file
      media: ivtv: Access v4l2_fh from file
      media: zoran: Remove access to __fh
      media: usb: hdpvr: Access v4l2_fh from file
      media: usb: uvc: Access v4l2_fh from file
      media: staging: imx: Access v4l2_fh from file

Laurent Pinchart (29):
      media: pci: saa7164: Store v4l2_fh pointer in file->private_data
      media: imagination: Store v4l2_fh pointer in file->private_data
      media: ti: vpe: Store v4l2_fh pointer in file->private_data
      media: usb: hdpvr: Store v4l2_fh pointer in file->private_data
      media: usb: pvrusb2: Store v4l2_fh pointer in file->private_data
      media: usb: uvcvideo: Store v4l2_fh pointer in file->private_data
      media: staging: most: Store v4l2_fh pointer in file->private_data
      media: Wrap file->private_data access with a helper function
      media: Replace file->private_data access with file_to_v4l2_fh()
      media: nvidia: tegra-vde: Replace file->private_data access
      media: Replace file->private_data access with custom functions
      media: pci: ivtv: Don't create fake v4l2_fh
      media: amphion: Make some vpu_v4l2 functions static
      media: amphion: Delete v4l2_fh synchronously in .release()
      media: visl: Drop visl_v4l2fh_to_ctx() function
      media: v4l2-fh: Move piece of documentation to correct function
      media: camss: Replace .open() file operation with v4l2_fh_open()
      media: chips-media: wave5: Pass file pointer to wave5_cleanup_instance()
      media: qcom: iris: Pass file pointer to iris_v4l2_fh_(de)init()
      media: qcom: iris: Set file->private_data in iris_v4l2_fh_(de)init()
      media: qcom: iris: Drop unused argument to iris_get_inst()
      media: qcom: venus: Pass file pointer to venus_close_common()
      media: Set file->private_data in v4l2_fh_add()
      media: Reset file->private_data to NULL in v4l2_fh_del()
      media: hantro: Access v4l2_fh from file->private_data
      media: v4l2-ctrls: Move v4l2_fh retrieval after V4L2_FL_USES_V4L2_FH check
      media: ipu6: isys: Don't set V4L2_FL_USES_V4L2_FH manually
      media: staging: ipu7: isys: Don't set V4L2_FL_USES_V4L2_FH manually
      media: v4l2-ioctl: Stop passing fh pointer to ioctl handlers

 Documentation/driver-api/media/v4l2-fh.rst         |  56 ++---
 .../zh_CN/video4linux/v4l2-framework.txt           |  11 +-
 drivers/media/common/videobuf2/videobuf2-v4l2.c    |   2 +-
 drivers/media/pci/cx18/cx18-driver.h               |   2 +-
 drivers/media/pci/cx18/cx18-fileops.c              |  11 +-
 drivers/media/pci/cx18/cx18-ioctl.c                |  64 +++---
 drivers/media/pci/intel/ipu6/ipu6-isys-video.c     |   1 -
 drivers/media/pci/ivtv/ivtv-alsa-pcm.c             |   2 -
 drivers/media/pci/ivtv/ivtv-driver.h               |   7 +-
 drivers/media/pci/ivtv/ivtv-fileops.c              |  40 ++--
 drivers/media/pci/ivtv/ivtv-ioctl.c                | 124 +++++------
 drivers/media/pci/ivtv/ivtv-irq.c                  |   4 +-
 drivers/media/pci/saa7164/saa7164-encoder.c        |  30 ++-
 drivers/media/pci/saa7164/saa7164-vbi.c            |  25 ++-
 drivers/media/pci/saa7164/saa7164.h                |  10 +
 drivers/media/pci/zoran/zoran.h                    |   6 -
 drivers/media/pci/zoran/zoran_driver.c             |   3 +-
 drivers/media/platform/allegro-dvt/allegro-core.c  |  32 +--
 drivers/media/platform/amlogic/meson-ge2d/ge2d.c   |  25 ++-
 drivers/media/platform/amphion/vpu.h               |   2 +-
 drivers/media/platform/amphion/vpu_v4l2.c          |  22 +-
 drivers/media/platform/amphion/vpu_v4l2.h          |   8 -
 .../media/platform/chips-media/coda/coda-common.c  |  50 +++--
 .../platform/chips-media/wave5/wave5-helper.c      |  10 +-
 .../platform/chips-media/wave5/wave5-helper.h      |   2 +-
 .../platform/chips-media/wave5/wave5-vpu-dec.c     |  23 +-
 .../platform/chips-media/wave5/wave5-vpu-enc.c     |  29 ++-
 .../media/platform/chips-media/wave5/wave5-vpu.h   |   5 +
 .../media/platform/imagination/e5010-jpeg-enc.c    |  23 +-
 .../media/platform/imagination/e5010-jpeg-enc.h    |   5 +
 drivers/media/platform/m2m-deinterlace.c           |  26 ++-
 .../media/platform/mediatek/jpeg/mtk_jpeg_core.c   |  37 ++--
 drivers/media/platform/mediatek/mdp/mtk_mdp_m2m.c  |  29 ++-
 .../media/platform/mediatek/mdp3/mtk-mdp3-m2m.c    |  25 ++-
 .../mediatek/vcodec/decoder/mtk_vcodec_dec.c       |  36 ++--
 .../mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c   |   9 +-
 .../mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h   |   5 +
 .../mediatek/vcodec/encoder/mtk_vcodec_enc.c       |  37 ++--
 .../mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c   |   9 +-
 .../mediatek/vcodec/encoder/mtk_vcodec_enc_drv.h   |   4 +-
 drivers/media/platform/nvidia/tegra-vde/v4l2.c     |  35 ++-
 drivers/media/platform/nxp/dw100/dw100.c           |   7 +-
 drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c     |  45 ++--
 drivers/media/platform/nxp/imx-pxp.c               |   7 +-
 drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c |  21 +-
 drivers/media/platform/nxp/mx2_emmaprp.c           |  24 ++-
 drivers/media/platform/qcom/camss/camss-video.c    |  43 +---
 drivers/media/platform/qcom/iris/iris_vidc.c       |  36 ++--
 drivers/media/platform/qcom/venus/core.c           |   4 +-
 drivers/media/platform/qcom/venus/core.h           |   4 +-
 drivers/media/platform/qcom/venus/vdec.c           |   5 +-
 drivers/media/platform/qcom/venus/venc.c           |   5 +-
 .../media/platform/renesas/rcar-vin/rcar-v4l2.c    |   2 -
 drivers/media/platform/renesas/rcar_fdp1.c         |  17 +-
 drivers/media/platform/renesas/rcar_jpu.c          |  27 ++-
 .../media/platform/renesas/rzg2l-cru/rzg2l-video.c |   1 -
 drivers/media/platform/renesas/vsp1/vsp1_histo.c   |   6 +-
 drivers/media/platform/renesas/vsp1/vsp1_video.c   |  18 +-
 drivers/media/platform/rockchip/rga/rga.c          |  16 +-
 drivers/media/platform/rockchip/rga/rga.h          |   5 +
 drivers/media/platform/rockchip/rkvdec/rkvdec.c    |  21 +-
 drivers/media/platform/rockchip/rkvdec/rkvdec.h    |   4 +-
 .../media/platform/samsung/exynos-gsc/gsc-core.h   |   6 +-
 .../media/platform/samsung/exynos-gsc/gsc-m2m.c    |  37 ++--
 .../media/platform/samsung/exynos4-is/fimc-core.h  |   5 +-
 .../media/platform/samsung/exynos4-is/fimc-m2m.c   |  19 +-
 .../platform/samsung/s3c-camif/camif-capture.c     |  26 +--
 drivers/media/platform/samsung/s5p-g2d/g2d.c       |  22 +-
 .../media/platform/samsung/s5p-jpeg/jpeg-core.c    |  33 ++-
 drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c   |  13 +-
 .../platform/samsung/s5p-mfc/s5p_mfc_common.h      |   6 +
 .../media/platform/samsung/s5p-mfc/s5p_mfc_dec.c   |  22 +-
 .../media/platform/samsung/s5p-mfc/s5p_mfc_enc.c   |  24 +--
 drivers/media/platform/st/sti/bdisp/bdisp-v4l2.c   |  30 +--
 drivers/media/platform/st/sti/delta/delta-v4l2.c   |  41 ++--
 drivers/media/platform/st/sti/hva/hva-v4l2.c       |  38 ++--
 drivers/media/platform/st/sti/hva/hva.h            |   2 -
 drivers/media/platform/st/stm32/dma2d/dma2d.c      |  18 +-
 drivers/media/platform/sunxi/sun8i-di/sun8i-di.c   |  10 +-
 .../platform/sunxi/sun8i-rotate/sun8i_rotate.c     |  10 +-
 drivers/media/platform/ti/omap3isp/ispvideo.c      |  36 ++--
 drivers/media/platform/ti/omap3isp/ispvideo.h      |   6 +-
 drivers/media/platform/ti/vpe/vpe.c                |  21 +-
 drivers/media/platform/verisilicon/hantro.h        |   4 +-
 drivers/media/platform/verisilicon/hantro_drv.c    |  10 +-
 drivers/media/platform/verisilicon/hantro_v4l2.c   |  22 +-
 drivers/media/platform/xilinx/xilinx-dma.c         |  10 +-
 drivers/media/test-drivers/vicodec/vicodec-core.c  |   7 +-
 drivers/media/test-drivers/vim2m.c                 |   7 +-
 drivers/media/test-drivers/visl/visl-core.c        |   5 +-
 drivers/media/test-drivers/visl/visl.h             |   7 +-
 drivers/media/test-drivers/vivid/vivid-core.c      |   4 +-
 drivers/media/test-drivers/vivid/vivid-radio-rx.c  |   4 +-
 drivers/media/test-drivers/vivid/vivid-radio-tx.c  |   4 +-
 drivers/media/usb/hdpvr/hdpvr-video.c              |  39 ++--
 drivers/media/usb/pvrusb2/pvrusb2-v4l2.c           |  69 +++---
 drivers/media/usb/uvc/uvc_metadata.c               |  10 +-
 drivers/media/usb/uvc/uvc_v4l2.c                   |  47 ++--
 drivers/media/usb/uvc/uvcvideo.h                   |   5 +
 drivers/media/v4l2-core/v4l2-compat-ioctl32.c      |   2 +-
 drivers/media/v4l2-core/v4l2-ctrls-api.c           |   9 +-
 drivers/media/v4l2-core/v4l2-fh.c                  |  16 +-
 drivers/media/v4l2-core/v4l2-ioctl.c               |  53 ++---
 drivers/media/v4l2-core/v4l2-mem2mem.c             |  34 +--
 drivers/media/v4l2-core/v4l2-subdev.c              |  16 +-
 drivers/staging/media/imx/imx-media-csc-scaler.c   |  26 +--
 drivers/staging/media/ipu7/ipu7-isys-video.c       |   1 -
 drivers/staging/media/meson/vdec/vdec.c            |  29 +--
 drivers/staging/media/meson/vdec/vdec.h            |   5 +
 drivers/staging/media/sunxi/cedrus/cedrus.c        |   8 +-
 drivers/staging/media/sunxi/cedrus/cedrus.h        |   5 +
 drivers/staging/media/sunxi/cedrus/cedrus_video.c  |   5 -
 drivers/staging/most/video/video.c                 |  19 +-
 drivers/usb/gadget/function/uvc.h                  |   5 +
 drivers/usb/gadget/function/uvc_v4l2.c             |   8 +-
 include/media/v4l2-fh.h                            |  28 ++-
 include/media/v4l2-ioctl.h                         | 236 ++++++++++-----------
 117 files changed, 1203 insertions(+), 1185 deletions(-)
---
base-commit: d968e50b5c26642754492dea23cbd3592bde62d8
change-id: 20250801-media-private-data-4515851e7e1d

Best regards,
-- 
Jacopo Mondi <jacopo.mondi@ideasonboard.com>


             reply	other threads:[~2025-08-02  9:23 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-02  9:22 Jacopo Mondi [this message]
2025-08-02  9:22 ` [PATCH 01/65] media: pci: saa7164: Store v4l2_fh pointer in file->private_data Jacopo Mondi
2025-08-02  9:22 ` [PATCH 02/65] media: imagination: " Jacopo Mondi
2025-08-02  9:22 ` [PATCH 03/65] media: ti: vpe: " Jacopo Mondi
2025-08-02  9:22 ` [PATCH 04/65] media: usb: hdpvr: " Jacopo Mondi
2025-08-02  9:22 ` [PATCH 05/65] media: usb: pvrusb2: " Jacopo Mondi
2025-08-02  9:22 ` [PATCH 06/65] media: usb: uvcvideo: " Jacopo Mondi
2025-08-02  9:22 ` [PATCH 07/65] media: staging: most: " Jacopo Mondi
2025-08-02  9:22 ` [PATCH 08/65] media: Wrap file->private_data access with a helper function Jacopo Mondi
2025-08-02  9:22 ` [PATCH 09/65] media: Replace file->private_data access with file_to_v4l2_fh() Jacopo Mondi
2025-08-02  9:22 ` [PATCH 10/65] media: nvidia: tegra-vde: Replace file->private_data access Jacopo Mondi
2025-08-02  9:22 ` [PATCH 11/65] media: Replace file->private_data access with custom functions Jacopo Mondi
2025-08-06  8:16   ` Hans Verkuil
2025-08-06  9:48     ` Laurent Pinchart
2025-08-06 10:23       ` Hans Verkuil
2025-08-18 14:10   ` Lukasz Stelmach
2025-08-02  9:22 ` [PATCH 12/65] media: pci: ivtv: Don't create fake v4l2_fh Jacopo Mondi
2025-08-02  9:22 ` [PATCH 13/65] media: amphion: Make some vpu_v4l2 functions static Jacopo Mondi
2025-08-05  1:34   ` [EXT] " Ming Qian
2025-08-02  9:22 ` [PATCH 14/65] media: amphion: Delete v4l2_fh synchronously in .release() Jacopo Mondi
2025-08-05  1:43   ` [EXT] " Ming Qian
2025-08-02  9:22 ` [PATCH 15/65] media: visl: Drop visl_v4l2fh_to_ctx() function Jacopo Mondi
2025-08-02  9:22 ` [PATCH 16/65] media: v4l2-fh: Move piece of documentation to correct function Jacopo Mondi
2025-08-02  9:22 ` [PATCH 17/65] media: rcar-vin: Do not set file->private_data Jacopo Mondi
2025-08-02 13:26   ` Niklas Söderlund
2025-08-02  9:22 ` [PATCH 18/65] media: rzg2l-cru: " Jacopo Mondi
2025-08-04 10:01   ` Tommaso Merciai
2025-08-02  9:22 ` [PATCH 19/65] media: camss: Replace .open() file operation with v4l2_fh_open() Jacopo Mondi
2025-08-24 19:04   ` Vladimir Zapolskiy
2025-08-02  9:22 ` [PATCH 20/65] media: camss: Remove custom .release fop() Jacopo Mondi
2025-08-24 19:07   ` Vladimir Zapolskiy
2025-08-02  9:22 ` [PATCH 21/65] media: chips-media: wave5: Pass file pointer to wave5_cleanup_instance() Jacopo Mondi
2025-08-02  9:22 ` [PATCH 22/65] media: qcom: iris: Pass file pointer to iris_v4l2_fh_(de)init() Jacopo Mondi
2025-08-02  9:22 ` [PATCH 23/65] media: qcom: iris: Set file->private_data in iris_v4l2_fh_(de)init() Jacopo Mondi
2025-08-02  9:22 ` [PATCH 24/65] media: qcom: iris: Drop unused argument to iris_get_inst() Jacopo Mondi
2025-08-02  9:22 ` [PATCH 25/65] media: qcom: venus: Pass file pointer to venus_close_common() Jacopo Mondi
2025-08-02  9:22 ` [PATCH 26/65] media: Set file->private_data in v4l2_fh_add() Jacopo Mondi
2025-08-02  9:22 ` [PATCH 27/65] media: Reset file->private_data to NULL in v4l2_fh_del() Jacopo Mondi
2025-08-06 12:45   ` Hans Verkuil
2025-08-07  8:50     ` Laurent Pinchart
2025-08-07 17:00       ` Laurent Pinchart
2025-08-07 20:25         ` Laurent Pinchart
2025-08-07 20:51           ` Hans Verkuil
2025-08-08  6:30             ` Laurent Pinchart
2025-08-18 14:12   ` Lukasz Stelmach
2025-08-02  9:22 ` [PATCH 28/65] media: v4l2-ioctl: Access v4l2_fh from private_data Jacopo Mondi
2025-08-02  9:22 ` [PATCH 29/65] media: allegro: Access v4l2_fh from file Jacopo Mondi
2025-08-05  7:39   ` Michael Tretter
2025-08-02  9:22 ` [PATCH 30/65] media: meson-ge2d: " Jacopo Mondi
2025-08-02  9:22 ` [PATCH 31/65] media: coda: " Jacopo Mondi
2025-08-02  9:22 ` [PATCH 32/65] media: wave5: " Jacopo Mondi
2025-08-02  9:22 ` [PATCH 33/65] media: m2m-deinterlace: " Jacopo Mondi
2025-08-02  9:22 ` [PATCH 34/65] media: mtk: jpeg: Access v4l2_fh from file->private_data Jacopo Mondi
2025-08-02  9:22 ` [PATCH 35/65] media: mtk_mdp_m2m: Access v4l2_fh from file Jacopo Mondi
2025-08-02  9:22 ` [PATCH 36/65] media: mtk: mdp3: " Jacopo Mondi
2025-08-02  9:22 ` [PATCH 37/65] media: mtk: vcodec: " Jacopo Mondi
2025-08-02  9:23 ` [PATCH 38/65] media: tegra-vde: " Jacopo Mondi
2025-08-02  9:23 ` [PATCH 39/65] media: imx-jpeg: " Jacopo Mondi
2025-08-05  1:58   ` [EXT] " Ming Qian
2025-08-02  9:23 ` [PATCH 40/65] media: imx-isi: " Jacopo Mondi
2025-08-02  9:23 ` [PATCH 41/65] media: nxp: mx2: " Jacopo Mondi
2025-08-02  9:23 ` [PATCH 42/65] media: renesas: " Jacopo Mondi
2025-08-05  9:59   ` Kieran Bingham
2025-08-02  9:23 ` [PATCH 43/65] media: rockhip: rga: " Jacopo Mondi
2025-08-02  9:23 ` [PATCH 44/65] media: rockchip: rkvdec: " Jacopo Mondi
2025-08-02 16:02   ` Detlev Casanova
2025-08-02  9:23 ` [PATCH 45/65] media: exynos-gsc: " Jacopo Mondi
2025-08-02  9:23 ` [PATCH 46/65] media: exynos4-is: " Jacopo Mondi
2025-08-02  9:23 ` [PATCH 47/65] media: s3c-camif: Set queue owner using file Jacopo Mondi
2025-08-02  9:23 ` [PATCH 48/65] media: s5p-g2d: Access v4l2_fh from file Jacopo Mondi
2025-08-02  9:23 ` [PATCH 49/65] media: s5p-jpeg: " Jacopo Mondi
2025-08-03 18:02   ` Andrzej Pietrasiewicz
2025-08-02  9:23 ` [PATCH 50/65] media: s5p-mfc: " Jacopo Mondi
2025-08-02  9:23 ` [PATCH 51/65] media: bdisp: " Jacopo Mondi
2025-08-02  9:23 ` [PATCH 52/65] media: st: delta: " Jacopo Mondi
2025-08-02  9:23 ` [PATCH 53/65] media: stm32: dma2d: " Jacopo Mondi
2025-08-02  9:23 ` [PATCH 54/65] media: hantro: Access v4l2_fh from file->private_data Jacopo Mondi
2025-08-04 21:59   ` Paul Kocialkowski
2025-08-02  9:23 ` [PATCH 55/65] media: omap3isp: Access v4l2_fh from file Jacopo Mondi
2025-08-02  9:23 ` [PATCH 56/65] media: cx18: " Jacopo Mondi
2025-08-02  9:23 ` [PATCH 57/65] media: ivtv: " Jacopo Mondi
2025-08-02  9:23 ` [PATCH 58/65] media: zoran: Remove access to __fh Jacopo Mondi
2025-08-07  6:58   ` Hans Verkuil
2025-08-07 12:31     ` Laurent Pinchart
2025-08-07 13:18       ` Hans Verkuil
2025-08-02  9:23 ` [PATCH 59/65] media: usb: hdpvr: Access v4l2_fh from file Jacopo Mondi
2025-08-02  9:23 ` [PATCH 60/65] media: usb: uvc: " Jacopo Mondi
2025-08-02  9:23 ` [PATCH 61/65] media: staging: imx: " Jacopo Mondi
2025-08-02  9:23 ` [PATCH 62/65] media: v4l2-ctrls: Move v4l2_fh retrieval after V4L2_FL_USES_V4L2_FH check Jacopo Mondi
2025-08-02  9:23 ` [PATCH 63/65] media: ipu6: isys: Don't set V4L2_FL_USES_V4L2_FH manually Jacopo Mondi
2025-08-08  1:01   ` Cao, Bingbu
2025-08-08  7:22   ` Sakari Ailus
2025-08-02  9:23 ` [PATCH 64/65] media: staging: ipu7: " Jacopo Mondi
2025-08-07  9:07   ` Sakari Ailus
2025-08-07 17:01     ` Laurent Pinchart
2025-08-08  7:22       ` Sakari Ailus
2025-08-02  9:23 ` [PATCH 65/65] media: v4l2-ioctl: Stop passing fh pointer to ioctl handlers Jacopo Mondi
2025-08-07  7:26   ` Hans Verkuil
2025-08-07  7:58     ` Hans Verkuil
2025-08-07 20:33       ` Laurent Pinchart
2025-08-07 20:55         ` Hans Verkuil
2025-08-08  7:00           ` 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=20250802-media-private-data-v1-0-eb140ddd6a9d@ideasonboard.com \
    --to=jacopo.mondi@ideasonboard.com \
    --cc=abhinav.kumar@linux.dev \
    --cc=alexandre.torgue@foss.st.com \
    --cc=alexs@kernel.org \
    --cc=alim.akhtar@samsung.com \
    --cc=andrew-ct.chen@mediatek.com \
    --cc=andrzej.hajda@intel.com \
    --cc=andrzejtp2010@gmail.com \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=awalls@md.metrocast.net \
    --cc=benjamin.gaignard@collabora.com \
    --cc=bin.liu@mediatek.com \
    --cc=bingbu.cao@intel.com \
    --cc=bparrot@ti.com \
    --cc=bryan.odonoghue@linaro.org \
    --cc=christian.gromm@microchip.com \
    --cc=clabbe@baylibre.com \
    --cc=corbet@lwn.net \
    --cc=daniel.almeida@collabora.com \
    --cc=detlev.casanova@collabora.com \
    --cc=devarsht@ti.com \
    --cc=digetx@gmail.com \
    --cc=dzm91@hust.edu.cn \
    --cc=eagle.zhou@nxp.com \
    --cc=ezequiel@vanguardiasur.com.ar \
    --cc=fabien.dessenne@foss.st.com \
    --cc=festevam@gmail.com \
    --cc=geert+renesas@glider.be \
    --cc=gregkh@linuxfoundation.org \
    --cc=hansg@kernel.org \
    --cc=heiko@sntech.de \
    --cc=houlong.wei@mediatek.com \
    --cc=hugues.fruchet@foss.st.com \
    --cc=hverkuil@kernel.org \
    --cc=imx@lists.linux.dev \
    --cc=isely@pobox.com \
    --cc=jacek.anaszewski@gmail.com \
    --cc=jackson.lee@chipsnmedia.com \
    --cc=jacob-chen@iotwrt.com \
    --cc=jbrunet@baylibre.com \
    --cc=jean-christophe.trotin@foss.st.com \
    --cc=jernej.skrabec@gmail.com \
    --cc=jonathanh@nvidia.com \
    --cc=kernel@pengutronix.de \
    --cc=khilman@baylibre.com \
    --cc=kieran.bingham+renesas@ideasonboard.com \
    --cc=krzk@kernel.org \
    --cc=l.stelmach@samsung.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-amlogic@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=linux-sunxi@lists.linux.dev \
    --cc=linux-tegra@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=m.tretter@pengutronix.de \
    --cc=magnus.damm@gmail.com \
    --cc=martin.blumenstingl@googlemail.com \
    --cc=matthias.bgg@gmail.com \
    --cc=mchehab@kernel.org \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=michal.simek@amd.com \
    --cc=mikhail.ulyanov@cogentembedded.com \
    --cc=ming.qian@nxp.com \
    --cc=minghsiu.tsai@mediatek.com \
    --cc=mirela.rabulea@nxp.com \
    --cc=mjpeg-users@lists.sourceforge.net \
    --cc=mripard@kernel.org \
    --cc=nas.chung@chipsnmedia.com \
    --cc=neil.armstrong@linaro.org \
    --cc=nicolas.dufresne@collabora.com \
    --cc=niklas.soderlund@ragnatech.se \
    --cc=p.zabel@pengutronix.de \
    --cc=parthiban.veerasooran@microchip.com \
    --cc=paulk@sys-base.io \
    --cc=quic_dikshita@quicinc.com \
    --cc=quic_vgarodia@quicinc.com \
    --cc=rfoss@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=s.nawrocki@samsung.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=samuel@sholland.org \
    --cc=shawnguo@kernel.org \
    --cc=si.yanteng@linux.dev \
    --cc=slongerbeam@gmail.com \
    --cc=stanislaw.gruszka@linux.intel.com \
    --cc=sylvester.nawrocki@gmail.com \
    --cc=tfiga@chromium.org \
    --cc=thierry.reding@gmail.com \
    --cc=tian.shu.qiu@intel.com \
    --cc=tiffany.lin@mediatek.com \
    --cc=todor.too@gmail.com \
    --cc=vladimir.zapolskiy@linaro.org \
    --cc=wens@csie.org \
    --cc=xavier.roumegue@oss.nxp.com \
    --cc=yunfei.dong@mediatek.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).