From nobody Thu Oct 2 07:45:15 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 95106233D7B; Fri, 19 Sep 2025 09:57:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275827; cv=none; b=FAkwJfdCeTfre0OQkFRhPDd0pSQIzGR0hwera4S5U+99PRnUiGqelQgQ8fWRxtUNSBx4Vp92ZLrzg1OoJHC+1B50ABzjNTpekdl2zLtB+F4omQMn4z7mrzXaKEg8SfM2otGNJBZ8TFtKLHWF4P/5PyfF+FVGaYT4nbCSRPeg/ak= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275827; c=relaxed/simple; bh=dQZUXDBU9VTisrmACgFhfCmslHInS7+4IkSl/wCbELw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CABUwKgIME2ibn8zew7LgRBH48V4j5eH0qLd5Wyee6n0XdfsGR4zlefKYnHFRymY72ELdnbTSuE41Rdpe3V5kwHGN/0E7m129kNaABoBjuKwtBM9kAjEnl6eFEmhteAN3le4mUfG0QmTcTcCv8g77gJOnuu7KFnwjmqPt8GwDXo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=DD7UEsq1; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="DD7UEsq1" Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c30:4816:952:3054:81b6:1a3a]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id C673B842; Fri, 19 Sep 2025 11:55:42 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1758275743; bh=dQZUXDBU9VTisrmACgFhfCmslHInS7+4IkSl/wCbELw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=DD7UEsq10EOVsS4MqGUsBYgyCmkmOq+zvxkjtCc+LB2oVkW4wzlxc38P5yj5u8F3C 93lf0OFXIeb7v1ocRAuZBMvpQczOozR/JxPrybzHS8M8N43A1BGDafWnpR4CJF0QMk iqFcskLQ4OE1fiZ/TqUEv4tg00sE5pfanumjC8SM= From: Jai Luthra Date: Fri, 19 Sep 2025 15:25:53 +0530 Subject: [PATCH v2 01/10] media: v4l2-core: Introduce state management for video devices Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250919-vdev-state-v2-1-b2c42426965c@ideasonboard.com> References: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> In-Reply-To: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> To: Hans Verkuil , Mauro Carvalho Chehab , Sakari Ailus , Laurent Pinchart , Tomi Valkeinen , Jacopo Mondi , linux-media@vger.kernel.org Cc: Jai Luthra , Ricardo Ribalda , Laurent Pinchart , Al Viro , Ma Ke , linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 Similar to V4L2 subdev states, introduce state support for video devices to provide a centralized location for storing device state information. This includes the current (active) pixelformat used by the device and the temporary (try) pixelformat used during format negotiation. In the future, this may be extended or subclassed by device drivers to store their internal state variables. Also introduce a flag for drivers that wish to use this state management. When set, the framework automatically allocates the state during device registration and stores a pointer to it within the video_device structure. This change aligns video devices with V4L2 subdevices by storing hardware state in a common framework-allocated structure. This is the first step towards enabling the multiplexing of the underlying hardware by using different software "contexts", each represented by the combined state of all video devices and V4L2 subdevices in a complex media graph. Signed-off-by: Jai Luthra -- Cc: Mauro Carvalho Chehab Cc: Hans Verkuil Cc: Ricardo Ribalda Cc: Laurent Pinchart Cc: Al Viro Cc: Ma Ke Cc: Jai Luthra Cc: linux-media@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/media/v4l2-core/v4l2-dev.c | 27 +++++++++++++++++++++++++ include/media/v4l2-dev.h | 40 ++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 67 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-dev.c b/drivers/media/v4l2-core/v= 4l2-dev.c index 10a126e50c1ca25b1bd0e9872571261acfc26b39..997255709448510fcd17b6de798= a3df99cd7ea09 100644 --- a/drivers/media/v4l2-core/v4l2-dev.c +++ b/drivers/media/v4l2-core/v4l2-dev.c @@ -163,6 +163,27 @@ void video_device_release_empty(struct video_device *v= dev) } EXPORT_SYMBOL(video_device_release_empty); =20 +struct video_device_state * +__video_device_state_alloc(struct video_device *vdev) +{ + struct video_device_state *state =3D + kzalloc(sizeof(struct video_device_state), GFP_KERNEL); + + if (!state) + return ERR_PTR(-ENOMEM); + + state->vdev =3D vdev; + + return state; +} +EXPORT_SYMBOL_GPL(__video_device_state_alloc); + +void __video_device_state_free(struct video_device_state *state) +{ + kfree(state); +} +EXPORT_SYMBOL_GPL(__video_device_state_free); + static inline void video_get(struct video_device *vdev) { get_device(&vdev->dev); @@ -939,6 +960,10 @@ int __video_register_device(struct video_device *vdev, spin_lock_init(&vdev->fh_lock); INIT_LIST_HEAD(&vdev->fh_list); =20 + /* state support */ + if (test_bit(V4L2_FL_USES_STATE, &vdev->flags)) + vdev->state =3D __video_device_state_alloc(vdev); + /* Part 1: check device type */ switch (type) { case VFL_TYPE_VIDEO: @@ -1127,6 +1152,8 @@ void video_unregister_device(struct video_device *vde= v) clear_bit(V4L2_FL_REGISTERED, &vdev->flags); mutex_unlock(&videodev_lock); v4l2_event_wake_all(vdev); + if (test_bit(V4L2_FL_USES_STATE, &vdev->flags)) + __video_device_state_free(vdev->state); device_unregister(&vdev->dev); } EXPORT_SYMBOL(video_unregister_device); diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h index a213c3398dcf60be8c531df87bf40c56b4ad772d..57e4691ef467aa2b0782dd4b835= 7bd0670643293 100644 --- a/include/media/v4l2-dev.h +++ b/include/media/v4l2-dev.h @@ -89,12 +89,18 @@ struct dentry; * set by the core when the sub-devices device nodes are registered with * v4l2_device_register_ro_subdev_nodes() and used by the sub-device ioctl * handler to restrict access to some ioctl calls. + * @V4L2_FL_USES_STATE: + * indicates that the &struct video_device has state support. + * The active video and metadata formats are stored in video_device.state, + * and the try video and metadata formats are stored in v4l2_fh.state. + * All new drivers should use it. */ enum v4l2_video_device_flags { V4L2_FL_REGISTERED =3D 0, V4L2_FL_USES_V4L2_FH =3D 1, V4L2_FL_QUIRK_INVERTED_CROP =3D 2, V4L2_FL_SUBDEV_RO_DEVNODE =3D 3, + V4L2_FL_USES_STATE =3D 4, }; =20 /* Priority helper functions */ @@ -214,6 +220,17 @@ struct v4l2_file_operations { int (*release) (struct file *); }; =20 +/** + * struct video_device_state - Used for storing video device state informa= tion. + * + * @fmt: Format of the capture stream + * @vdev: Pointer to video device + */ +struct video_device_state { + struct v4l2_format fmt; + struct video_device *vdev; +}; + /* * Newer version of video_device, handled by videodev2.c * This version moves redundant code from video device code to @@ -238,6 +255,7 @@ struct v4l2_file_operations { * @queue: &struct vb2_queue associated with this device node. May be NULL. * @prio: pointer to &struct v4l2_prio_state with device's Priority state. * If NULL, then v4l2_dev->prio will be used. + * @state: &struct video_device_state, holds the active state for the devi= ce. * @name: video device name * @vfl_type: V4L device type, as defined by &enum vfl_devnode_type * @vfl_dir: V4L receiver, transmitter or m2m @@ -283,6 +301,7 @@ struct video_device { struct vb2_queue *queue; =20 struct v4l2_prio_state *prio; + struct video_device_state *state; =20 /* device info */ char name[64]; @@ -546,6 +565,27 @@ static inline int video_is_registered(struct video_dev= ice *vdev) return test_bit(V4L2_FL_REGISTERED, &vdev->flags); } =20 +/** __video_device_state_alloc - allocate video device state structure + * + * @vdev: pointer to struct video_device + * + * .. note:: + * + * This function is meant to be used only inside the V4L2 core. + */ +struct video_device_state * +__video_device_state_alloc(struct video_device *vdev); + +/** __video_device_state_free - free video device state structure + * + * @state: pointer to the state to be freed + * + * .. note:: + * + * This function is meant to be used only inside the V4L2 core. + */ +void __video_device_state_free(struct video_device_state *state); + /** * v4l2_debugfs_root - returns the dentry of the top-level "v4l2" debugfs = dir * --=20 2.51.0 From nobody Thu Oct 2 07:45:15 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E1C962F7AA4; Fri, 19 Sep 2025 09:57:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275833; cv=none; b=BIa55DNdlLpO4l05sGyPwPL4iO2zsW5OOxCNiRls+L7mS2CojBwVaPnuD+9r1aBMcnK8HHk2JzOm7Hu3ePxb94B9N+PBVc14WJuN9QgHDtxOtec8V/WMHzwzkvSbBEKLuxXzdr23xdykLj3gLkZTtf5o80je/iI5hN1tT4QHZKw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275833; c=relaxed/simple; bh=zi+W0CZreNIqEcNEjhFL5ido8PnktxVJ9Wdjfz6ljaI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tu6KFoIPuF2H/V/+87jZCCTbzKep+YTF1Omx0FMByvPEMZmhYqX5RRFjW2ShCDX6xdsDWet3gBLEzK91g8mOoZbwe4Wnp5KlJne+9nYER9dYLYhaCEkeC4g8tZ886IYyDaJjFAc2G4zAv0leiUnvTajClbXIYNRBXlNyw8iLC3Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=aK6UsDOG; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="aK6UsDOG" Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c30:4816:952:3054:81b6:1a3a]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id B715E842; Fri, 19 Sep 2025 11:55:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1758275749; bh=zi+W0CZreNIqEcNEjhFL5ido8PnktxVJ9Wdjfz6ljaI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=aK6UsDOG75qZzWgbZY+yfsWVdTDgPsvguu0zVZMEHbTwmCUMcqHVJ/oxhuLM96rSq KEOiuCR9y9X2L9uSOfAHVsMQkP1vulVTSd7+zquWxbJxoKDSEg7SVVCHuTZh/4f5i7 fI6idbCDw+ZaId4ngQjm7UDOLr+/H0euOFBfOa08= From: Jai Luthra Date: Fri, 19 Sep 2025 15:25:54 +0530 Subject: [PATCH v2 02/10] media: v4l2-dev: Add support for try state Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250919-vdev-state-v2-2-b2c42426965c@ideasonboard.com> References: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> In-Reply-To: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> To: Hans Verkuil , Mauro Carvalho Chehab , Sakari Ailus , Laurent Pinchart , Tomi Valkeinen , Jacopo Mondi , linux-media@vger.kernel.org Cc: Jai Luthra , Ricardo Ribalda , Laurent Pinchart , Ma Ke , Bartosz Golaszewski , linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 Format negotiation performed via the TRY_FMT ioctl should only affect the temporary context of a specific filehandle, not the active state stored in the video device structure. To support this distinction, we need separate storage for try and active states. Introduce an enum to distinguish between these two state types and store the try state in struct v4l2_fh instead of the video device structure. The try state is allocated during file handle initialization in v4l2_fh_init() and released in v4l2_fh_exit(). Signed-off-by: Jai Luthra -- Cc: Mauro Carvalho Chehab Cc: Hans Verkuil Cc: Ricardo Ribalda Cc: Laurent Pinchart Cc: Jai Luthra Cc: Ma Ke Cc: Bartosz Golaszewski Cc: linux-media@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/media/v4l2-core/v4l2-dev.c | 7 +++++-- drivers/media/v4l2-core/v4l2-fh.c | 6 ++++++ include/media/v4l2-dev.h | 17 ++++++++++++++++- include/media/v4l2-fh.h | 2 ++ 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/drivers/media/v4l2-core/v4l2-dev.c b/drivers/media/v4l2-core/v= 4l2-dev.c index 997255709448510fcd17b6de798a3df99cd7ea09..26b6b2f37ca55ce981aa17a28a8= 75dc3cf253d9b 100644 --- a/drivers/media/v4l2-core/v4l2-dev.c +++ b/drivers/media/v4l2-core/v4l2-dev.c @@ -164,7 +164,8 @@ void video_device_release_empty(struct video_device *vd= ev) EXPORT_SYMBOL(video_device_release_empty); =20 struct video_device_state * -__video_device_state_alloc(struct video_device *vdev) +__video_device_state_alloc(struct video_device *vdev, + enum video_device_state_whence which) { struct video_device_state *state =3D kzalloc(sizeof(struct video_device_state), GFP_KERNEL); @@ -172,6 +173,7 @@ __video_device_state_alloc(struct video_device *vdev) if (!state) return ERR_PTR(-ENOMEM); =20 + state->which =3D which; state->vdev =3D vdev; =20 return state; @@ -962,7 +964,8 @@ int __video_register_device(struct video_device *vdev, =20 /* state support */ if (test_bit(V4L2_FL_USES_STATE, &vdev->flags)) - vdev->state =3D __video_device_state_alloc(vdev); + vdev->state =3D __video_device_state_alloc(vdev, + VIDEO_DEVICE_STATE_ACTIVE); =20 /* Part 1: check device type */ switch (type) { diff --git a/drivers/media/v4l2-core/v4l2-fh.c b/drivers/media/v4l2-core/v4= l2-fh.c index df3ba9d4674bd25626cfcddc2d0cb28c233e3cc3..522acc0eb8401305c6893232d96= d826669ab90d5 100644 --- a/drivers/media/v4l2-core/v4l2-fh.c +++ b/drivers/media/v4l2-core/v4l2-fh.c @@ -38,6 +38,10 @@ void v4l2_fh_init(struct v4l2_fh *fh, struct video_devic= e *vdev) INIT_LIST_HEAD(&fh->subscribed); fh->sequence =3D -1; mutex_init(&fh->subscribe_lock); + /* state support */ + if (test_bit(V4L2_FL_USES_STATE, &fh->vdev->flags)) + fh->state =3D __video_device_state_alloc(vdev, + VIDEO_DEVICE_STATE_TRY); } EXPORT_SYMBOL_GPL(v4l2_fh_init); =20 @@ -84,6 +88,8 @@ void v4l2_fh_exit(struct v4l2_fh *fh) { if (fh->vdev =3D=3D NULL) return; + if (test_bit(V4L2_FL_USES_STATE, &fh->vdev->flags)) + kfree(fh->state); v4l_disable_media_source(fh->vdev); v4l2_event_unsubscribe_all(fh); mutex_destroy(&fh->subscribe_lock); diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h index 57e4691ef467aa2b0782dd4b8357bd0670643293..5ca04a1674e0bf7016537e6fb46= 1d790fc0a958f 100644 --- a/include/media/v4l2-dev.h +++ b/include/media/v4l2-dev.h @@ -220,15 +220,28 @@ struct v4l2_file_operations { int (*release) (struct file *); }; =20 +/** + * enum video_device_state_whence - Video device state type + * + * @VIDEO_DEVICE_STATE_TRY: from VIDIOC_TRY_xxx, for negotiation only + * @VIDEO_DEVICE_STATE_ACTIVE: from VIDIOC_S_xxx, applied to the device + */ +enum video_device_state_whence { + VIDEO_DEVICE_STATE_TRY =3D 0, + VIDEO_DEVICE_STATE_ACTIVE =3D 1, +}; + /** * struct video_device_state - Used for storing video device state informa= tion. * * @fmt: Format of the capture stream * @vdev: Pointer to video device + * @which: State type (from enum video_device_state_whence) */ struct video_device_state { struct v4l2_format fmt; struct video_device *vdev; + enum video_device_state_whence which; }; =20 /* @@ -568,13 +581,15 @@ static inline int video_is_registered(struct video_de= vice *vdev) /** __video_device_state_alloc - allocate video device state structure * * @vdev: pointer to struct video_device + * @which: type of video device state (from enum video_device_state_whence) * * .. note:: * * This function is meant to be used only inside the V4L2 core. */ struct video_device_state * -__video_device_state_alloc(struct video_device *vdev); +__video_device_state_alloc(struct video_device *vdev, + enum video_device_state_whence which); =20 /** __video_device_state_free - free video device state structure * diff --git a/include/media/v4l2-fh.h b/include/media/v4l2-fh.h index aad4b3689d7ea191978f24ce24d24cd2e73636b6..55455704a98d0785d0a3418b8a4= 3d7363b7c8aa2 100644 --- a/include/media/v4l2-fh.h +++ b/include/media/v4l2-fh.h @@ -28,6 +28,7 @@ struct v4l2_ctrl_handler; * @vdev: pointer to &struct video_device * @ctrl_handler: pointer to &struct v4l2_ctrl_handler * @prio: priority of the file handler, as defined by &enum v4l2_priority + * @state: try state used for format negotiation on the video device * * @wait: event' s wait queue * @subscribe_lock: serialise changes to the subscribed list; guarantee th= at @@ -44,6 +45,7 @@ struct v4l2_fh { struct video_device *vdev; struct v4l2_ctrl_handler *ctrl_handler; enum v4l2_priority prio; + struct video_device_state *state; =20 /* Events */ wait_queue_head_t wait; --=20 2.51.0 From nobody Thu Oct 2 07:45:15 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D4092F7AA4; Fri, 19 Sep 2025 09:57:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275839; cv=none; b=f85A8WKZHS2T/lP9DpOPVPFmzCszOcXlSE91VyUlMQ5jBhp7Fp8FS96xCiap7DAdvLbbcbZGhflvK775zqIvxJl5feHT6K6GZ3yYqkrsQhbZSdU+ITnIGLDmQMfAjVOP4bKt5vE68WkCRrT6ht23amOidJpeEElKHqfauQb5roU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275839; c=relaxed/simple; bh=6MlR3I7XdVy2osWukwrjAk/wS3sYFAFigVFBtWar3jM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eJfUzi+kpEggZSouh6qYl4iuQrd6k2PzR2q/YjhrD8RrxA7ckf+9OTe9MQ/0u9W+UaFhJwAhsBeQ/dTq4WR6MMdAl/1z93MPbuXujORJargK4c4opqqeZyuoRRlQv0ud6olb8HXDK9w92qDLXmeV1DnHuqm1v44nlIZSuk0TV9Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=KNuclECY; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="KNuclECY" Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c30:4816:952:3054:81b6:1a3a]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 64A6799F; Fri, 19 Sep 2025 11:55:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1758275754; bh=6MlR3I7XdVy2osWukwrjAk/wS3sYFAFigVFBtWar3jM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=KNuclECYpnc1+hLwIrdWWgPYLn6KgG0pa3UQ6fhWT//hnk+U9R1M+6mIf9uu2mcV2 Hs9JeHUebDGtP5wfWOxQwa/bmSR9oDdBjNS/akzNqD7LGNlj+Abqeb2hWo6UvCHTIc 9jJvcXUKdBI4vFe1TtWNXOG9k2GOEEwsZRgWAEIY= From: Jai Luthra Date: Fri, 19 Sep 2025 15:25:55 +0530 Subject: [PATCH v2 03/10] media: v4l2-dev: Add callback for initializing video device state Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250919-vdev-state-v2-3-b2c42426965c@ideasonboard.com> References: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> In-Reply-To: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> To: Hans Verkuil , Mauro Carvalho Chehab , Sakari Ailus , Laurent Pinchart , Tomi Valkeinen , Jacopo Mondi , linux-media@vger.kernel.org Cc: Jai Luthra , Ricardo Ribalda , Laurent Pinchart , Bartosz Golaszewski , Al Viro , Ma Ke , linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 Drivers may need to initialize the video device state with default values, such as setting a default pixelformat and resolution. Introduce an optional callback that drivers can populate. The framework calls this callback during state allocation to allow driver-specific initialization. Signed-off-by: Jai Luthra -- Cc: Mauro Carvalho Chehab Cc: Hans Verkuil Cc: Ricardo Ribalda Cc: Laurent Pinchart Cc: Jai Luthra Cc: Bartosz Golaszewski Cc: Al Viro Cc: Ma Ke Cc: linux-media@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/media/v4l2-core/v4l2-dev.c | 13 +++++++++++++ include/media/v4l2-dev.h | 11 +++++++++++ 2 files changed, 24 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-dev.c b/drivers/media/v4l2-core/v= 4l2-dev.c index 26b6b2f37ca55ce981aa17a28a875dc3cf253d9b..dff23c6a0b56fb3d29e1c04e386= bb445fa8773bb 100644 --- a/drivers/media/v4l2-core/v4l2-dev.c +++ b/drivers/media/v4l2-core/v4l2-dev.c @@ -169,6 +169,7 @@ __video_device_state_alloc(struct video_device *vdev, { struct video_device_state *state =3D kzalloc(sizeof(struct video_device_state), GFP_KERNEL); + int ret; =20 if (!state) return ERR_PTR(-ENOMEM); @@ -176,7 +177,19 @@ __video_device_state_alloc(struct video_device *vdev, state->which =3D which; state->vdev =3D vdev; =20 + if (vdev->vdev_ops && vdev->vdev_ops->init_state) { + ret =3D vdev->vdev_ops->init_state(state); + + if (ret) + goto err; + } + return state; + +err: + kfree(state); + + return ERR_PTR(ret); } EXPORT_SYMBOL_GPL(__video_device_state_alloc); =20 diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h index 5ca04a1674e0bf7016537e6fb461d790fc0a958f..d327be16f6def70554a7d92d104= 36a29384ae32a 100644 --- a/include/media/v4l2-dev.h +++ b/include/media/v4l2-dev.h @@ -244,6 +244,15 @@ struct video_device_state { enum video_device_state_whence which; }; =20 +/** + * struct video_device_internal_ops - Callbacks for video device managemen= t. + * + * @init_state: pointer to a function that initializes the video device st= ate. + */ +struct video_device_internal_ops { + int (*init_state)(struct video_device_state *state); +}; + /* * Newer version of video_device, handled by videodev2.c * This version moves redundant code from video device code to @@ -284,6 +293,7 @@ struct video_device_state { * * @release: video device release() callback * @ioctl_ops: pointer to &struct v4l2_ioctl_ops with ioctl callbacks + * @vdev_ops: pointer to &struct video_device_internal_ops * * @valid_ioctls: bitmap with the valid ioctls for this device * @lock: pointer to &struct mutex serialization lock @@ -336,6 +346,7 @@ struct video_device { /* callbacks */ void (*release)(struct video_device *vdev); const struct v4l2_ioctl_ops *ioctl_ops; + const struct video_device_internal_ops *vdev_ops; DECLARE_BITMAP(valid_ioctls, BASE_VIDIOC_PRIVATE); =20 struct mutex *lock; --=20 2.51.0 From nobody Thu Oct 2 07:45:15 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C82592FC009; Fri, 19 Sep 2025 09:57:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275843; cv=none; b=Hazrys5UKhwEptLG0mVcwjrT/ggwHcdkTAHzRjdJ010JPzmp9G5wcVYtX6Z9tCDt/8rxSM5tM6htgTZhbBcs4jPWCoAYSMM5fU9baIXP0UyT1A4R5LzNMUvh/xQse7toVQxG6IJcmT6bOEu6b3R9CXuqbU/VP9K3/UAdsjzbVK8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275843; c=relaxed/simple; bh=EGyzaOAYIWCgqy6phWNjNHZtVGmdItNrAOIT40wwqKg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OusoFBW4kJ7FJcVyJdkRlPnDT95+fTyj1TvV9FcAgzTUBLbILcxRd8O7Y4Yq5cV3p0WsdtguHLL6TTTr1D1/t/TsuAbtVUlOCaJ2qoUlTQHYZfT9Gy2RFzYahUTx9QX+xuCglVJW/zKorypVvbxCPgSOzZXFjHlCt+QCWTmbfnU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=v/M+MsW1; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="v/M+MsW1" Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c30:4816:952:3054:81b6:1a3a]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id AA17F842; Fri, 19 Sep 2025 11:55:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1758275760; bh=EGyzaOAYIWCgqy6phWNjNHZtVGmdItNrAOIT40wwqKg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=v/M+MsW1CXmwOugw92xk6gCk6HWgTNMXhPCjg1dmX2KeJxpk8UlfEbsOM6L1ZMBHw 0UJYkDbS9WIROxpTbMA85rKfA7b8eEQDXmlrILkH/8cJ/rRKwnvhJFoYzW1eGc+yGR I5cC2qUbPHtF8qPrnQuCOnVyqhm/zAIuu9GcKNhI= From: Jai Luthra Date: Fri, 19 Sep 2025 15:25:56 +0530 Subject: [PATCH v2 04/10] media: v4l2-dev: Add helpers to get current format from the state Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250919-vdev-state-v2-4-b2c42426965c@ideasonboard.com> References: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> In-Reply-To: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> To: Hans Verkuil , Mauro Carvalho Chehab , Sakari Ailus , Laurent Pinchart , Tomi Valkeinen , Jacopo Mondi , linux-media@vger.kernel.org Cc: Jai Luthra , Ricardo Ribalda , Laurent Pinchart , Ma Ke , linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 Add a helper function that drivers can call to retrieve the current v4l2_format stored in a video device state for internal use. Additionally, provide a G_FMT ioctl implementation that drivers can use instead of writing their own when the format is stored in the active state. Signed-off-by: Jai Luthra -- Cc: Mauro Carvalho Chehab Cc: Hans Verkuil Cc: Jai Luthra Cc: Ricardo Ribalda Cc: Laurent Pinchart Cc: Ma Ke Cc: linux-media@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/media/v4l2-core/v4l2-dev.c | 23 +++++++++++++++++++++++ include/media/v4l2-dev.h | 18 ++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-dev.c b/drivers/media/v4l2-core/v= 4l2-dev.c index dff23c6a0b56fb3d29e1c04e386bb445fa8773bb..2606077538be0e83032c6ae8956= c1d67da0d0c5d 100644 --- a/drivers/media/v4l2-core/v4l2-dev.c +++ b/drivers/media/v4l2-core/v4l2-dev.c @@ -199,6 +199,29 @@ void __video_device_state_free(struct video_device_sta= te *state) } EXPORT_SYMBOL_GPL(__video_device_state_free); =20 +struct v4l2_format *video_device_state_get_fmt(struct video_device_state *= state) +{ + if (WARN_ON_ONCE(!state)) + return NULL; + + return &state->fmt; +} +EXPORT_SYMBOL_GPL(video_device_state_get_fmt); + +int video_device_g_fmt(struct file *file, void *priv, struct v4l2_format *= fmt) +{ + struct video_device_state *state =3D priv; + struct v4l2_format *vfmt =3D video_device_state_get_fmt(state); + + if (!vfmt) + return -EINVAL; + + *fmt =3D *vfmt; + + return 0; +} +EXPORT_SYMBOL_GPL(video_device_g_fmt); + static inline void video_get(struct video_device *vdev) { get_device(&vdev->dev); diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h index d327be16f6def70554a7d92d10436a29384ae32a..b5312823fbff9c236d4394d48fa= 9a14412b17c68 100644 --- a/include/media/v4l2-dev.h +++ b/include/media/v4l2-dev.h @@ -612,6 +612,24 @@ __video_device_state_alloc(struct video_device *vdev, */ void __video_device_state_free(struct video_device_state *state); =20 +/** + * video_device_state_get_fmt - get current v4l2_format. + * + * @state: pointer to struct video_device_state + */ +struct v4l2_format * +video_device_state_get_fmt(struct video_device_state *state); + +/** + * video_device_g_fmt - fill v4l2_format from the state. + * + * @file: pointer to struct file + * @state: pointer to struct video_device_state + * @format: pointer to struct v4l2_format + */ +int video_device_g_fmt(struct file *file, void *priv, + struct v4l2_format *format); + /** * v4l2_debugfs_root - returns the dentry of the top-level "v4l2" debugfs = dir * --=20 2.51.0 From nobody Thu Oct 2 07:45:15 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C84412F548C; Fri, 19 Sep 2025 09:57:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275851; cv=none; b=trA4gcVVuuD9j3jD4dN0ZuvdF73NRhjiS8CDmpf0HYYxi8URfAcfKo74IVEffOyBRVrQoBu03sxPnuwLUbD5CrITdWDmLUjJ5tEX73P/GBiTt7tNPlTO+LeqyZYrVZhbo1SfNSANOtZmizizrcr7WxXziDR5Cjjy27gEO3cjAeE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275851; c=relaxed/simple; bh=rZA4G1Q6svgZj7HlWwSq4tWlQuTXPDoz/6YoHq7w3ZA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LO99LYtmOQXD0kDk4N1Vxvemb4euesFqtDbLv5jcSYiP7dVIz/imZb13MdwC7esvfIHRscVtvOSpEc8AGD5bgTzlQaUcnFpB0pFPpT9TbShVCg8W3+9Rc1P6dc0rTXOHkzZJsB2Dp+p8u617POa9Kxwz+gGqtLftpC4JWFJ2SX0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=E97fNCi5; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="E97fNCi5" Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c30:4816:952:3054:81b6:1a3a]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 72CAB842; Fri, 19 Sep 2025 11:56:05 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1758275766; bh=rZA4G1Q6svgZj7HlWwSq4tWlQuTXPDoz/6YoHq7w3ZA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=E97fNCi5OS4sSpkWXFle8oBycB4xmIwYFFKOIxYkleAsXTiPf7EyXAwdpAULUVbfw v1M9uDQ/j79Hsax+p2cWOnNn1z5/n0f/AFLaw+4eZawJ23x3XM7FN2oO1l5xLqIWwZ 0mNm9epQd4XVsXKRmZ2h8xReKjo06DhLq5qeMsmM= From: Jai Luthra Date: Fri, 19 Sep 2025 15:25:57 +0530 Subject: [PATCH v2 05/10] media: v4l2-ioctl: Add video_device_state argument to v4l2 ioctl wrappers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250919-vdev-state-v2-5-b2c42426965c@ideasonboard.com> References: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> In-Reply-To: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> To: Hans Verkuil , Mauro Carvalho Chehab , Sakari Ailus , Laurent Pinchart , Tomi Valkeinen , Jacopo Mondi , linux-media@vger.kernel.org Cc: Jai Luthra , Laurent Pinchart , Ricardo Ribalda , Hans de Goede , linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 Add a third argument to all v4l2 ioctl wrappers to pass struct video_device_state * directly, replacing the previous opaque pointer approach. Currently, this argument is populated with NULL since existing driver hooks still expect a void *priv argument. This will be addressed in a subsequent patch. Most changes to the ioctl wrappers were generated using the following Coccinelle semantic patch: @ioctl@ identifier v4l2_ioctls; identifier ioctl; identifier fn; identifier debug; expression flags; @@ struct v4l2_ioctl_info v4l2_ioctls[] =3D { ..., IOCTL_INFO(ioctl, fn, debug, flags), ..., }; @depends on ioctl@ identifier ioctl.fn; identifier ops; identifier file; identifier arg; identifier handler; expression list args; @@ -int fn(const struct v4l2_ioctl_ops *ops, struct file *file, void *arg) +int fn(const struct v4l2_ioctl_ops *ops, struct file *file, + struct video_device_state *state, void *arg) { <... - ops->handler(file, NULL, args) + ops->handler(file, state, args) ...> } Manual changes were made to handle calls to v4l_[gs]_selection, update the v4l2_ioctl_info structure definition and macros, fix argument wrapping in some function definitions, and handle the common function pointer in v4l2_ioctl_info. Signed-off-by: Jai Luthra -- Cc: Mauro Carvalho Chehab Cc: Hans Verkuil Cc: Laurent Pinchart Cc: Ricardo Ribalda Cc: Hans de Goede Cc: Jai Luthra Cc: linux-media@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/media/v4l2-core/v4l2-ioctl.c | 360 ++++++++++++++++++-------------= ---- 1 file changed, 186 insertions(+), 174 deletions(-) diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core= /v4l2-ioctl.c index 01cf52c3ea33e1a01e1b306036ba4e57ef5c95d0..644f06521673ff7ce5b194335d5= 0f0e375ca7f51 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -1090,7 +1090,7 @@ static void v4l_sanitize_format(struct v4l2_format *f= mt) } =20 static int v4l_querycap(const struct v4l2_ioctl_ops *ops, struct file *fil= e, - void *arg) + struct video_device_state *state, void *arg) { struct v4l2_capability *cap =3D (struct v4l2_capability *)arg; struct video_device *vfd =3D video_devdata(file); @@ -1103,7 +1103,7 @@ static int v4l_querycap(const struct v4l2_ioctl_ops *= ops, struct file *file, media_set_bus_info(cap->bus_info, sizeof(cap->bus_info), vfd->dev_parent); =20 - ret =3D ops->vidioc_querycap(file, NULL, cap); + ret =3D ops->vidioc_querycap(file, state, cap); =20 /* * Drivers must not change device_caps, so check for this and @@ -1124,7 +1124,7 @@ static int v4l_querycap(const struct v4l2_ioctl_ops *= ops, struct file *file, } =20 static int v4l_g_input(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); =20 @@ -1133,11 +1133,11 @@ static int v4l_g_input(const struct v4l2_ioctl_ops = *ops, struct file *file, return 0; } =20 - return ops->vidioc_g_input(file, NULL, arg); + return ops->vidioc_g_input(file, state, arg); } =20 static int v4l_g_output(const struct v4l2_ioctl_ops *ops, struct file *fil= e, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); =20 @@ -1146,11 +1146,11 @@ static int v4l_g_output(const struct v4l2_ioctl_ops= *ops, struct file *file, return 0; } =20 - return ops->vidioc_g_output(file, NULL, arg); + return ops->vidioc_g_output(file, state, arg); } =20 static int v4l_s_input(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); int ret; @@ -1162,22 +1162,22 @@ static int v4l_s_input(const struct v4l2_ioctl_ops = *ops, struct file *file, if (vfd->device_caps & V4L2_CAP_IO_MC) return *(int *)arg ? -EINVAL : 0; =20 - return ops->vidioc_s_input(file, NULL, *(unsigned int *)arg); + return ops->vidioc_s_input(file, state, *(unsigned int *)arg); } =20 static int v4l_s_output(const struct v4l2_ioctl_ops *ops, struct file *fil= e, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); =20 if (vfd->device_caps & V4L2_CAP_IO_MC) return *(int *)arg ? -EINVAL : 0; =20 - return ops->vidioc_s_output(file, NULL, *(unsigned int *)arg); + return ops->vidioc_s_output(file, state, *(unsigned int *)arg); } =20 static int v4l_g_priority(const struct v4l2_ioctl_ops *ops, struct file *f= ile, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd; u32 *p =3D arg; @@ -1188,7 +1188,7 @@ static int v4l_g_priority(const struct v4l2_ioctl_ops= *ops, struct file *file, } =20 static int v4l_s_priority(const struct v4l2_ioctl_ops *ops, struct file *f= ile, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd; struct v4l2_fh *vfh; @@ -1200,7 +1200,7 @@ static int v4l_s_priority(const struct v4l2_ioctl_ops= *ops, struct file *file, } =20 static int v4l_enuminput(const struct v4l2_ioctl_ops *ops, struct file *fi= le, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_input *p =3D arg; @@ -1222,11 +1222,11 @@ static int v4l_enuminput(const struct v4l2_ioctl_op= s *ops, struct file *file, return 0; } =20 - return ops->vidioc_enum_input(file, NULL, p); + return ops->vidioc_enum_input(file, state, p); } =20 static int v4l_enumoutput(const struct v4l2_ioctl_ops *ops, struct file *f= ile, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_output *p =3D arg; @@ -1248,7 +1248,7 @@ static int v4l_enumoutput(const struct v4l2_ioctl_ops= *ops, struct file *file, return 0; } =20 - return ops->vidioc_enum_output(file, NULL, p); + return ops->vidioc_enum_output(file, state, p); } =20 static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) @@ -1588,7 +1588,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) } =20 static int v4l_enum_fmt(const struct v4l2_ioctl_ops *ops, struct file *fil= e, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vdev =3D video_devdata(file); struct v4l2_fmtdesc *p =3D arg; @@ -1618,12 +1618,12 @@ static int v4l_enum_fmt(const struct v4l2_ioctl_ops= *ops, struct file *file, =20 if (unlikely(!ops->vidioc_enum_fmt_vid_cap)) break; - ret =3D ops->vidioc_enum_fmt_vid_cap(file, NULL, arg); + ret =3D ops->vidioc_enum_fmt_vid_cap(file, state, arg); break; case V4L2_BUF_TYPE_VIDEO_OVERLAY: if (unlikely(!ops->vidioc_enum_fmt_vid_overlay)) break; - ret =3D ops->vidioc_enum_fmt_vid_overlay(file, NULL, arg); + ret =3D ops->vidioc_enum_fmt_vid_overlay(file, state, arg); break; case V4L2_BUF_TYPE_VIDEO_OUTPUT: case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: @@ -1635,27 +1635,27 @@ static int v4l_enum_fmt(const struct v4l2_ioctl_ops= *ops, struct file *file, =20 if (unlikely(!ops->vidioc_enum_fmt_vid_out)) break; - ret =3D ops->vidioc_enum_fmt_vid_out(file, NULL, arg); + ret =3D ops->vidioc_enum_fmt_vid_out(file, state, arg); break; case V4L2_BUF_TYPE_SDR_CAPTURE: if (unlikely(!ops->vidioc_enum_fmt_sdr_cap)) break; - ret =3D ops->vidioc_enum_fmt_sdr_cap(file, NULL, arg); + ret =3D ops->vidioc_enum_fmt_sdr_cap(file, state, arg); break; case V4L2_BUF_TYPE_SDR_OUTPUT: if (unlikely(!ops->vidioc_enum_fmt_sdr_out)) break; - ret =3D ops->vidioc_enum_fmt_sdr_out(file, NULL, arg); + ret =3D ops->vidioc_enum_fmt_sdr_out(file, state, arg); break; case V4L2_BUF_TYPE_META_CAPTURE: if (unlikely(!ops->vidioc_enum_fmt_meta_cap)) break; - ret =3D ops->vidioc_enum_fmt_meta_cap(file, NULL, arg); + ret =3D ops->vidioc_enum_fmt_meta_cap(file, state, arg); break; case V4L2_BUF_TYPE_META_OUTPUT: if (unlikely(!ops->vidioc_enum_fmt_meta_out)) break; - ret =3D ops->vidioc_enum_fmt_meta_out(file, NULL, arg); + ret =3D ops->vidioc_enum_fmt_meta_out(file, state, arg); break; } if (ret =3D=3D 0) @@ -1679,7 +1679,7 @@ static void v4l_pix_format_touch(struct v4l2_pix_form= at *p) } =20 static int v4l_g_fmt(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct v4l2_format *p =3D arg; struct video_device *vfd =3D video_devdata(file); @@ -1695,50 +1695,50 @@ static int v4l_g_fmt(const struct v4l2_ioctl_ops *o= ps, struct file *file, if (unlikely(!ops->vidioc_g_fmt_vid_cap)) break; p->fmt.pix.priv =3D V4L2_PIX_FMT_PRIV_MAGIC; - ret =3D ops->vidioc_g_fmt_vid_cap(file, NULL, arg); + ret =3D ops->vidioc_g_fmt_vid_cap(file, state, arg); /* just in case the driver zeroed it again */ p->fmt.pix.priv =3D V4L2_PIX_FMT_PRIV_MAGIC; if (vfd->vfl_type =3D=3D VFL_TYPE_TOUCH) v4l_pix_format_touch(&p->fmt.pix); return ret; case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: - return ops->vidioc_g_fmt_vid_cap_mplane(file, NULL, arg); + return ops->vidioc_g_fmt_vid_cap_mplane(file, state, arg); case V4L2_BUF_TYPE_VIDEO_OVERLAY: - return ops->vidioc_g_fmt_vid_overlay(file, NULL, arg); + return ops->vidioc_g_fmt_vid_overlay(file, state, arg); case V4L2_BUF_TYPE_VBI_CAPTURE: - return ops->vidioc_g_fmt_vbi_cap(file, NULL, arg); + return ops->vidioc_g_fmt_vbi_cap(file, state, arg); case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: - return ops->vidioc_g_fmt_sliced_vbi_cap(file, NULL, arg); + return ops->vidioc_g_fmt_sliced_vbi_cap(file, state, arg); case V4L2_BUF_TYPE_VIDEO_OUTPUT: if (unlikely(!ops->vidioc_g_fmt_vid_out)) break; p->fmt.pix.priv =3D V4L2_PIX_FMT_PRIV_MAGIC; - ret =3D ops->vidioc_g_fmt_vid_out(file, NULL, arg); + ret =3D ops->vidioc_g_fmt_vid_out(file, state, arg); /* just in case the driver zeroed it again */ p->fmt.pix.priv =3D V4L2_PIX_FMT_PRIV_MAGIC; return ret; case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: - return ops->vidioc_g_fmt_vid_out_mplane(file, NULL, arg); + return ops->vidioc_g_fmt_vid_out_mplane(file, state, arg); case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: - return ops->vidioc_g_fmt_vid_out_overlay(file, NULL, arg); + return ops->vidioc_g_fmt_vid_out_overlay(file, state, arg); case V4L2_BUF_TYPE_VBI_OUTPUT: - return ops->vidioc_g_fmt_vbi_out(file, NULL, arg); + return ops->vidioc_g_fmt_vbi_out(file, state, arg); case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: - return ops->vidioc_g_fmt_sliced_vbi_out(file, NULL, arg); + return ops->vidioc_g_fmt_sliced_vbi_out(file, state, arg); case V4L2_BUF_TYPE_SDR_CAPTURE: - return ops->vidioc_g_fmt_sdr_cap(file, NULL, arg); + return ops->vidioc_g_fmt_sdr_cap(file, state, arg); case V4L2_BUF_TYPE_SDR_OUTPUT: - return ops->vidioc_g_fmt_sdr_out(file, NULL, arg); + return ops->vidioc_g_fmt_sdr_out(file, state, arg); case V4L2_BUF_TYPE_META_CAPTURE: - return ops->vidioc_g_fmt_meta_cap(file, NULL, arg); + return ops->vidioc_g_fmt_meta_cap(file, state, arg); case V4L2_BUF_TYPE_META_OUTPUT: - return ops->vidioc_g_fmt_meta_out(file, NULL, arg); + return ops->vidioc_g_fmt_meta_out(file, state, arg); } return -EINVAL; } =20 static int v4l_s_fmt(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct v4l2_format *p =3D arg; struct video_device *vfd =3D video_devdata(file); @@ -1758,7 +1758,7 @@ static int v4l_s_fmt(const struct v4l2_ioctl_ops *ops= , struct file *file, if (unlikely(!ops->vidioc_s_fmt_vid_cap)) break; memset_after(p, 0, fmt.pix); - ret =3D ops->vidioc_s_fmt_vid_cap(file, NULL, arg); + ret =3D ops->vidioc_s_fmt_vid_cap(file, state, arg); /* just in case the driver zeroed it again */ p->fmt.pix.priv =3D V4L2_PIX_FMT_PRIV_MAGIC; if (vfd->vfl_type =3D=3D VFL_TYPE_TOUCH) @@ -1771,7 +1771,7 @@ static int v4l_s_fmt(const struct v4l2_ioctl_ops *ops= , struct file *file, for (i =3D 0; i < p->fmt.pix_mp.num_planes; i++) memset_after(&p->fmt.pix_mp.plane_fmt[i], 0, bytesperline); - return ops->vidioc_s_fmt_vid_cap_mplane(file, NULL, arg); + return ops->vidioc_s_fmt_vid_cap_mplane(file, state, arg); case V4L2_BUF_TYPE_VIDEO_OVERLAY: if (unlikely(!ops->vidioc_s_fmt_vid_overlay)) break; @@ -1779,22 +1779,22 @@ static int v4l_s_fmt(const struct v4l2_ioctl_ops *o= ps, struct file *file, p->fmt.win.clips =3D NULL; p->fmt.win.clipcount =3D 0; p->fmt.win.bitmap =3D NULL; - return ops->vidioc_s_fmt_vid_overlay(file, NULL, arg); + return ops->vidioc_s_fmt_vid_overlay(file, state, arg); case V4L2_BUF_TYPE_VBI_CAPTURE: if (unlikely(!ops->vidioc_s_fmt_vbi_cap)) break; memset_after(p, 0, fmt.vbi.flags); - return ops->vidioc_s_fmt_vbi_cap(file, NULL, arg); + return ops->vidioc_s_fmt_vbi_cap(file, state, arg); case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: if (unlikely(!ops->vidioc_s_fmt_sliced_vbi_cap)) break; memset_after(p, 0, fmt.sliced.io_size); - return ops->vidioc_s_fmt_sliced_vbi_cap(file, NULL, arg); + return ops->vidioc_s_fmt_sliced_vbi_cap(file, state, arg); case V4L2_BUF_TYPE_VIDEO_OUTPUT: if (unlikely(!ops->vidioc_s_fmt_vid_out)) break; memset_after(p, 0, fmt.pix); - ret =3D ops->vidioc_s_fmt_vid_out(file, NULL, arg); + ret =3D ops->vidioc_s_fmt_vid_out(file, state, arg); /* just in case the driver zeroed it again */ p->fmt.pix.priv =3D V4L2_PIX_FMT_PRIV_MAGIC; return ret; @@ -1805,7 +1805,7 @@ static int v4l_s_fmt(const struct v4l2_ioctl_ops *ops= , struct file *file, for (i =3D 0; i < p->fmt.pix_mp.num_planes; i++) memset_after(&p->fmt.pix_mp.plane_fmt[i], 0, bytesperline); - return ops->vidioc_s_fmt_vid_out_mplane(file, NULL, arg); + return ops->vidioc_s_fmt_vid_out_mplane(file, state, arg); case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: if (unlikely(!ops->vidioc_s_fmt_vid_out_overlay)) break; @@ -1813,43 +1813,43 @@ static int v4l_s_fmt(const struct v4l2_ioctl_ops *o= ps, struct file *file, p->fmt.win.clips =3D NULL; p->fmt.win.clipcount =3D 0; p->fmt.win.bitmap =3D NULL; - return ops->vidioc_s_fmt_vid_out_overlay(file, NULL, arg); + return ops->vidioc_s_fmt_vid_out_overlay(file, state, arg); case V4L2_BUF_TYPE_VBI_OUTPUT: if (unlikely(!ops->vidioc_s_fmt_vbi_out)) break; memset_after(p, 0, fmt.vbi.flags); - return ops->vidioc_s_fmt_vbi_out(file, NULL, arg); + return ops->vidioc_s_fmt_vbi_out(file, state, arg); case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: if (unlikely(!ops->vidioc_s_fmt_sliced_vbi_out)) break; memset_after(p, 0, fmt.sliced.io_size); - return ops->vidioc_s_fmt_sliced_vbi_out(file, NULL, arg); + return ops->vidioc_s_fmt_sliced_vbi_out(file, state, arg); case V4L2_BUF_TYPE_SDR_CAPTURE: if (unlikely(!ops->vidioc_s_fmt_sdr_cap)) break; memset_after(p, 0, fmt.sdr.buffersize); - return ops->vidioc_s_fmt_sdr_cap(file, NULL, arg); + return ops->vidioc_s_fmt_sdr_cap(file, state, arg); case V4L2_BUF_TYPE_SDR_OUTPUT: if (unlikely(!ops->vidioc_s_fmt_sdr_out)) break; memset_after(p, 0, fmt.sdr.buffersize); - return ops->vidioc_s_fmt_sdr_out(file, NULL, arg); + return ops->vidioc_s_fmt_sdr_out(file, state, arg); case V4L2_BUF_TYPE_META_CAPTURE: if (unlikely(!ops->vidioc_s_fmt_meta_cap)) break; memset_after(p, 0, fmt.meta); - return ops->vidioc_s_fmt_meta_cap(file, NULL, arg); + return ops->vidioc_s_fmt_meta_cap(file, state, arg); case V4L2_BUF_TYPE_META_OUTPUT: if (unlikely(!ops->vidioc_s_fmt_meta_out)) break; memset_after(p, 0, fmt.meta); - return ops->vidioc_s_fmt_meta_out(file, NULL, arg); + return ops->vidioc_s_fmt_meta_out(file, state, arg); } return -EINVAL; } =20 static int v4l_try_fmt(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct v4l2_format *p =3D arg; struct video_device *vfd =3D video_devdata(file); @@ -1866,7 +1866,7 @@ static int v4l_try_fmt(const struct v4l2_ioctl_ops *o= ps, struct file *file, if (unlikely(!ops->vidioc_try_fmt_vid_cap)) break; memset_after(p, 0, fmt.pix); - ret =3D ops->vidioc_try_fmt_vid_cap(file, NULL, arg); + ret =3D ops->vidioc_try_fmt_vid_cap(file, state, arg); /* just in case the driver zeroed it again */ p->fmt.pix.priv =3D V4L2_PIX_FMT_PRIV_MAGIC; if (vfd->vfl_type =3D=3D VFL_TYPE_TOUCH) @@ -1879,7 +1879,7 @@ static int v4l_try_fmt(const struct v4l2_ioctl_ops *o= ps, struct file *file, for (i =3D 0; i < p->fmt.pix_mp.num_planes; i++) memset_after(&p->fmt.pix_mp.plane_fmt[i], 0, bytesperline); - return ops->vidioc_try_fmt_vid_cap_mplane(file, NULL, arg); + return ops->vidioc_try_fmt_vid_cap_mplane(file, state, arg); case V4L2_BUF_TYPE_VIDEO_OVERLAY: if (unlikely(!ops->vidioc_try_fmt_vid_overlay)) break; @@ -1887,22 +1887,22 @@ static int v4l_try_fmt(const struct v4l2_ioctl_ops = *ops, struct file *file, p->fmt.win.clips =3D NULL; p->fmt.win.clipcount =3D 0; p->fmt.win.bitmap =3D NULL; - return ops->vidioc_try_fmt_vid_overlay(file, NULL, arg); + return ops->vidioc_try_fmt_vid_overlay(file, state, arg); case V4L2_BUF_TYPE_VBI_CAPTURE: if (unlikely(!ops->vidioc_try_fmt_vbi_cap)) break; memset_after(p, 0, fmt.vbi.flags); - return ops->vidioc_try_fmt_vbi_cap(file, NULL, arg); + return ops->vidioc_try_fmt_vbi_cap(file, state, arg); case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: if (unlikely(!ops->vidioc_try_fmt_sliced_vbi_cap)) break; memset_after(p, 0, fmt.sliced.io_size); - return ops->vidioc_try_fmt_sliced_vbi_cap(file, NULL, arg); + return ops->vidioc_try_fmt_sliced_vbi_cap(file, state, arg); case V4L2_BUF_TYPE_VIDEO_OUTPUT: if (unlikely(!ops->vidioc_try_fmt_vid_out)) break; memset_after(p, 0, fmt.pix); - ret =3D ops->vidioc_try_fmt_vid_out(file, NULL, arg); + ret =3D ops->vidioc_try_fmt_vid_out(file, state, arg); /* just in case the driver zeroed it again */ p->fmt.pix.priv =3D V4L2_PIX_FMT_PRIV_MAGIC; return ret; @@ -1913,7 +1913,7 @@ static int v4l_try_fmt(const struct v4l2_ioctl_ops *o= ps, struct file *file, for (i =3D 0; i < p->fmt.pix_mp.num_planes; i++) memset_after(&p->fmt.pix_mp.plane_fmt[i], 0, bytesperline); - return ops->vidioc_try_fmt_vid_out_mplane(file, NULL, arg); + return ops->vidioc_try_fmt_vid_out_mplane(file, state, arg); case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: if (unlikely(!ops->vidioc_try_fmt_vid_out_overlay)) break; @@ -1921,55 +1921,55 @@ static int v4l_try_fmt(const struct v4l2_ioctl_ops = *ops, struct file *file, p->fmt.win.clips =3D NULL; p->fmt.win.clipcount =3D 0; p->fmt.win.bitmap =3D NULL; - return ops->vidioc_try_fmt_vid_out_overlay(file, NULL, arg); + return ops->vidioc_try_fmt_vid_out_overlay(file, state, arg); case V4L2_BUF_TYPE_VBI_OUTPUT: if (unlikely(!ops->vidioc_try_fmt_vbi_out)) break; memset_after(p, 0, fmt.vbi.flags); - return ops->vidioc_try_fmt_vbi_out(file, NULL, arg); + return ops->vidioc_try_fmt_vbi_out(file, state, arg); case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: if (unlikely(!ops->vidioc_try_fmt_sliced_vbi_out)) break; memset_after(p, 0, fmt.sliced.io_size); - return ops->vidioc_try_fmt_sliced_vbi_out(file, NULL, arg); + return ops->vidioc_try_fmt_sliced_vbi_out(file, state, arg); case V4L2_BUF_TYPE_SDR_CAPTURE: if (unlikely(!ops->vidioc_try_fmt_sdr_cap)) break; memset_after(p, 0, fmt.sdr.buffersize); - return ops->vidioc_try_fmt_sdr_cap(file, NULL, arg); + return ops->vidioc_try_fmt_sdr_cap(file, state, arg); case V4L2_BUF_TYPE_SDR_OUTPUT: if (unlikely(!ops->vidioc_try_fmt_sdr_out)) break; memset_after(p, 0, fmt.sdr.buffersize); - return ops->vidioc_try_fmt_sdr_out(file, NULL, arg); + return ops->vidioc_try_fmt_sdr_out(file, state, arg); case V4L2_BUF_TYPE_META_CAPTURE: if (unlikely(!ops->vidioc_try_fmt_meta_cap)) break; memset_after(p, 0, fmt.meta); - return ops->vidioc_try_fmt_meta_cap(file, NULL, arg); + return ops->vidioc_try_fmt_meta_cap(file, state, arg); case V4L2_BUF_TYPE_META_OUTPUT: if (unlikely(!ops->vidioc_try_fmt_meta_out)) break; memset_after(p, 0, fmt.meta); - return ops->vidioc_try_fmt_meta_out(file, NULL, arg); + return ops->vidioc_try_fmt_meta_out(file, state, arg); } return -EINVAL; } =20 static int v4l_streamon(const struct v4l2_ioctl_ops *ops, struct file *fil= e, - void *arg) + struct video_device_state *state, void *arg) { - return ops->vidioc_streamon(file, NULL, *(unsigned int *)arg); + return ops->vidioc_streamon(file, state, *(unsigned int *)arg); } =20 static int v4l_streamoff(const struct v4l2_ioctl_ops *ops, struct file *fi= le, - void *arg) + struct video_device_state *state, void *arg) { - return ops->vidioc_streamoff(file, NULL, *(unsigned int *)arg); + return ops->vidioc_streamoff(file, state, *(unsigned int *)arg); } =20 static int v4l_g_tuner(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_tuner *p =3D arg; @@ -1977,14 +1977,14 @@ static int v4l_g_tuner(const struct v4l2_ioctl_ops = *ops, struct file *file, =20 p->type =3D (vfd->vfl_type =3D=3D VFL_TYPE_RADIO) ? V4L2_TUNER_RADIO : V4L2_TUNER_ANALOG_TV; - err =3D ops->vidioc_g_tuner(file, NULL, p); + err =3D ops->vidioc_g_tuner(file, state, p); if (!err) p->capability |=3D V4L2_TUNER_CAP_FREQ_BANDS; return err; } =20 static int v4l_s_tuner(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_tuner *p =3D arg; @@ -1995,11 +1995,11 @@ static int v4l_s_tuner(const struct v4l2_ioctl_ops = *ops, struct file *file, return ret; p->type =3D (vfd->vfl_type =3D=3D VFL_TYPE_RADIO) ? V4L2_TUNER_RADIO : V4L2_TUNER_ANALOG_TV; - return ops->vidioc_s_tuner(file, NULL, p); + return ops->vidioc_s_tuner(file, state, p); } =20 -static int v4l_g_modulator(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) +static int v4l_g_modulator(const struct v4l2_ioctl_ops *ops, struct file *= file, + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_modulator *p =3D arg; @@ -2008,14 +2008,14 @@ static int v4l_g_modulator(const struct v4l2_ioctl_= ops *ops, if (vfd->vfl_type =3D=3D VFL_TYPE_RADIO) p->type =3D V4L2_TUNER_RADIO; =20 - err =3D ops->vidioc_g_modulator(file, NULL, p); + err =3D ops->vidioc_g_modulator(file, state, p); if (!err) p->capability |=3D V4L2_TUNER_CAP_FREQ_BANDS; return err; } =20 -static int v4l_s_modulator(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) +static int v4l_s_modulator(const struct v4l2_ioctl_ops *ops, struct file *= file, + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_modulator *p =3D arg; @@ -2023,11 +2023,11 @@ static int v4l_s_modulator(const struct v4l2_ioctl_= ops *ops, if (vfd->vfl_type =3D=3D VFL_TYPE_RADIO) p->type =3D V4L2_TUNER_RADIO; =20 - return ops->vidioc_s_modulator(file, NULL, p); + return ops->vidioc_s_modulator(file, state, p); } =20 -static int v4l_g_frequency(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) +static int v4l_g_frequency(const struct v4l2_ioctl_ops *ops, struct file *= file, + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_frequency *p =3D arg; @@ -2037,11 +2037,11 @@ static int v4l_g_frequency(const struct v4l2_ioctl_= ops *ops, else p->type =3D (vfd->vfl_type =3D=3D VFL_TYPE_RADIO) ? V4L2_TUNER_RADIO : V4L2_TUNER_ANALOG_TV; - return ops->vidioc_g_frequency(file, NULL, p); + return ops->vidioc_g_frequency(file, state, p); } =20 -static int v4l_s_frequency(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) +static int v4l_s_frequency(const struct v4l2_ioctl_ops *ops, struct file *= file, + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); const struct v4l2_frequency *p =3D arg; @@ -2060,11 +2060,11 @@ static int v4l_s_frequency(const struct v4l2_ioctl_= ops *ops, if (type !=3D p->type) return -EINVAL; } - return ops->vidioc_s_frequency(file, NULL, p); + return ops->vidioc_s_frequency(file, state, p); } =20 static int v4l_enumstd(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_standard *p =3D arg; @@ -2073,7 +2073,7 @@ static int v4l_enumstd(const struct v4l2_ioctl_ops *o= ps, struct file *file, } =20 static int v4l_s_std(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); v4l2_std_id id =3D *(v4l2_std_id *)arg, norm; @@ -2087,11 +2087,11 @@ static int v4l_s_std(const struct v4l2_ioctl_ops *o= ps, struct file *file, return -EINVAL; =20 /* Calls the specific handler */ - return ops->vidioc_s_std(file, NULL, norm); + return ops->vidioc_s_std(file, state, norm); } =20 static int v4l_querystd(const struct v4l2_ioctl_ops *ops, struct file *fil= e, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); v4l2_std_id *p =3D arg; @@ -2109,11 +2109,12 @@ static int v4l_querystd(const struct v4l2_ioctl_ops= *ops, struct file *file, * their efforts to improve the standards detection. */ *p =3D vfd->tvnorms; - return ops->vidioc_querystd(file, NULL, arg); + return ops->vidioc_querystd(file, state, arg); } =20 static int v4l_s_hw_freq_seek(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) + struct file *file, + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_hw_freq_seek *p =3D arg; @@ -2131,26 +2132,26 @@ static int v4l_s_hw_freq_seek(const struct v4l2_ioc= tl_ops *ops, V4L2_TUNER_RADIO : V4L2_TUNER_ANALOG_TV; if (p->type !=3D type) return -EINVAL; - return ops->vidioc_s_hw_freq_seek(file, NULL, p); + return ops->vidioc_s_hw_freq_seek(file, state, p); } =20 static int v4l_s_fbuf(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct v4l2_framebuffer *p =3D arg; =20 p->base =3D NULL; - return ops->vidioc_s_fbuf(file, NULL, p); + return ops->vidioc_s_fbuf(file, state, p); } =20 static int v4l_overlay(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { - return ops->vidioc_overlay(file, NULL, *(unsigned int *)arg); + return ops->vidioc_overlay(file, state, *(unsigned int *)arg); } =20 static int v4l_reqbufs(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_requestbuffers *p =3D arg; @@ -2165,38 +2166,38 @@ static int v4l_reqbufs(const struct v4l2_ioctl_ops = *ops, struct file *file, if (is_valid_ioctl(vfd, VIDIOC_REMOVE_BUFS)) p->capabilities =3D V4L2_BUF_CAP_SUPPORTS_REMOVE_BUFS; =20 - return ops->vidioc_reqbufs(file, NULL, p); + return ops->vidioc_reqbufs(file, state, p); } =20 static int v4l_querybuf(const struct v4l2_ioctl_ops *ops, struct file *fil= e, - void *arg) + struct video_device_state *state, void *arg) { struct v4l2_buffer *p =3D arg; int ret =3D check_fmt(file, p->type); =20 - return ret ? ret : ops->vidioc_querybuf(file, NULL, p); + return ret ? ret : ops->vidioc_querybuf(file, state, p); } =20 static int v4l_qbuf(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct v4l2_buffer *p =3D arg; int ret =3D check_fmt(file, p->type); =20 - return ret ? ret : ops->vidioc_qbuf(file, NULL, p); + return ret ? ret : ops->vidioc_qbuf(file, state, p); } =20 static int v4l_dqbuf(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct v4l2_buffer *p =3D arg; int ret =3D check_fmt(file, p->type); =20 - return ret ? ret : ops->vidioc_dqbuf(file, NULL, p); + return ret ? ret : ops->vidioc_dqbuf(file, state, p); } =20 -static int v4l_create_bufs(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) +static int v4l_create_bufs(const struct v4l2_ioctl_ops *ops, struct file *= file, + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_create_buffers *create =3D arg; @@ -2213,7 +2214,7 @@ static int v4l_create_bufs(const struct v4l2_ioctl_op= s *ops, if (is_valid_ioctl(vfd, VIDIOC_REMOVE_BUFS)) create->capabilities =3D V4L2_BUF_CAP_SUPPORTS_REMOVE_BUFS; =20 - ret =3D ops->vidioc_create_bufs(file, NULL, create); + ret =3D ops->vidioc_create_bufs(file, state, create); =20 if (create->format.type =3D=3D V4L2_BUF_TYPE_VIDEO_CAPTURE || create->format.type =3D=3D V4L2_BUF_TYPE_VIDEO_OUTPUT) @@ -2222,28 +2223,28 @@ static int v4l_create_bufs(const struct v4l2_ioctl_= ops *ops, return ret; } =20 -static int v4l_prepare_buf(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) +static int v4l_prepare_buf(const struct v4l2_ioctl_ops *ops, struct file *= file, + struct video_device_state *state, void *arg) { struct v4l2_buffer *b =3D arg; int ret =3D check_fmt(file, b->type); =20 - return ret ? ret : ops->vidioc_prepare_buf(file, NULL, b); + return ret ? ret : ops->vidioc_prepare_buf(file, state, b); } =20 -static int v4l_remove_bufs(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) +static int v4l_remove_bufs(const struct v4l2_ioctl_ops *ops, struct file *= file, + struct video_device_state *state, void *arg) { struct v4l2_remove_buffers *remove =3D arg; =20 if (ops->vidioc_remove_bufs) - return ops->vidioc_remove_bufs(file, NULL, remove); + return ops->vidioc_remove_bufs(file, state, remove); =20 return -ENOTTY; } =20 static int v4l_g_parm(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_streamparm *p =3D arg; @@ -2253,20 +2254,20 @@ static int v4l_g_parm(const struct v4l2_ioctl_ops *= ops, struct file *file, if (ret) return ret; if (ops->vidioc_g_parm) - return ops->vidioc_g_parm(file, NULL, p); + return ops->vidioc_g_parm(file, state, p); if (p->type !=3D V4L2_BUF_TYPE_VIDEO_CAPTURE && p->type !=3D V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) return -EINVAL; if (vfd->device_caps & V4L2_CAP_READWRITE) p->parm.capture.readbuffers =3D 2; - ret =3D ops->vidioc_g_std(file, NULL, &std); + ret =3D ops->vidioc_g_std(file, state, &std); if (ret =3D=3D 0) v4l2_video_std_frame_period(std, &p->parm.capture.timeperframe); return ret; } =20 static int v4l_s_parm(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct v4l2_streamparm *p =3D arg; int ret =3D check_fmt(file, p->type); @@ -2286,11 +2287,11 @@ static int v4l_s_parm(const struct v4l2_ioctl_ops *= ops, struct file *file, p->parm.capture.extendedmode =3D 0; p->parm.capture.capturemode &=3D V4L2_MODE_HIGHQUALITY; } - return ops->vidioc_s_parm(file, NULL, p); + return ops->vidioc_s_parm(file, state, p); } =20 static int v4l_queryctrl(const struct v4l2_ioctl_ops *ops, struct file *fi= le, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_query_ext_ctrl qec =3D {}; @@ -2307,7 +2308,7 @@ static int v4l_queryctrl(const struct v4l2_ioctl_ops = *ops, struct file *file, =20 /* Simulate query_ext_ctr using query_ctrl. */ qec.id =3D p->id; - ret =3D ops->vidioc_query_ext_ctrl(file, NULL, &qec); + ret =3D ops->vidioc_query_ext_ctrl(file, state, &qec); if (ret) return ret; v4l2_query_ext_ctrl_to_v4l2_queryctrl(p, &qec); @@ -2315,7 +2316,8 @@ static int v4l_queryctrl(const struct v4l2_ioctl_ops = *ops, struct file *file, } =20 static int v4l_query_ext_ctrl(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) + struct file *file, + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_query_ext_ctrl *p =3D arg; @@ -2326,12 +2328,12 @@ static int v4l_query_ext_ctrl(const struct v4l2_ioc= tl_ops *ops, if (vfd->ctrl_handler) return v4l2_query_ext_ctrl(vfd->ctrl_handler, p); if (ops->vidioc_query_ext_ctrl) - return ops->vidioc_query_ext_ctrl(file, NULL, p); + return ops->vidioc_query_ext_ctrl(file, state, p); return -ENOTTY; } =20 static int v4l_querymenu(const struct v4l2_ioctl_ops *ops, struct file *fi= le, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_querymenu *p =3D arg; @@ -2342,12 +2344,12 @@ static int v4l_querymenu(const struct v4l2_ioctl_op= s *ops, struct file *file, if (vfd->ctrl_handler) return v4l2_querymenu(vfd->ctrl_handler, p); if (ops->vidioc_querymenu) - return ops->vidioc_querymenu(file, NULL, p); + return ops->vidioc_querymenu(file, state, p); return -ENOTTY; } =20 static int v4l_g_ctrl(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_control *p =3D arg; @@ -2368,7 +2370,7 @@ static int v4l_g_ctrl(const struct v4l2_ioctl_ops *op= s, struct file *file, ctrl.id =3D p->id; ctrl.value =3D p->value; if (check_ext_ctrls(&ctrls, VIDIOC_G_CTRL)) { - int ret =3D ops->vidioc_g_ext_ctrls(file, NULL, &ctrls); + int ret =3D ops->vidioc_g_ext_ctrls(file, state, &ctrls); =20 if (ret =3D=3D 0) p->value =3D ctrl.value; @@ -2378,7 +2380,7 @@ static int v4l_g_ctrl(const struct v4l2_ioctl_ops *op= s, struct file *file, } =20 static int v4l_s_ctrl(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_control *p =3D arg; @@ -2401,13 +2403,13 @@ static int v4l_s_ctrl(const struct v4l2_ioctl_ops *= ops, struct file *file, ctrl.value =3D p->value; if (!check_ext_ctrls(&ctrls, VIDIOC_S_CTRL)) return -EINVAL; - ret =3D ops->vidioc_s_ext_ctrls(file, NULL, &ctrls); + ret =3D ops->vidioc_s_ext_ctrls(file, state, &ctrls); p->value =3D ctrl.value; return ret; } =20 -static int v4l_g_ext_ctrls(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) +static int v4l_g_ext_ctrls(const struct v4l2_ioctl_ops *ops, struct file *= file, + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_ext_controls *p =3D arg; @@ -2423,11 +2425,11 @@ static int v4l_g_ext_ctrls(const struct v4l2_ioctl_= ops *ops, if (ops->vidioc_g_ext_ctrls =3D=3D NULL) return -ENOTTY; return check_ext_ctrls(p, VIDIOC_G_EXT_CTRLS) ? - ops->vidioc_g_ext_ctrls(file, NULL, p) : -EINVAL; + ops->vidioc_g_ext_ctrls(file, state, p) : -EINVAL; } =20 -static int v4l_s_ext_ctrls(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) +static int v4l_s_ext_ctrls(const struct v4l2_ioctl_ops *ops, struct file *= file, + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_ext_controls *p =3D arg; @@ -2443,11 +2445,12 @@ static int v4l_s_ext_ctrls(const struct v4l2_ioctl_= ops *ops, if (ops->vidioc_s_ext_ctrls =3D=3D NULL) return -ENOTTY; return check_ext_ctrls(p, VIDIOC_S_EXT_CTRLS) ? - ops->vidioc_s_ext_ctrls(file, NULL, p) : -EINVAL; + ops->vidioc_s_ext_ctrls(file, state, p) : -EINVAL; } =20 static int v4l_try_ext_ctrls(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) + struct file *file, + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_ext_controls *p =3D arg; @@ -2463,7 +2466,7 @@ static int v4l_try_ext_ctrls(const struct v4l2_ioctl_= ops *ops, if (ops->vidioc_try_ext_ctrls =3D=3D NULL) return -ENOTTY; return check_ext_ctrls(p, VIDIOC_TRY_EXT_CTRLS) ? - ops->vidioc_try_ext_ctrls(file, NULL, p) : -EINVAL; + ops->vidioc_try_ext_ctrls(file, state, p) : -EINVAL; } =20 /* @@ -2475,8 +2478,8 @@ static int v4l_try_ext_ctrls(const struct v4l2_ioctl_= ops *ops, * restore it afterwards. This way applications can use either buffer * type and drivers don't need to check for both. */ -static int v4l_g_selection(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) +static int v4l_g_selection(const struct v4l2_ioctl_ops *ops, struct file *= file, + struct video_device_state *state, void *arg) { struct v4l2_selection *p =3D arg; u32 old_type =3D p->type; @@ -2486,13 +2489,13 @@ static int v4l_g_selection(const struct v4l2_ioctl_= ops *ops, p->type =3D V4L2_BUF_TYPE_VIDEO_CAPTURE; else if (p->type =3D=3D V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) p->type =3D V4L2_BUF_TYPE_VIDEO_OUTPUT; - ret =3D ops->vidioc_g_selection(file, NULL, p); + ret =3D ops->vidioc_g_selection(file, state, p); p->type =3D old_type; return ret; } =20 -static int v4l_s_selection(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) +static int v4l_s_selection(const struct v4l2_ioctl_ops *ops, struct file *= file, + struct video_device_state *state, void *arg) { struct v4l2_selection *p =3D arg; u32 old_type =3D p->type; @@ -2502,13 +2505,13 @@ static int v4l_s_selection(const struct v4l2_ioctl_= ops *ops, p->type =3D V4L2_BUF_TYPE_VIDEO_CAPTURE; else if (p->type =3D=3D V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) p->type =3D V4L2_BUF_TYPE_VIDEO_OUTPUT; - ret =3D ops->vidioc_s_selection(file, NULL, p); + ret =3D ops->vidioc_s_selection(file, state, p); p->type =3D old_type; return ret; } =20 static int v4l_g_crop(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_crop *p =3D arg; @@ -2529,7 +2532,7 @@ static int v4l_g_crop(const struct v4l2_ioctl_ops *op= s, struct file *file, s.target =3D s.target =3D=3D V4L2_SEL_TGT_COMPOSE ? V4L2_SEL_TGT_CROP : V4L2_SEL_TGT_COMPOSE; =20 - ret =3D v4l_g_selection(ops, file, &s); + ret =3D v4l_g_selection(ops, file, state, &s); =20 /* copying results to old structure on success */ if (!ret) @@ -2538,7 +2541,7 @@ static int v4l_g_crop(const struct v4l2_ioctl_ops *op= s, struct file *file, } =20 static int v4l_s_crop(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_crop *p =3D arg; @@ -2559,11 +2562,11 @@ static int v4l_s_crop(const struct v4l2_ioctl_ops *= ops, struct file *file, s.target =3D s.target =3D=3D V4L2_SEL_TGT_COMPOSE ? V4L2_SEL_TGT_CROP : V4L2_SEL_TGT_COMPOSE; =20 - return v4l_s_selection(ops, file, &s); + return v4l_s_selection(ops, file, state, &s); } =20 static int v4l_cropcap(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_cropcap *p =3D arg; @@ -2587,7 +2590,7 @@ static int v4l_cropcap(const struct v4l2_ioctl_ops *o= ps, struct file *file, return -ENOTTY; =20 if (ops->vidioc_g_pixelaspect) - ret =3D ops->vidioc_g_pixelaspect(file, NULL, s.type, + ret =3D ops->vidioc_g_pixelaspect(file, state, s.type, &p->pixelaspect); =20 /* @@ -2609,7 +2612,7 @@ static int v4l_cropcap(const struct v4l2_ioctl_ops *o= ps, struct file *file, s.target =3D s.target =3D=3D V4L2_SEL_TGT_COMPOSE_BOUNDS ? V4L2_SEL_TGT_CROP_BOUNDS : V4L2_SEL_TGT_COMPOSE_BOUNDS; =20 - ret =3D v4l_g_selection(ops, file, &s); + ret =3D v4l_g_selection(ops, file, state, &s); if (ret) return ret; p->bounds =3D s.r; @@ -2620,7 +2623,7 @@ static int v4l_cropcap(const struct v4l2_ioctl_ops *o= ps, struct file *file, else s.target =3D V4L2_SEL_TGT_CROP_DEFAULT; =20 - ret =3D v4l_g_selection(ops, file, &s); + ret =3D v4l_g_selection(ops, file, state, &s); if (ret) return ret; p->defrect =3D s.r; @@ -2629,7 +2632,7 @@ static int v4l_cropcap(const struct v4l2_ioctl_ops *o= ps, struct file *file, } =20 static int v4l_log_status(const struct v4l2_ioctl_ops *ops, struct file *f= ile, - void *arg) + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); int ret; @@ -2637,7 +2640,7 @@ static int v4l_log_status(const struct v4l2_ioctl_ops= *ops, struct file *file, if (vfd->v4l2_dev) pr_info("%s: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D START = STATUS =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D\n", vfd->v4l2_dev->name); - ret =3D ops->vidioc_log_status(file, NULL); + ret =3D ops->vidioc_log_status(file, state); if (vfd->v4l2_dev) pr_info("%s: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D END= STATUS =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D\n", vfd->v4l2_dev->name); @@ -2645,7 +2648,8 @@ static int v4l_log_status(const struct v4l2_ioctl_ops= *ops, struct file *file, } =20 static int v4l_dbg_g_register(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) + struct file *file, + struct video_device_state *state, void *arg) { #ifdef CONFIG_VIDEO_ADV_DEBUG struct v4l2_dbg_register *p =3D arg; @@ -2665,7 +2669,7 @@ static int v4l_dbg_g_register(const struct v4l2_ioctl= _ops *ops, } if (ops->vidioc_g_register && p->match.type =3D=3D V4L2_CHIP_MATCH_BRIDGE= && (ops->vidioc_g_chip_info || p->match.addr =3D=3D 0)) - return ops->vidioc_g_register(file, NULL, p); + return ops->vidioc_g_register(file, state, p); return -EINVAL; #else return -ENOTTY; @@ -2673,7 +2677,8 @@ static int v4l_dbg_g_register(const struct v4l2_ioctl= _ops *ops, } =20 static int v4l_dbg_s_register(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) + struct file *file, + struct video_device_state *state, void *arg) { #ifdef CONFIG_VIDEO_ADV_DEBUG const struct v4l2_dbg_register *p =3D arg; @@ -2693,7 +2698,7 @@ static int v4l_dbg_s_register(const struct v4l2_ioctl= _ops *ops, } if (ops->vidioc_s_register && p->match.type =3D=3D V4L2_CHIP_MATCH_BRIDGE= && (ops->vidioc_g_chip_info || p->match.addr =3D=3D 0)) - return ops->vidioc_s_register(file, NULL, p); + return ops->vidioc_s_register(file, state, p); return -EINVAL; #else return -ENOTTY; @@ -2701,7 +2706,8 @@ static int v4l_dbg_s_register(const struct v4l2_ioctl= _ops *ops, } =20 static int v4l_dbg_g_chip_info(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) + struct file *file, + struct video_device_state *state, void *arg) { #ifdef CONFIG_VIDEO_ADV_DEBUG struct video_device *vfd =3D video_devdata(file); @@ -2717,7 +2723,7 @@ static int v4l_dbg_g_chip_info(const struct v4l2_ioct= l_ops *ops, p->flags |=3D V4L2_CHIP_FL_READABLE; strscpy(p->name, vfd->v4l2_dev->name, sizeof(p->name)); if (ops->vidioc_g_chip_info) - return ops->vidioc_g_chip_info(file, NULL, arg); + return ops->vidioc_g_chip_info(file, state, arg); if (p->match.addr) return -EINVAL; return 0; @@ -2744,7 +2750,7 @@ static int v4l_dbg_g_chip_info(const struct v4l2_ioct= l_ops *ops, } =20 static int v4l_dqevent(const struct v4l2_ioctl_ops *ops, struct file *file, - void *arg) + struct video_device_state *state, void *arg) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); =20 @@ -2752,7 +2758,8 @@ static int v4l_dqevent(const struct v4l2_ioctl_ops *o= ps, struct file *file, } =20 static int v4l_subscribe_event(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) + struct file *file, + struct video_device_state *state, void *arg) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); =20 @@ -2760,7 +2767,8 @@ static int v4l_subscribe_event(const struct v4l2_ioct= l_ops *ops, } =20 static int v4l_unsubscribe_event(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) + struct file *file, + struct video_device_state *state, void *arg) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); =20 @@ -2768,7 +2776,8 @@ static int v4l_unsubscribe_event(const struct v4l2_io= ctl_ops *ops, } =20 static int v4l_g_sliced_vbi_cap(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) + struct file *file, + struct video_device_state *state, void *arg) { struct v4l2_sliced_vbi_cap *p =3D arg; int ret =3D check_fmt(file, p->type); @@ -2779,11 +2788,12 @@ static int v4l_g_sliced_vbi_cap(const struct v4l2_i= octl_ops *ops, /* Clear up to type, everything after type is zeroed already */ memset(p, 0, offsetof(struct v4l2_sliced_vbi_cap, type)); =20 - return ops->vidioc_g_sliced_vbi_cap(file, NULL, p); + return ops->vidioc_g_sliced_vbi_cap(file, state, p); } =20 static int v4l_enum_freq_bands(const struct v4l2_ioctl_ops *ops, - struct file *file, void *arg) + struct file *file, + struct video_device_state *state, void *arg) { struct video_device *vfd =3D video_devdata(file); struct v4l2_frequency_band *p =3D arg; @@ -2801,7 +2811,7 @@ static int v4l_enum_freq_bands(const struct v4l2_ioct= l_ops *ops, return -EINVAL; } if (ops->vidioc_enum_freq_bands) { - err =3D ops->vidioc_enum_freq_bands(file, NULL, p); + err =3D ops->vidioc_enum_freq_bands(file, state, p); if (err !=3D -ENOTTY) return err; } @@ -2813,7 +2823,7 @@ static int v4l_enum_freq_bands(const struct v4l2_ioct= l_ops *ops, =20 if (p->index) return -EINVAL; - err =3D ops->vidioc_g_tuner(file, NULL, &t); + err =3D ops->vidioc_g_tuner(file, state, &t); if (err) return err; p->capability =3D t.capability | V4L2_TUNER_CAP_FREQ_BANDS; @@ -2832,7 +2842,7 @@ static int v4l_enum_freq_bands(const struct v4l2_ioct= l_ops *ops, return -EINVAL; if (p->index) return -EINVAL; - err =3D ops->vidioc_g_modulator(file, NULL, &m); + err =3D ops->vidioc_g_modulator(file, state, &m); if (err) return err; p->capability =3D m.capability | V4L2_TUNER_CAP_FREQ_BANDS; @@ -2849,7 +2859,7 @@ struct v4l2_ioctl_info { u32 flags; const char * const name; int (*func)(const struct v4l2_ioctl_ops *ops, struct file *file, - void *p); + struct video_device_state *state, void *p); void (*debug)(const void *arg, bool write_only); }; =20 @@ -2870,7 +2880,9 @@ struct v4l2_ioctl_info { #define DEFINE_V4L_STUB_FUNC(_vidioc) \ static int v4l_stub_ ## _vidioc( \ const struct v4l2_ioctl_ops *ops, \ - struct file *file, void *p) \ + struct file *file, \ + struct video_device_state *state, \ + void *p) \ { \ return ops->vidioc_ ## _vidioc(file, NULL, p); \ } @@ -3126,7 +3138,7 @@ static long __video_do_ioctl(struct file *file, =20 write_only =3D _IOC_DIR(cmd) =3D=3D _IOC_WRITE; if (info !=3D &default_info) { - ret =3D info->func(ops, file, arg); + ret =3D info->func(ops, file, NULL, arg); } else if (!ops->vidioc_default) { ret =3D -ENOTTY; } else { --=20 2.51.0 From nobody Thu Oct 2 07:45:15 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8CC3F2F83A7; Fri, 19 Sep 2025 09:57:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275897; cv=none; b=GZsLHLYDzS1Ht0CXLCbDNVesxh+fxFyR6/xmuuY/ZhGA1cBS7PCcjhG3+Py7ZqtCNnD+sU4H42DWlymBBp5hYQGPcpIBsQpl8Hi2gZWCLXG+zUdU/mHgDLYYf6Nn48mXFyMuJ+H3xg8EezSG1YxTJ6Rwuekxbj3h36IAVkRjrR0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275897; c=relaxed/simple; bh=PVcIVYgi1U5GQ0iqtJSIWmipD24USGtOXZChfIDQUag=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gSWh6ldH9Hdra/7YRYmnTTt6hQPnD4HRoHwrZUTeVAqKyjDEcPvpVN23R4BrQKW0uAo9dOydNqoRrG/qU/9q0cOl3SGr8J2tS8p48L6vUGgTLQJrIEuld6ZtIo5Vw4zZ4uFv7D9SGHyNEmpNxZn1UVYcfP2tNtVdrW6z+znwsBw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=PlUBeh2M; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="PlUBeh2M" Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c30:4816:952:3054:81b6:1a3a]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 29362842; Fri, 19 Sep 2025 11:56:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1758275776; bh=PVcIVYgi1U5GQ0iqtJSIWmipD24USGtOXZChfIDQUag=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=PlUBeh2MEuzjx1/LZR1uL0+t043lpF3lfUOf5VA0LkUQG1A46f0qUjh3at+VSJVMb 4k2SmXx9wIVQshJf+fgnRnDXKFrqp6x0sEjjb73DFYV6uG9iBnm8ygtqwz8pGPApXo TmsR2iVRZ/nR01JNkQia/OOc3wRBsw1u4jM+m88s= From: Jai Luthra Date: Fri, 19 Sep 2025 15:25:58 +0530 Subject: [PATCH v2 06/10] media: Replace void * with video_device_state * in all driver ioctl implementations Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250919-vdev-state-v2-6-b2c42426965c@ideasonboard.com> References: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> In-Reply-To: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> To: Hans Verkuil , Mauro Carvalho Chehab , Sakari Ailus , Laurent Pinchart , Tomi Valkeinen , Jacopo Mondi , linux-media@vger.kernel.org Cc: Jai Luthra , Dmitry Torokhov , Nick Dyer , Tomasz Figa , Marek Szyprowski , Matt Ranostay , Andy Walls , Yong Zhi , Bingbu Cao , Dan Scally , Tianshu Qiu , Martin Tuma , Bluecherry Maintainers , Andrey Utkin , Ismael Luceno , Ezequiel Garcia , Corentin Labbe , Michael Tretter , Pengutronix Kernel Team , Keke Li , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Ming Qian , Zhou Peng , Eddie James , Joel Stanley , Andrew Jeffery , Eugen Hristev , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Raspberry Pi Kernel Maintenance , Florian Fainelli , Broadcom internal kernel review list , Ray Jui , Scott Branden , Philipp Zabel , Nas Chung , Jackson Lee , Devarsh Thakkar , Bin Liu , Matthias Brugger , AngeloGioacchino Del Regno , Minghsiu Tsai , Houlong Wei , Andrew-CT Chen , Tiffany Lin , Yunfei Dong , Joseph Liu , Marvin Lin , Dmitry Osipenko , Thierry Reding , Jonathan Hunter , Xavier Roumegue , Mirela Rabulea , Shawn Guo , Sascha Hauer , Fabio Estevam , Rui Miguel Silva , Martin Kepplinger , Purism Kernel Team , Robert Foss , Todor Tomov , Bryan O'Donoghue , Vladimir Zapolskiy , Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , =?utf-8?q?Niklas_S=C3=B6derlund?= , Geert Uytterhoeven , Magnus Damm , Fabrizio Castro , Kieran Bingham , Nikita Yushchenko , Jacob Chen , Heiko Stuebner , Dafna Hirschfeld , Detlev Casanova , Krzysztof Kozlowski , Alim Akhtar , Sylwester Nawrocki , =?utf-8?q?=C5=81ukasz_Stelmach?= , Andrzej Pietrasiewicz , Jacek Anaszewski , Andrzej Hajda , Fabien Dessenne , Hugues Fruchet , Jean-Christophe Trotin , Maxime Coquelin , Alexandre Torgue , Alain Volmat , Maxime Ripard , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Yong Deng , Paul Kocialkowski , Shreeya Patel , "Lad, Prabhakar" , Yemike Abhilash Chandra , Jai Luthra , Nicolas Dufresne , Benjamin Gaignard , Michal Simek , Alexey Klimov , Eduardo Valentin , Shuah Khan , Daniel Almeida , Michael Krufky , Mike Isely , Hans de Goede , Andy Shevchenko , Greg Kroah-Hartman , Steve Longerbeam , Jack Zhu , Changhuang Liang , Sowjanya Komatineni , Luca Ceresoli , Parthiban Veerasooran , Christian Gromm , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , Ingo Molnar , Thomas Gleixner , Plamen Atanasov , Sean Young , Ariel Otilibili , "Dr. David Alan Gilbert" , Jiasheng Jiang , Lad Prabhakar , Tommaso Merciai , Biju Das , Daniel Scally , Matthew Majewski , Yunseong Kim , Chen Ni , Ricardo Ribalda , Fabio Luongo , Mark Brown , Yang Yingliang , Ludwig Disterhof , Ma Ke , "Everest K.C." , Stefan Wahren , Dave Stevenson , Michael Grzeschik , Akash Kumar , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, mjpeg-users@lists.sourceforge.net, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, openbmc@lists.ozlabs.org, linux-aspeed@lists.ozlabs.org, linux-rpi-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-tegra@vger.kernel.org, imx@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-sunxi@lists.linux.dev, kernel@collabora.com, linux-staging@lists.linux.dev, linux-usb@vger.kernel.org X-Mailer: b4 0.14.2 Replace the opaque (and unused) pointer with a pointer to the video device state in all V4L2 driver ioctl implementations. Most changes were automated using Coccinelle semantic patches for both drivers and framework helpers: @ops@ identifier ops; identifier vidioc_op; identifier fn; @@ struct v4l2_ioctl_ops ops =3D { ..., .vidioc_op =3D fn, ..., }; // Rule 1 (like vidioc_log_status) @depends on ops@ identifier ops.fn; identifier filep; identifier priv; @@ int fn(struct file *filep, - void *priv) + struct video_device_state *state) { <... - priv + state ...> } // Rule 2 (most ioctls) @depends on ops@ identifier ops.fn; identifier filep; identifier priv; identifier arg; type T; @@ int fn(struct file *filep, - void *priv, + struct video_device_state *state, T arg) { <... - priv + state ...> } // Rule 3 (like vidioc_g_pixelaspect) @depends on ops@ identifier ops.fn; identifier filep; identifier priv; identifier buf_type; identifier arg; type T1, T2; @@ int fn(struct file *filep, - void *priv, + struct video_device_state *state, T1 buf_type, T2 *arg) { <... - priv + state ...> } // Rule 4 (like vidioc_default) @depends on ops@ identifier ops.fn; identifier filep; identifier priv; identifier valid_prio; identifier cmd; identifier arg; @@ long fn(struct file *filep, - void *priv, + struct video_device_state *state, bool valid_prio, unsigned int cmd, void *arg) { <... - priv + state ...> } Function signature updates in headers and edge cases where drivers call ioctl implementations internally were handled manually. Signed-off-by: Jai Luthra -- Cc: Dmitry Torokhov Cc: Nick Dyer Cc: Hans Verkuil Cc: Mauro Carvalho Chehab Cc: Tomasz Figa Cc: Marek Szyprowski Cc: Matt Ranostay Cc: Andy Walls Cc: Yong Zhi Cc: Sakari Ailus Cc: Bingbu Cao Cc: Dan Scally Cc: Tianshu Qiu Cc: Martin Tuma Cc: Bluecherry Maintainers Cc: Andrey Utkin Cc: Ismael Luceno Cc: Ezequiel Garcia Cc: Corentin Labbe Cc: Michael Tretter Cc: Pengutronix Kernel Team Cc: Keke Li Cc: Neil Armstrong Cc: Kevin Hilman Cc: Jerome Brunet Cc: Martin Blumenstingl Cc: Ming Qian Cc: Zhou Peng Cc: Eddie James Cc: Joel Stanley Cc: Andrew Jeffery Cc: Eugen Hristev Cc: Nicolas Ferre Cc: Alexandre Belloni Cc: Claudiu Beznea Cc: Raspberry Pi Kernel Maintenance Cc: Florian Fainelli Cc: Broadcom internal kernel review list Cc: Ray Jui Cc: Scott Branden Cc: Philipp Zabel Cc: Nas Chung Cc: Jackson Lee Cc: Devarsh Thakkar Cc: Bin Liu Cc: Matthias Brugger Cc: AngeloGioacchino Del Regno Cc: Minghsiu Tsai Cc: Houlong Wei Cc: Andrew-CT Chen Cc: Tiffany Lin Cc: Yunfei Dong Cc: Joseph Liu Cc: Marvin Lin Cc: Dmitry Osipenko Cc: Thierry Reding Cc: Jonathan Hunter Cc: Xavier Roumegue Cc: Mirela Rabulea Cc: Shawn Guo Cc: Sascha Hauer Cc: Fabio Estevam Cc: Rui Miguel Silva Cc: Laurent Pinchart Cc: Martin Kepplinger Cc: Purism Kernel Team Cc: Robert Foss Cc: Todor Tomov Cc: "Bryan O'Donoghue" Cc: Vladimir Zapolskiy Cc: Vikash Garodia Cc: Dikshita Agarwal Cc: Abhinav Kumar Cc: Jacopo Mondi Cc: Tomi Valkeinen Cc: "Niklas S=C3=B6derlund" Cc: Geert Uytterhoeven Cc: Magnus Damm Cc: Fabrizio Castro Cc: Kieran Bingham Cc: Nikita Yushchenko Cc: Jacob Chen Cc: Heiko Stuebner Cc: Dafna Hirschfeld Cc: Detlev Casanova Cc: Krzysztof Kozlowski Cc: Alim Akhtar Cc: Sylwester Nawrocki Cc: "=C5=81ukasz Stelmach" Cc: Andrzej Pietrasiewicz Cc: Jacek Anaszewski Cc: Andrzej Hajda Cc: Fabien Dessenne Cc: Hugues Fruchet Cc: Jean-Christophe Trotin Cc: Maxime Coquelin Cc: Alexandre Torgue Cc: Alain Volmat Cc: Maxime Ripard Cc: Chen-Yu Tsai Cc: Jernej Skrabec Cc: Samuel Holland Cc: Yong Deng Cc: Paul Kocialkowski Cc: Shreeya Patel Cc: "Lad, Prabhakar" Cc: Yemike Abhilash Chandra Cc: Jai Luthra Cc: Nicolas Dufresne Cc: Benjamin Gaignard Cc: Michal Simek Cc: Alexey Klimov Cc: Eduardo Valentin Cc: Shuah Khan Cc: Daniel Almeida Cc: Michael Krufky Cc: Mike Isely Cc: Hans de Goede Cc: Andy Shevchenko Cc: Greg Kroah-Hartman Cc: Steve Longerbeam Cc: Jack Zhu Cc: Changhuang Liang Cc: Sowjanya Komatineni Cc: Luca Ceresoli Cc: Parthiban Veerasooran Cc: Christian Gromm Cc: "Uwe Kleine-K=C3=B6nig" Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Plamen Atanasov Cc: Sean Young Cc: Ariel Otilibili Cc: "Dr. David Alan Gilbert" Cc: Jiasheng Jiang Cc: Lad Prabhakar Cc: Tommaso Merciai Cc: Biju Das Cc: Daniel Scally Cc: Matthew Majewski Cc: Yunseong Kim Cc: Chen Ni Cc: Ricardo Ribalda Cc: Fabio Luongo Cc: Mark Brown Cc: Yang Yingliang Cc: Ludwig Disterhof Cc: Ma Ke Cc: "Everest K.C." Cc: Stefan Wahren Cc: Dave Stevenson Cc: Michael Grzeschik Cc: Akash Kumar Cc: linux-input@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-media@vger.kernel.org Cc: mjpeg-users@lists.sourceforge.net Cc: linux-amlogic@lists.infradead.org Cc: linux-arm-kernel@lists.infradead.org Cc: openbmc@lists.ozlabs.org Cc: linux-aspeed@lists.ozlabs.org Cc: linux-rpi-kernel@lists.infradead.org Cc: linux-mediatek@lists.infradead.org Cc: linux-tegra@vger.kernel.org Cc: imx@lists.linux.dev Cc: linux-arm-msm@vger.kernel.org Cc: linux-renesas-soc@vger.kernel.org Cc: linux-rockchip@lists.infradead.org Cc: linux-samsung-soc@vger.kernel.org Cc: linux-stm32@st-md-mailman.stormreply.com Cc: linux-sunxi@lists.linux.dev Cc: kernel@collabora.com Cc: linux-staging@lists.linux.dev Cc: linux-usb@vger.kernel.org --- drivers/input/rmi4/rmi_f54.c | 22 +- drivers/input/touchscreen/atmel_mxt_ts.c | 23 +- drivers/input/touchscreen/sur40.c | 35 ++- .../extron-da-hd-4k-plus/extron-da-hd-4k-plus.c | 34 ++- drivers/media/common/saa7146/saa7146_video.c | 37 +++- drivers/media/common/videobuf2/videobuf2-v4l2.c | 30 ++- drivers/media/dvb-frontends/rtl2832_sdr.c | 38 ++-- drivers/media/i2c/video-i2c.c | 39 ++-- drivers/media/pci/bt8xx/bttv-driver.c | 84 +++++--- drivers/media/pci/bt8xx/bttv-vbi.c | 11 +- drivers/media/pci/bt8xx/bttvp.h | 9 +- drivers/media/pci/cobalt/cobalt-v4l2.c | 98 +++++---- drivers/media/pci/cx18/cx18-driver.c | 9 +- drivers/media/pci/cx18/cx18-ioctl.c | 114 ++++++---- drivers/media/pci/cx18/cx18-ioctl.h | 9 +- drivers/media/pci/cx23885/cx23885-417.c | 53 +++-- drivers/media/pci/cx23885/cx23885-ioctl.c | 8 +- drivers/media/pci/cx23885/cx23885-ioctl.h | 9 +- drivers/media/pci/cx23885/cx23885-vbi.c | 5 +- drivers/media/pci/cx23885/cx23885-video.c | 82 ++++--- drivers/media/pci/cx23885/cx23885.h | 4 +- drivers/media/pci/cx25821/cx25821-video.c | 57 +++-- drivers/media/pci/cx88/cx88-blackbird.c | 47 ++-- drivers/media/pci/cx88/cx88-vbi.c | 2 +- drivers/media/pci/cx88/cx88-video.c | 56 +++-- drivers/media/pci/cx88/cx88.h | 2 +- drivers/media/pci/dt3155/dt3155.c | 25 ++- drivers/media/pci/intel/ipu3/ipu3-cio2.c | 29 ++- drivers/media/pci/intel/ipu6/ipu6-isys-video.c | 41 ++-- drivers/media/pci/ivtv/ivtv-driver.c | 8 +- drivers/media/pci/ivtv/ivtv-ioctl.c | 225 +++++++++++++----= -- drivers/media/pci/ivtv/ivtv-ioctl.h | 6 +- drivers/media/pci/mgb4/mgb4_vin.c | 55 +++-- drivers/media/pci/mgb4/mgb4_vout.c | 49 +++-- drivers/media/pci/saa7134/saa7134-empress.c | 12 +- drivers/media/pci/saa7134/saa7134-video.c | 96 +++++---- drivers/media/pci/saa7134/saa7134.h | 38 ++-- drivers/media/pci/saa7146/hexium_gemini.c | 10 +- drivers/media/pci/saa7146/hexium_orion.c | 10 +- drivers/media/pci/saa7146/mxb.c | 46 ++-- drivers/media/pci/saa7164/saa7164-encoder.c | 39 ++-- drivers/media/pci/saa7164/saa7164-vbi.c | 27 ++- drivers/media/pci/saa7164/saa7164.h | 9 +- drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c | 46 ++-- drivers/media/pci/solo6x10/solo6x10-v4l2.c | 32 ++- drivers/media/pci/ttpci/budget-av.c | 10 +- drivers/media/pci/tw5864/tw5864-video.c | 49 +++-- drivers/media/pci/tw68/tw68-video.c | 43 ++-- drivers/media/pci/tw686x/tw686x-video.c | 53 +++-- drivers/media/pci/zoran/zoran_driver.c | 44 ++-- drivers/media/platform/allegro-dvt/allegro-core.c | 49 +++-- .../media/platform/amlogic/c3/isp/c3-isp-capture.c | 18 +- .../media/platform/amlogic/c3/isp/c3-isp-params.c | 9 +- .../media/platform/amlogic/c3/isp/c3-isp-stats.c | 9 +- drivers/media/platform/amlogic/meson-ge2d/ge2d.c | 36 +++- drivers/media/platform/amphion/vdec.c | 30 ++- drivers/media/platform/amphion/venc.c | 49 +++-- drivers/media/platform/aspeed/aspeed-video.c | 50 +++-- drivers/media/platform/atmel/atmel-isi.c | 36 ++-- drivers/media/platform/broadcom/bcm2835-unicam.c | 33 ++- .../media/platform/chips-media/coda/coda-common.c | 69 +++--- .../platform/chips-media/wave5/wave5-helper.c | 2 +- .../platform/chips-media/wave5/wave5-helper.h | 3 +- .../platform/chips-media/wave5/wave5-vpu-dec.c | 54 +++-- .../platform/chips-media/wave5/wave5-vpu-enc.c | 62 ++++-- .../media/platform/imagination/e5010-jpeg-enc.c | 34 ++- drivers/media/platform/intel/pxa_camera.c | 34 ++- drivers/media/platform/m2m-deinterlace.c | 34 +-- drivers/media/platform/marvell/mcam-core.c | 52 +++-- .../media/platform/mediatek/jpeg/mtk_jpeg_core.c | 44 ++-- drivers/media/platform/mediatek/mdp/mtk_mdp_m2m.c | 34 +-- .../media/platform/mediatek/mdp3/mtk-mdp3-m2m.c | 25 ++- .../mediatek/vcodec/decoder/mtk_vcodec_dec.c | 52 +++-- .../mediatek/vcodec/encoder/mtk_vcodec_enc.c | 50 +++-- .../media/platform/microchip/microchip-isc-base.c | 33 ++- drivers/media/platform/nuvoton/npcm-video.c | 43 ++-- drivers/media/platform/nvidia/tegra-vde/v4l2.c | 38 ++-- drivers/media/platform/nxp/dw100/dw100.c | 35 +-- drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c | 52 +++-- drivers/media/platform/nxp/imx-pxp.c | 34 +-- drivers/media/platform/nxp/imx7-media-csi.c | 21 +- drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c | 15 +- .../media/platform/nxp/imx8-isi/imx8-isi-video.c | 18 +- drivers/media/platform/nxp/mx2_emmaprp.c | 31 ++- drivers/media/platform/qcom/camss/camss-video.c | 27 ++- drivers/media/platform/qcom/iris/iris_vidc.c | 48 +++-- drivers/media/platform/qcom/venus/vdec.c | 29 ++- drivers/media/platform/qcom/venus/venc.c | 38 ++-- .../media/platform/raspberrypi/pisp_be/pisp_be.c | 42 ++-- drivers/media/platform/raspberrypi/rp1-cfe/cfe.c | 40 ++-- .../media/platform/renesas/rcar-vin/rcar-v4l2.c | 21 +- drivers/media/platform/renesas/rcar_drif.c | 30 ++- drivers/media/platform/renesas/rcar_fdp1.c | 18 +- drivers/media/platform/renesas/rcar_jpu.c | 21 +- drivers/media/platform/renesas/renesas-ceu.c | 36 ++-- .../media/platform/renesas/rzg2l-cru/rzg2l-video.c | 18 +- drivers/media/platform/renesas/sh_vou.c | 41 ++-- drivers/media/platform/renesas/vsp1/vsp1_histo.c | 9 +- drivers/media/platform/renesas/vsp1/vsp1_video.c | 18 +- drivers/media/platform/rockchip/rga/rga.c | 24 ++- .../platform/rockchip/rkisp1/rkisp1-capture.c | 18 +- .../media/platform/rockchip/rkisp1/rkisp1-params.c | 15 +- .../media/platform/rockchip/rkisp1/rkisp1-stats.c | 9 +- drivers/media/platform/rockchip/rkvdec/rkvdec.c | 34 +-- .../media/platform/samsung/exynos-gsc/gsc-m2m.c | 44 ++-- .../platform/samsung/exynos4-is/fimc-capture.c | 45 ++-- .../platform/samsung/exynos4-is/fimc-isp-video.c | 32 +-- .../media/platform/samsung/exynos4-is/fimc-lite.c | 36 ++-- .../media/platform/samsung/exynos4-is/fimc-m2m.c | 21 +- .../platform/samsung/s3c-camif/camif-capture.c | 54 +++-- drivers/media/platform/samsung/s5p-g2d/g2d.c | 26 ++- .../media/platform/samsung/s5p-jpeg/jpeg-core.c | 34 +-- .../media/platform/samsung/s5p-mfc/s5p_mfc_dec.c | 48 +++-- .../media/platform/samsung/s5p-mfc/s5p_mfc_enc.c | 51 +++-- drivers/media/platform/st/sti/bdisp/bdisp-v4l2.c | 26 ++- drivers/media/platform/st/sti/delta/delta-v4l2.c | 44 ++-- drivers/media/platform/st/sti/hva/hva-v4l2.c | 46 ++-- drivers/media/platform/st/stm32/dma2d/dma2d.c | 18 +- drivers/media/platform/st/stm32/stm32-dcmi.c | 42 ++-- .../st/stm32/stm32-dcmipp/dcmipp-bytecap.c | 20 +- .../media/platform/sunxi/sun4i-csi/sun4i_v4l2.c | 25 ++- .../platform/sunxi/sun6i-csi/sun6i_csi_capture.c | 24 ++- drivers/media/platform/sunxi/sun8i-di/sun8i-di.c | 31 ++- .../platform/sunxi/sun8i-rotate/sun8i_rotate.c | 34 +-- .../media/platform/synopsys/hdmirx/snps_hdmirx.c | 47 ++-- drivers/media/platform/ti/am437x/am437x-vpfe.c | 52 +++-- drivers/media/platform/ti/cal/cal-video.c | 54 +++-- drivers/media/platform/ti/davinci/vpif_capture.c | 94 ++++---- drivers/media/platform/ti/davinci/vpif_display.c | 58 +++-- .../media/platform/ti/j721e-csi2rx/j721e-csi2rx.c | 20 +- drivers/media/platform/ti/omap/omap_vout.c | 49 +++-- drivers/media/platform/ti/omap3isp/ispvideo.c | 53 +++-- drivers/media/platform/ti/vpe/vpe.c | 25 ++- drivers/media/platform/verisilicon/hantro_v4l2.c | 47 ++-- drivers/media/platform/via/via-camera.c | 42 ++-- drivers/media/platform/xilinx/xilinx-dma.c | 15 +- drivers/media/radio/dsbr100.c | 15 +- drivers/media/radio/radio-cadet.c | 18 +- drivers/media/radio/radio-isa.c | 18 +- drivers/media/radio/radio-keene.c | 15 +- drivers/media/radio/radio-ma901.c | 15 +- drivers/media/radio/radio-miropcm20.c | 15 +- drivers/media/radio/radio-mr800.c | 18 +- drivers/media/radio/radio-raremono.c | 19 +- drivers/media/radio/radio-sf16fmi.c | 15 +- drivers/media/radio/radio-si476x.c | 28 ++- drivers/media/radio/radio-tea5764.c | 15 +- drivers/media/radio/radio-tea5777.c | 21 +- drivers/media/radio/radio-timb.c | 26 ++- drivers/media/radio/si470x/radio-si470x-common.c | 25 ++- drivers/media/radio/si4713/radio-platform-si4713.c | 18 +- drivers/media/radio/si4713/radio-usb-si4713.c | 15 +- drivers/media/radio/tea575x.c | 21 +- drivers/media/test-drivers/vicodec/vicodec-core.c | 54 +++-- drivers/media/test-drivers/vim2m.c | 56 +++-- drivers/media/test-drivers/vimc/vimc-capture.c | 20 +- drivers/media/test-drivers/visl/visl-video.c | 34 +-- drivers/media/test-drivers/vivid/vivid-core.c | 203 ++++++++++-------- drivers/media/test-drivers/vivid/vivid-meta-cap.c | 6 +- drivers/media/test-drivers/vivid/vivid-meta-cap.h | 6 +- drivers/media/test-drivers/vivid/vivid-meta-out.c | 6 +- drivers/media/test-drivers/vivid/vivid-meta-out.h | 9 +- drivers/media/test-drivers/vivid/vivid-radio-rx.c | 16 +- drivers/media/test-drivers/vivid/vivid-radio-rx.h | 16 +- drivers/media/test-drivers/vivid/vivid-radio-tx.c | 6 +- drivers/media/test-drivers/vivid/vivid-radio-tx.h | 6 +- drivers/media/test-drivers/vivid/vivid-sdr-cap.c | 30 ++- drivers/media/test-drivers/vivid/vivid-sdr-cap.h | 30 ++- drivers/media/test-drivers/vivid/vivid-touch-cap.c | 22 +- drivers/media/test-drivers/vivid/vivid-touch-cap.h | 22 +- drivers/media/test-drivers/vivid/vivid-vbi-cap.c | 26 ++- drivers/media/test-drivers/vivid/vivid-vbi-cap.h | 22 +- drivers/media/test-drivers/vivid/vivid-vbi-out.c | 22 +- drivers/media/test-drivers/vivid/vivid-vbi-out.h | 18 +- drivers/media/test-drivers/vivid/vivid-vid-cap.c | 114 ++++++---- drivers/media/test-drivers/vivid/vivid-vid-cap.h | 117 +++++++--- .../media/test-drivers/vivid/vivid-vid-common.c | 24 ++- .../media/test-drivers/vivid/vivid-vid-common.h | 34 +-- drivers/media/test-drivers/vivid/vivid-vid-out.c | 122 ++++++----- drivers/media/test-drivers/vivid/vivid-vid-out.h | 95 +++++--- drivers/media/usb/airspy/airspy.c | 37 ++-- drivers/media/usb/au0828/au0828-video.c | 74 ++++--- drivers/media/usb/cx231xx/cx231xx-417.c | 28 ++- drivers/media/usb/cx231xx/cx231xx-video.c | 79 ++++--- drivers/media/usb/cx231xx/cx231xx.h | 39 ++-- drivers/media/usb/dvb-usb/cxusb-analog.c | 48 +++-- drivers/media/usb/em28xx/em28xx-video.c | 87 +++++--- drivers/media/usb/go7007/go7007-v4l2.c | 75 ++++--- drivers/media/usb/gspca/gspca.c | 51 +++-- drivers/media/usb/hackrf/hackrf.c | 39 ++-- drivers/media/usb/hdpvr/hdpvr-video.c | 60 ++++-- drivers/media/usb/msi2500/msi2500.c | 31 ++- drivers/media/usb/pvrusb2/pvrusb2-v4l2.c | 98 ++++++--- drivers/media/usb/pwc/pwc-v4l.c | 44 ++-- drivers/media/usb/s2255/s2255drv.c | 55 +++-- drivers/media/usb/stk1160/stk1160-v4l.c | 40 ++-- drivers/media/usb/usbtv/usbtv-video.c | 24 ++- drivers/media/usb/uvc/uvc_metadata.c | 17 +- drivers/media/usb/uvc/uvc_v4l2.c | 59 +++-- drivers/media/v4l2-core/v4l2-ctrls-api.c | 2 +- drivers/media/v4l2-core/v4l2-dev.c | 4 +- drivers/media/v4l2-core/v4l2-mem2mem.c | 56 +++-- drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 72 ++++--- drivers/staging/media/av7110/av7110_v4l.c | 60 ++++-- .../media/deprecated/atmel/atmel-isc-base.c | 33 ++- drivers/staging/media/imx/imx-media-capture.c | 53 +++-- drivers/staging/media/imx/imx-media-csc-scaler.c | 23 +- drivers/staging/media/ipu3/ipu3-v4l2.c | 29 ++- drivers/staging/media/ipu7/ipu7-isys-video.c | 30 ++- drivers/staging/media/meson/vdec/vdec.c | 26 ++- drivers/staging/media/starfive/camss/stf-video.c | 18 +- drivers/staging/media/sunxi/cedrus/cedrus_video.c | 29 ++- .../media/sunxi/sun6i-isp/sun6i_isp_capture.c | 24 ++- .../media/sunxi/sun6i-isp/sun6i_isp_params.c | 9 +- drivers/staging/media/tegra-video/vi.c | 68 ++++-- drivers/staging/most/video/video.c | 39 ++-- .../vc04_services/bcm2835-camera/bcm2835-camera.c | 58 +++-- drivers/usb/gadget/function/uvc_v4l2.c | 50 +++-- include/media/v4l2-ctrls.h | 5 +- include/media/v4l2-dev.h | 2 +- include/media/v4l2-ioctl.h | 238 +++++++++++------= ---- include/media/v4l2-mem2mem.h | 48 +++-- include/media/videobuf2-v4l2.h | 33 +-- 223 files changed, 5392 insertions(+), 2955 deletions(-) diff --git a/drivers/input/rmi4/rmi_f54.c b/drivers/input/rmi4/rmi_f54.c index ac4041a69fcd3acf766ac8189ea0ecccb9b7ac93..b66b80d76833bfe56f04f70ce90= 8307692632f48 100644 --- a/drivers/input/rmi4/rmi_f54.c +++ b/drivers/input/rmi4/rmi_f54.c @@ -383,7 +383,8 @@ static const struct vb2_queue rmi_f54_queue =3D { .timestamp_flags =3D V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC, }; =20 -static int rmi_f54_vidioc_querycap(struct file *file, void *priv, +static int rmi_f54_vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct f54_data *f54 =3D video_drvdata(file); @@ -396,7 +397,8 @@ static int rmi_f54_vidioc_querycap(struct file *file, v= oid *priv, return 0; } =20 -static int rmi_f54_vidioc_enum_input(struct file *file, void *priv, +static int rmi_f54_vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { struct f54_data *f54 =3D video_drvdata(file); @@ -442,12 +444,15 @@ static int rmi_f54_set_input(struct f54_data *f54, un= signed int i) return 0; } =20 -static int rmi_f54_vidioc_s_input(struct file *file, void *priv, unsigned = int i) +static int rmi_f54_vidioc_s_input(struct file *file, + struct video_device_state *state, + unsigned int i) { return rmi_f54_set_input(video_drvdata(file), i); } =20 -static int rmi_f54_vidioc_g_input(struct file *file, void *priv, +static int rmi_f54_vidioc_g_input(struct file *file, + struct video_device_state *state, unsigned int *i) { struct f54_data *f54 =3D video_drvdata(file); @@ -457,7 +462,8 @@ static int rmi_f54_vidioc_g_input(struct file *file, vo= id *priv, return 0; } =20 -static int rmi_f54_vidioc_fmt(struct file *file, void *priv, +static int rmi_f54_vidioc_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct f54_data *f54 =3D video_drvdata(file); @@ -467,7 +473,8 @@ static int rmi_f54_vidioc_fmt(struct file *file, void *= priv, return 0; } =20 -static int rmi_f54_vidioc_enum_fmt(struct file *file, void *priv, +static int rmi_f54_vidioc_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *fmt) { struct f54_data *f54 =3D video_drvdata(file); @@ -483,7 +490,8 @@ static int rmi_f54_vidioc_enum_fmt(struct file *file, v= oid *priv, return 0; } =20 -static int rmi_f54_vidioc_g_parm(struct file *file, void *fh, +static int rmi_f54_vidioc_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *a) { if (a->type !=3D V4L2_BUF_TYPE_VIDEO_CAPTURE) diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touch= screen/atmel_mxt_ts.c index 322d5a3d40a0933f1e1c290e906258a874bcf4b2..255e2e7713e3371b56736ded22b= 66d7df9cf8f49 100644 --- a/drivers/input/touchscreen/atmel_mxt_ts.c +++ b/drivers/input/touchscreen/atmel_mxt_ts.c @@ -2547,7 +2547,8 @@ static const struct vb2_queue mxt_queue =3D { .min_queued_buffers =3D 1, }; =20 -static int mxt_vidioc_querycap(struct file *file, void *priv, +static int mxt_vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct mxt_data *data =3D video_drvdata(file); @@ -2559,7 +2560,8 @@ static int mxt_vidioc_querycap(struct file *file, voi= d *priv, return 0; } =20 -static int mxt_vidioc_enum_input(struct file *file, void *priv, +static int mxt_vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { if (i->index >=3D MXT_V4L_INPUT_MAX) @@ -2604,12 +2606,16 @@ static int mxt_set_input(struct mxt_data *data, uns= igned int i) return 0; } =20 -static int mxt_vidioc_s_input(struct file *file, void *priv, unsigned int = i) +static int mxt_vidioc_s_input(struct file *file, + struct video_device_state *state, + unsigned int i) { return mxt_set_input(video_drvdata(file), i); } =20 -static int mxt_vidioc_g_input(struct file *file, void *priv, unsigned int = *i) +static int mxt_vidioc_g_input(struct file *file, + struct video_device_state *state, + unsigned int *i) { struct mxt_data *data =3D video_drvdata(file); =20 @@ -2618,7 +2624,8 @@ static int mxt_vidioc_g_input(struct file *file, void= *priv, unsigned int *i) return 0; } =20 -static int mxt_vidioc_fmt(struct file *file, void *priv, struct v4l2_forma= t *f) +static int mxt_vidioc_fmt(struct file *file, struct video_device_state *st= ate, + struct v4l2_format *f) { struct mxt_data *data =3D video_drvdata(file); =20 @@ -2628,7 +2635,8 @@ static int mxt_vidioc_fmt(struct file *file, void *pr= iv, struct v4l2_format *f) return 0; } =20 -static int mxt_vidioc_enum_fmt(struct file *file, void *priv, +static int mxt_vidioc_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *fmt) { if (fmt->type !=3D V4L2_BUF_TYPE_VIDEO_CAPTURE) @@ -2650,7 +2658,8 @@ static int mxt_vidioc_enum_fmt(struct file *file, voi= d *priv, return 0; } =20 -static int mxt_vidioc_g_parm(struct file *file, void *fh, +static int mxt_vidioc_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *a) { if (a->type !=3D V4L2_BUF_TYPE_VIDEO_CAPTURE) diff --git a/drivers/input/touchscreen/sur40.c b/drivers/input/touchscreen/= sur40.c index 7b3b10cbfcfc44eabd56a4a39551c44eed730de8..6bc51ad2cd0a47029aade524560= 03f3be90ec932 100644 --- a/drivers/input/touchscreen/sur40.c +++ b/drivers/input/touchscreen/sur40.c @@ -935,7 +935,8 @@ static void sur40_stop_streaming(struct vb2_queue *vq) } =20 /* V4L ioctl */ -static int sur40_vidioc_querycap(struct file *file, void *priv, +static int sur40_vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct sur40_state *sur40 =3D video_drvdata(file); @@ -946,7 +947,8 @@ static int sur40_vidioc_querycap(struct file *file, voi= d *priv, return 0; } =20 -static int sur40_vidioc_enum_input(struct file *file, void *priv, +static int sur40_vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { if (i->index !=3D 0) @@ -958,18 +960,23 @@ static int sur40_vidioc_enum_input(struct file *file,= void *priv, return 0; } =20 -static int sur40_vidioc_s_input(struct file *file, void *priv, unsigned in= t i) +static int sur40_vidioc_s_input(struct file *file, + struct video_device_state *state, + unsigned int i) { return (i =3D=3D 0) ? 0 : -EINVAL; } =20 -static int sur40_vidioc_g_input(struct file *file, void *priv, unsigned in= t *i) +static int sur40_vidioc_g_input(struct file *file, + struct video_device_state *state, + unsigned int *i) { *i =3D 0; return 0; } =20 -static int sur40_vidioc_try_fmt(struct file *file, void *priv, +static int sur40_vidioc_try_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { switch (f->fmt.pix.pixelformat) { @@ -985,7 +992,8 @@ static int sur40_vidioc_try_fmt(struct file *file, void= *priv, return 0; } =20 -static int sur40_vidioc_s_fmt(struct file *file, void *priv, +static int sur40_vidioc_s_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct sur40_state *sur40 =3D video_drvdata(file); @@ -1004,7 +1012,8 @@ static int sur40_vidioc_s_fmt(struct file *file, void= *priv, return 0; } =20 -static int sur40_vidioc_g_fmt(struct file *file, void *priv, +static int sur40_vidioc_g_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct sur40_state *sur40 =3D video_drvdata(file); @@ -1038,7 +1047,8 @@ static int sur40_s_ctrl(struct v4l2_ctrl *ctrl) return 0; } =20 -static int sur40_ioctl_parm(struct file *file, void *priv, +static int sur40_ioctl_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *p) { if (p->type !=3D V4L2_BUF_TYPE_VIDEO_CAPTURE) @@ -1051,7 +1061,8 @@ static int sur40_ioctl_parm(struct file *file, void *= priv, return 0; } =20 -static int sur40_vidioc_enum_fmt(struct file *file, void *priv, +static int sur40_vidioc_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index >=3D ARRAY_SIZE(sur40_pix_format)) @@ -1062,7 +1073,8 @@ static int sur40_vidioc_enum_fmt(struct file *file, v= oid *priv, return 0; } =20 -static int sur40_vidioc_enum_framesizes(struct file *file, void *priv, +static int sur40_vidioc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *f) { struct sur40_state *sur40 =3D video_drvdata(file); @@ -1077,7 +1089,8 @@ static int sur40_vidioc_enum_framesizes(struct file *= file, void *priv, return 0; } =20 -static int sur40_vidioc_enum_frameintervals(struct file *file, void *priv, +static int sur40_vidioc_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *f) { struct sur40_state *sur40 =3D video_drvdata(file); diff --git a/drivers/media/cec/usb/extron-da-hd-4k-plus/extron-da-hd-4k-plu= s.c b/drivers/media/cec/usb/extron-da-hd-4k-plus/extron-da-hd-4k-plus.c index e2eff17952ab237b799f9892159254146319f4c7..ebefd5e5c747aa9646d7a45414a= 661d076cf1e4a 100644 --- a/drivers/media/cec/usb/extron-da-hd-4k-plus/extron-da-hd-4k-plus.c +++ b/drivers/media/cec/usb/extron-da-hd-4k-plus/extron-da-hd-4k-plus.c @@ -1195,7 +1195,8 @@ static const struct cec_adap_ops extron_cec_adap_ops = =3D { .received =3D extron_received, }; =20 -static int extron_querycap(struct file *file, void *priv, +static int extron_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct extron_port *port =3D video_drvdata(file); @@ -1206,7 +1207,9 @@ static int extron_querycap(struct file *file, void *p= riv, return 0; } =20 -static int extron_enum_input(struct file *file, void *priv, struct v4l2_in= put *inp) +static int extron_enum_input(struct file *file, + struct video_device_state *state, + struct v4l2_input *inp) { struct extron_port *port =3D video_drvdata(file); =20 @@ -1219,18 +1222,22 @@ static int extron_enum_input(struct file *file, voi= d *priv, struct v4l2_input *i return 0; } =20 -static int extron_g_input(struct file *file, void *priv, unsigned int *i) +static int extron_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { *i =3D 0; return 0; } =20 -static int extron_s_input(struct file *file, void *priv, unsigned int i) +static int extron_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int i) { return i ? -EINVAL : 0; } =20 -static int extron_enum_output(struct file *file, void *priv, struct v4l2_o= utput *out) +static int extron_enum_output(struct file *file, + struct video_device_state *state, + struct v4l2_output *out) { struct extron_port *port =3D video_drvdata(file); =20 @@ -1241,18 +1248,21 @@ static int extron_enum_output(struct file *file, vo= id *priv, struct v4l2_output return 0; } =20 -static int extron_g_output(struct file *file, void *priv, unsigned int *o) +static int extron_g_output(struct file *file, + struct video_device_state *state, unsigned int *o) { *o =3D 0; return 0; } =20 -static int extron_s_output(struct file *file, void *priv, unsigned int o) +static int extron_s_output(struct file *file, + struct video_device_state *state, unsigned int o) { return o ? -EINVAL : 0; } =20 -static int extron_g_edid(struct file *file, void *priv, +static int extron_g_edid(struct file *file, + struct video_device_state *state, struct v4l2_edid *edid) { struct extron_port *port =3D video_drvdata(file); @@ -1280,7 +1290,8 @@ static int extron_g_edid(struct file *file, void *pri= v, return 0; } =20 -static int extron_s_edid(struct file *file, void *priv, struct v4l2_edid *= edid) +static int extron_s_edid(struct file *file, struct video_device_state *sta= te, + struct v4l2_edid *edid) { struct extron_port *port =3D video_drvdata(file); =20 @@ -1305,12 +1316,13 @@ static int extron_s_edid(struct file *file, void *p= riv, struct v4l2_edid *edid) return extron_write_edid(port, edid->edid, edid->blocks); } =20 -static int extron_log_status(struct file *file, void *priv) +static int extron_log_status(struct file *file, + struct video_device_state *state) { struct extron_port *port =3D video_drvdata(file); =20 extron_adap_status(port->adap, NULL); - return v4l2_ctrl_log_status(file, priv); + return v4l2_ctrl_log_status(file, state); } =20 static const struct v4l2_ioctl_ops extron_ioctl_ops =3D { diff --git a/drivers/media/common/saa7146/saa7146_video.c b/drivers/media/c= ommon/saa7146/saa7146_video.c index 733e18001d0d418d32c517b80dee57130b379b07..768be0c6bfdeee70939fbe872a8= 5e99fafe4cd25 100644 --- a/drivers/media/common/saa7146/saa7146_video.c +++ b/drivers/media/common/saa7146/saa7146_video.c @@ -251,7 +251,9 @@ static void video_end(struct saa7146_dev *dev) saa7146_res_free(dev, resource); } =20 -static int vidioc_querycap(struct file *file, void *fh, struct v4l2_capabi= lity *cap) +static int vidioc_querycap(struct file *file, + struct video_device_state *state, + struct v4l2_capability *cap) { struct saa7146_dev *dev =3D video_drvdata(file); =20 @@ -264,7 +266,9 @@ static int vidioc_querycap(struct file *file, void *fh,= struct v4l2_capability * return 0; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *fh, struct v4l= 2_fmtdesc *f) +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *f) { if (f->index >=3D ARRAY_SIZE(formats)) return -EINVAL; @@ -323,7 +327,8 @@ int saa7146_s_ctrl(struct v4l2_ctrl *ctrl) return 0; } =20 -static int vidioc_g_parm(struct file *file, void *fh, +static int vidioc_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct saa7146_dev *dev =3D video_drvdata(file); @@ -337,7 +342,9 @@ static int vidioc_g_parm(struct file *file, void *fh, return 0; } =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *fh, struct v4l2_f= ormat *f) +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct saa7146_dev *dev =3D video_drvdata(file); struct saa7146_vv *vv =3D dev->vv_data; @@ -346,7 +353,9 @@ static int vidioc_g_fmt_vid_cap(struct file *file, void= *fh, struct v4l2_format return 0; } =20 -static int vidioc_g_fmt_vbi_cap(struct file *file, void *fh, struct v4l2_f= ormat *f) +static int vidioc_g_fmt_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct saa7146_dev *dev =3D video_drvdata(file); struct saa7146_vv *vv =3D dev->vv_data; @@ -355,7 +364,9 @@ static int vidioc_g_fmt_vbi_cap(struct file *file, void= *fh, struct v4l2_format return 0; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *fh, struct v4l2= _format *f) +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct saa7146_dev *dev =3D video_drvdata(file); struct saa7146_vv *vv =3D dev->vv_data; @@ -364,7 +375,7 @@ static int vidioc_try_fmt_vid_cap(struct file *file, vo= id *fh, struct v4l2_forma int maxw, maxh; int calc_bpl; =20 - DEB_EE("V4L2_BUF_TYPE_VIDEO_CAPTURE: dev:%p, fh:%p\n", dev, fh); + DEB_EE("V4L2_BUF_TYPE_VIDEO_CAPTURE: dev:%p, fh:%p\n", dev, state); =20 fmt =3D saa7146_format_by_fourcc(dev, f->fmt.pix.pixelformat); if (NULL =3D=3D fmt) @@ -417,7 +428,9 @@ static int vidioc_try_fmt_vid_cap(struct file *file, vo= id *fh, struct v4l2_forma return 0; } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *fh, struct v4l2_f= ormat *f) +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct saa7146_dev *dev =3D video_drvdata(file); struct saa7146_vv *vv =3D dev->vv_data; @@ -428,7 +441,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void= *fh, struct v4l2_format DEB_EE("streaming capture is active\n"); return -EBUSY; } - err =3D vidioc_try_fmt_vid_cap(file, fh, f); + err =3D vidioc_try_fmt_vid_cap(file, state, f); if (0 !=3D err) return err; switch (f->fmt.pix.field) { @@ -445,7 +458,8 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void= *fh, struct v4l2_format return 0; } =20 -static int vidioc_g_std(struct file *file, void *fh, v4l2_std_id *norm) +static int vidioc_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *norm) { struct saa7146_dev *dev =3D video_drvdata(file); struct saa7146_vv *vv =3D dev->vv_data; @@ -454,7 +468,8 @@ static int vidioc_g_std(struct file *file, void *fh, v4= l2_std_id *norm) return 0; } =20 -static int vidioc_s_std(struct file *file, void *fh, v4l2_std_id id) +static int vidioc_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id id) { struct saa7146_dev *dev =3D video_drvdata(file); struct saa7146_vv *vv =3D dev->vv_data; diff --git a/drivers/media/common/videobuf2/videobuf2-v4l2.c b/drivers/medi= a/common/videobuf2/videobuf2-v4l2.c index d911021c1bb0527777d2da18bef8f0562e32b460..01f0ee4f81d1c478e3ad80f30c9= 7ceccb9e542d8 100644 --- a/drivers/media/common/videobuf2/videobuf2-v4l2.c +++ b/drivers/media/common/videobuf2/videobuf2-v4l2.c @@ -996,7 +996,8 @@ EXPORT_SYMBOL_GPL(vb2_poll); =20 /* vb2 ioctl helpers */ =20 -int vb2_ioctl_remove_bufs(struct file *file, void *priv, +int vb2_ioctl_remove_bufs(struct file *file, + struct video_device_state *state, struct v4l2_remove_buffers *d) { struct video_device *vdev =3D video_devdata(file); @@ -1014,7 +1015,8 @@ int vb2_ioctl_remove_bufs(struct file *file, void *pr= iv, } EXPORT_SYMBOL_GPL(vb2_ioctl_remove_bufs); =20 -int vb2_ioctl_reqbufs(struct file *file, void *priv, +int vb2_ioctl_reqbufs(struct file *file, + struct video_device_state *state, struct v4l2_requestbuffers *p) { struct video_device *vdev =3D video_devdata(file); @@ -1037,7 +1039,8 @@ int vb2_ioctl_reqbufs(struct file *file, void *priv, } EXPORT_SYMBOL_GPL(vb2_ioctl_reqbufs); =20 -int vb2_ioctl_create_bufs(struct file *file, void *priv, +int vb2_ioctl_create_bufs(struct file *file, + struct video_device_state *state, struct v4l2_create_buffers *p) { struct video_device *vdev =3D video_devdata(file); @@ -1064,7 +1067,8 @@ int vb2_ioctl_create_bufs(struct file *file, void *pr= iv, } EXPORT_SYMBOL_GPL(vb2_ioctl_create_bufs); =20 -int vb2_ioctl_prepare_buf(struct file *file, void *priv, +int vb2_ioctl_prepare_buf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *p) { struct video_device *vdev =3D video_devdata(file); @@ -1075,7 +1079,8 @@ int vb2_ioctl_prepare_buf(struct file *file, void *pr= iv, } EXPORT_SYMBOL_GPL(vb2_ioctl_prepare_buf); =20 -int vb2_ioctl_querybuf(struct file *file, void *priv, struct v4l2_buffer *= p) +int vb2_ioctl_querybuf(struct file *file, struct video_device_state *state, + struct v4l2_buffer *p) { struct video_device *vdev =3D video_devdata(file); =20 @@ -1084,7 +1089,8 @@ int vb2_ioctl_querybuf(struct file *file, void *priv,= struct v4l2_buffer *p) } EXPORT_SYMBOL_GPL(vb2_ioctl_querybuf); =20 -int vb2_ioctl_qbuf(struct file *file, void *priv, struct v4l2_buffer *p) +int vb2_ioctl_qbuf(struct file *file, struct video_device_state *state, + struct v4l2_buffer *p) { struct video_device *vdev =3D video_devdata(file); =20 @@ -1094,7 +1100,8 @@ int vb2_ioctl_qbuf(struct file *file, void *priv, str= uct v4l2_buffer *p) } EXPORT_SYMBOL_GPL(vb2_ioctl_qbuf); =20 -int vb2_ioctl_dqbuf(struct file *file, void *priv, struct v4l2_buffer *p) +int vb2_ioctl_dqbuf(struct file *file, struct video_device_state *state, + struct v4l2_buffer *p) { struct video_device *vdev =3D video_devdata(file); =20 @@ -1104,7 +1111,8 @@ int vb2_ioctl_dqbuf(struct file *file, void *priv, st= ruct v4l2_buffer *p) } EXPORT_SYMBOL_GPL(vb2_ioctl_dqbuf); =20 -int vb2_ioctl_streamon(struct file *file, void *priv, enum v4l2_buf_type i) +int vb2_ioctl_streamon(struct file *file, struct video_device_state *state, + enum v4l2_buf_type i) { struct video_device *vdev =3D video_devdata(file); =20 @@ -1114,7 +1122,8 @@ int vb2_ioctl_streamon(struct file *file, void *priv,= enum v4l2_buf_type i) } EXPORT_SYMBOL_GPL(vb2_ioctl_streamon); =20 -int vb2_ioctl_streamoff(struct file *file, void *priv, enum v4l2_buf_type = i) +int vb2_ioctl_streamoff(struct file *file, struct video_device_state *stat= e, + enum v4l2_buf_type i) { struct video_device *vdev =3D video_devdata(file); =20 @@ -1124,7 +1133,8 @@ int vb2_ioctl_streamoff(struct file *file, void *priv= , enum v4l2_buf_type i) } EXPORT_SYMBOL_GPL(vb2_ioctl_streamoff); =20 -int vb2_ioctl_expbuf(struct file *file, void *priv, struct v4l2_exportbuff= er *p) +int vb2_ioctl_expbuf(struct file *file, struct video_device_state *state, + struct v4l2_exportbuffer *p) { struct video_device *vdev =3D video_devdata(file); =20 diff --git a/drivers/media/dvb-frontends/rtl2832_sdr.c b/drivers/media/dvb-= frontends/rtl2832_sdr.c index 0357624968f1b542772d8cc751211c0bf28e19ab..986637c4bec7da0dc8a13ded882= 9e11b0f8a4415 100644 --- a/drivers/media/dvb-frontends/rtl2832_sdr.c +++ b/drivers/media/dvb-frontends/rtl2832_sdr.c @@ -418,8 +418,8 @@ static void rtl2832_sdr_cleanup_queued_bufs(struct rtl2= 832_sdr_dev *dev) spin_unlock_irqrestore(&dev->queued_bufs_lock, flags); } =20 -static int rtl2832_sdr_querycap(struct file *file, void *fh, - struct v4l2_capability *cap) +static int rtl2832_sdr_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct rtl2832_sdr_dev *dev =3D video_drvdata(file); struct platform_device *pdev =3D dev->pdev; @@ -949,8 +949,8 @@ static const struct vb2_ops rtl2832_sdr_vb2_ops =3D { .stop_streaming =3D rtl2832_sdr_stop_streaming, }; =20 -static int rtl2832_sdr_g_tuner(struct file *file, void *priv, - struct v4l2_tuner *v) +static int rtl2832_sdr_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *v) { struct rtl2832_sdr_dev *dev =3D video_drvdata(file); struct platform_device *pdev =3D dev->pdev; @@ -981,8 +981,8 @@ static int rtl2832_sdr_g_tuner(struct file *file, void = *priv, return ret; } =20 -static int rtl2832_sdr_s_tuner(struct file *file, void *priv, - const struct v4l2_tuner *v) +static int rtl2832_sdr_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *v) { struct rtl2832_sdr_dev *dev =3D video_drvdata(file); struct platform_device *pdev =3D dev->pdev; @@ -1003,7 +1003,8 @@ static int rtl2832_sdr_s_tuner(struct file *file, voi= d *priv, return ret; } =20 -static int rtl2832_sdr_enum_freq_bands(struct file *file, void *priv, +static int rtl2832_sdr_enum_freq_bands(struct file *file, + struct video_device_state *state, struct v4l2_frequency_band *band) { struct rtl2832_sdr_dev *dev =3D video_drvdata(file); @@ -1034,8 +1035,8 @@ static int rtl2832_sdr_enum_freq_bands(struct file *f= ile, void *priv, return ret; } =20 -static int rtl2832_sdr_g_frequency(struct file *file, void *priv, - struct v4l2_frequency *f) +static int rtl2832_sdr_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct rtl2832_sdr_dev *dev =3D video_drvdata(file); struct platform_device *pdev =3D dev->pdev; @@ -1061,7 +1062,8 @@ static int rtl2832_sdr_g_frequency(struct file *file,= void *priv, return ret; } =20 -static int rtl2832_sdr_s_frequency(struct file *file, void *priv, +static int rtl2832_sdr_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct rtl2832_sdr_dev *dev =3D video_drvdata(file); @@ -1105,8 +1107,8 @@ static int rtl2832_sdr_s_frequency(struct file *file,= void *priv, return ret; } =20 -static int rtl2832_sdr_enum_fmt_sdr_cap(struct file *file, void *priv, - struct v4l2_fmtdesc *f) +static int rtl2832_sdr_enum_fmt_sdr_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct rtl2832_sdr_dev *dev =3D video_drvdata(file); struct platform_device *pdev =3D dev->pdev; @@ -1121,8 +1123,8 @@ static int rtl2832_sdr_enum_fmt_sdr_cap(struct file *= file, void *priv, return 0; } =20 -static int rtl2832_sdr_g_fmt_sdr_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int rtl2832_sdr_g_fmt_sdr_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rtl2832_sdr_dev *dev =3D video_drvdata(file); struct platform_device *pdev =3D dev->pdev; @@ -1135,8 +1137,8 @@ static int rtl2832_sdr_g_fmt_sdr_cap(struct file *fil= e, void *priv, return 0; } =20 -static int rtl2832_sdr_s_fmt_sdr_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int rtl2832_sdr_s_fmt_sdr_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rtl2832_sdr_dev *dev =3D video_drvdata(file); struct platform_device *pdev =3D dev->pdev; @@ -1166,8 +1168,8 @@ static int rtl2832_sdr_s_fmt_sdr_cap(struct file *fil= e, void *priv, return 0; } =20 -static int rtl2832_sdr_try_fmt_sdr_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int rtl2832_sdr_try_fmt_sdr_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rtl2832_sdr_dev *dev =3D video_drvdata(file); struct platform_device *pdev =3D dev->pdev; diff --git a/drivers/media/i2c/video-i2c.c b/drivers/media/i2c/video-i2c.c index 0dd991d70d538050731c0106533d6f0618853b1f..96c1b9e7db719602cada653257d= 77ee6e103d319 100644 --- a/drivers/media/i2c/video-i2c.c +++ b/drivers/media/i2c/video-i2c.c @@ -558,7 +558,8 @@ static const struct vb2_ops video_i2c_video_qops =3D { .stop_streaming =3D stop_streaming, }; =20 -static int video_i2c_querycap(struct file *file, void *priv, +static int video_i2c_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *vcap) { struct video_i2c_data *data =3D video_drvdata(file); @@ -573,19 +574,24 @@ static int video_i2c_querycap(struct file *file, void= *priv, return 0; } =20 -static int video_i2c_g_input(struct file *file, void *fh, unsigned int *in= p) +static int video_i2c_g_input(struct file *file, + struct video_device_state *state, + unsigned int *inp) { *inp =3D 0; =20 return 0; } =20 -static int video_i2c_s_input(struct file *file, void *fh, unsigned int inp) +static int video_i2c_s_input(struct file *file, + struct video_device_state *state, + unsigned int inp) { return (inp > 0) ? -EINVAL : 0; } =20 -static int video_i2c_enum_input(struct file *file, void *fh, +static int video_i2c_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *vin) { if (vin->index > 0) @@ -598,7 +604,8 @@ static int video_i2c_enum_input(struct file *file, void= *fh, return 0; } =20 -static int video_i2c_enum_fmt_vid_cap(struct file *file, void *fh, +static int video_i2c_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *fmt) { struct video_i2c_data *data =3D video_drvdata(file); @@ -613,7 +620,8 @@ static int video_i2c_enum_fmt_vid_cap(struct file *file= , void *fh, return 0; } =20 -static int video_i2c_enum_framesizes(struct file *file, void *fh, +static int video_i2c_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { const struct video_i2c_data *data =3D video_drvdata(file); @@ -633,7 +641,8 @@ static int video_i2c_enum_framesizes(struct file *file,= void *fh, return 0; } =20 -static int video_i2c_enum_frameintervals(struct file *file, void *priv, +static int video_i2c_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *fe) { const struct video_i2c_data *data =3D video_drvdata(file); @@ -651,7 +660,8 @@ static int video_i2c_enum_frameintervals(struct file *f= ile, void *priv, return 0; } =20 -static int video_i2c_try_fmt_vid_cap(struct file *file, void *fh, +static int video_i2c_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { const struct video_i2c_data *data =3D video_drvdata(file); @@ -670,7 +680,8 @@ static int video_i2c_try_fmt_vid_cap(struct file *file,= void *fh, return 0; } =20 -static int video_i2c_s_fmt_vid_cap(struct file *file, void *fh, +static int video_i2c_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct video_i2c_data *data =3D video_drvdata(file); @@ -678,10 +689,11 @@ static int video_i2c_s_fmt_vid_cap(struct file *file,= void *fh, if (vb2_is_busy(&data->vb_vidq)) return -EBUSY; =20 - return video_i2c_try_fmt_vid_cap(file, fh, fmt); + return video_i2c_try_fmt_vid_cap(file, state, fmt); } =20 -static int video_i2c_g_parm(struct file *filp, void *priv, +static int video_i2c_g_parm(struct file *filp, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct video_i2c_data *data =3D video_drvdata(filp); @@ -696,7 +708,8 @@ static int video_i2c_g_parm(struct file *filp, void *pr= iv, return 0; } =20 -static int video_i2c_s_parm(struct file *filp, void *priv, +static int video_i2c_s_parm(struct file *filp, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct video_i2c_data *data =3D video_drvdata(filp); @@ -709,7 +722,7 @@ static int video_i2c_s_parm(struct file *filp, void *pr= iv, } data->frame_interval =3D data->chip->frame_intervals[i]; =20 - return video_i2c_g_parm(filp, priv, parm); + return video_i2c_g_parm(filp, state, parm); } =20 static const struct v4l2_ioctl_ops video_i2c_ioctl_ops =3D { diff --git a/drivers/media/pci/bt8xx/bttv-driver.c b/drivers/media/pci/bt8x= x/bttv-driver.c index 17e4529e537ab654bd6814dceda005ad652c8533..e9b8e7a53fdbf69262f574b52fd= afe79bf9ec8f2 100644 --- a/drivers/media/pci/bt8xx/bttv-driver.c +++ b/drivers/media/pci/bt8xx/bttv-driver.c @@ -1597,7 +1597,8 @@ static void radio_enable(struct bttv *btv) } } =20 -static int bttv_s_std(struct file *file, void *priv, v4l2_std_id id) +static int bttv_s_std(struct file *file, struct video_device_state *state, + v4l2_std_id id) { struct bttv *btv =3D video_drvdata(file); unsigned int i; @@ -1612,7 +1613,8 @@ static int bttv_s_std(struct file *file, void *priv, = v4l2_std_id id) return 0; } =20 -static int bttv_g_std(struct file *file, void *priv, v4l2_std_id *id) +static int bttv_g_std(struct file *file, struct video_device_state *state, + v4l2_std_id *id) { struct bttv *btv =3D video_drvdata(file); =20 @@ -1620,7 +1622,8 @@ static int bttv_g_std(struct file *file, void *priv, = v4l2_std_id *id) return 0; } =20 -static int bttv_querystd(struct file *file, void *priv, v4l2_std_id *id) +static int bttv_querystd(struct file *file, struct video_device_state *sta= te, + v4l2_std_id *id) { struct bttv *btv =3D video_drvdata(file); =20 @@ -1631,7 +1634,8 @@ static int bttv_querystd(struct file *file, void *pri= v, v4l2_std_id *id) return 0; } =20 -static int bttv_enum_input(struct file *file, void *priv, +static int bttv_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { struct bttv *btv =3D video_drvdata(file); @@ -1664,7 +1668,8 @@ static int bttv_enum_input(struct file *file, void *p= riv, return 0; } =20 -static int bttv_g_input(struct file *file, void *priv, unsigned int *i) +static int bttv_g_input(struct file *file, struct video_device_state *stat= e, + unsigned int *i) { struct bttv *btv =3D video_drvdata(file); =20 @@ -1673,7 +1678,8 @@ static int bttv_g_input(struct file *file, void *priv= , unsigned int *i) return 0; } =20 -static int bttv_s_input(struct file *file, void *priv, unsigned int i) +static int bttv_s_input(struct file *file, struct video_device_state *stat= e, + unsigned int i) { struct bttv *btv =3D video_drvdata(file); =20 @@ -1684,7 +1690,8 @@ static int bttv_s_input(struct file *file, void *priv= , unsigned int i) return 0; } =20 -static int bttv_s_tuner(struct file *file, void *priv, +static int bttv_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *t) { struct bttv *btv =3D video_drvdata(file); @@ -1702,7 +1709,8 @@ static int bttv_s_tuner(struct file *file, void *priv, return 0; } =20 -static int bttv_g_frequency(struct file *file, void *priv, +static int bttv_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct bttv *btv =3D video_drvdata(file); @@ -1738,7 +1746,8 @@ static void bttv_set_frequency(struct bttv *btv, cons= t struct v4l2_frequency *f) } } =20 -static int bttv_s_frequency(struct file *file, void *priv, +static int bttv_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct bttv *btv =3D video_drvdata(file); @@ -1750,7 +1759,8 @@ static int bttv_s_frequency(struct file *file, void *= priv, return 0; } =20 -static int bttv_log_status(struct file *file, void *priv) +static int bttv_log_status(struct file *file, + struct video_device_state *state) { struct video_device *vdev =3D video_devdata(file); struct bttv *btv =3D video_drvdata(file); @@ -1761,7 +1771,8 @@ static int bttv_log_status(struct file *file, void *p= riv) } =20 #ifdef CONFIG_VIDEO_ADV_DEBUG -static int bttv_g_register(struct file *file, void *priv, +static int bttv_g_register(struct file *file, + struct video_device_state *state, struct v4l2_dbg_register *reg) { struct bttv *btv =3D video_drvdata(file); @@ -1774,7 +1785,8 @@ static int bttv_g_register(struct file *file, void *p= riv, return 0; } =20 -static int bttv_s_register(struct file *file, void *priv, +static int bttv_s_register(struct file *file, + struct video_device_state *state, const struct v4l2_dbg_register *reg) { struct bttv *btv =3D video_drvdata(file); @@ -1981,7 +1993,8 @@ pix_format_set_size (struct v4l2_pix_format * = f, } } =20 -static int bttv_g_fmt_vid_cap(struct file *file, void *priv, +static int bttv_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct bttv *btv =3D video_drvdata(file); @@ -2007,7 +2020,8 @@ static void bttv_get_width_mask_vid_cap(const struct = bttv_format *fmt, } } =20 -static int bttv_try_fmt_vid_cap(struct file *file, void *priv, +static int bttv_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { const struct bttv_format *fmt; @@ -2062,7 +2076,8 @@ static int bttv_try_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int bttv_s_fmt_vid_cap(struct file *file, void *priv, +static int bttv_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int retval; @@ -2076,7 +2091,7 @@ static int bttv_s_fmt_vid_cap(struct file *file, void= *priv, if (0 !=3D retval) return retval; =20 - retval =3D bttv_try_fmt_vid_cap(file, priv, f); + retval =3D bttv_try_fmt_vid_cap(file, state, f); if (0 !=3D retval) return retval; =20 @@ -2109,7 +2124,8 @@ static int bttv_s_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int bttv_querycap(struct file *file, void *priv, +static int bttv_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct bttv *btv =3D video_drvdata(file); @@ -2140,7 +2156,8 @@ static int bttv_querycap(struct file *file, void *pr= iv, return 0; } =20 -static int bttv_enum_fmt_vid_cap(struct file *file, void *priv, +static int bttv_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { int index =3D -1, i; @@ -2159,7 +2176,8 @@ static int bttv_enum_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int bttv_g_parm(struct file *file, void *priv, +static int bttv_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct bttv *btv =3D video_drvdata(file); @@ -2173,7 +2191,8 @@ static int bttv_g_parm(struct file *file, void *priv, return 0; } =20 -static int bttv_g_tuner(struct file *file, void *priv, +static int bttv_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *t) { struct bttv *btv =3D video_drvdata(file); @@ -2195,8 +2214,9 @@ static int bttv_g_tuner(struct file *file, void *priv, return 0; } =20 -static int bttv_g_pixelaspect(struct file *file, void *priv, - int type, struct v4l2_fract *f) +static int bttv_g_pixelaspect(struct file *file, + struct video_device_state *state, int type, + struct v4l2_fract *f) { struct bttv *btv =3D video_drvdata(file); =20 @@ -2208,7 +2228,9 @@ static int bttv_g_pixelaspect(struct file *file, void= *priv, return 0; } =20 -static int bttv_g_selection(struct file *file, void *priv, struct v4l2_sel= ection *sel) +static int bttv_g_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *sel) { struct bttv *btv =3D video_drvdata(file); =20 @@ -2232,7 +2254,9 @@ static int bttv_g_selection(struct file *file, void *= priv, struct v4l2_selection return 0; } =20 -static int bttv_s_selection(struct file *file, void *priv, struct v4l2_sel= ection *sel) +static int bttv_s_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *sel) { struct bttv *btv =3D video_drvdata(file); const struct v4l2_rect *b; @@ -2398,7 +2422,8 @@ static int radio_release(struct file *file) return 0; } =20 -static int radio_g_tuner(struct file *file, void *priv, struct v4l2_tuner = *t) +static int radio_g_tuner(struct file *file, struct video_device_state *sta= te, + struct v4l2_tuner *t) { struct bttv *btv =3D video_drvdata(file); =20 @@ -2419,7 +2444,8 @@ static int radio_g_tuner(struct file *file, void *pri= v, struct v4l2_tuner *t) return 0; } =20 -static int radio_s_tuner(struct file *file, void *priv, +static int radio_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *t) { struct bttv *btv =3D video_drvdata(file); @@ -2432,7 +2458,8 @@ static int radio_s_tuner(struct file *file, void *pri= v, return 0; } =20 -static int radio_s_hw_freq_seek(struct file *file, void *priv, +static int radio_s_hw_freq_seek(struct file *file, + struct video_device_state *state, const struct v4l2_hw_freq_seek *a) { struct bttv *btv =3D video_drvdata(file); @@ -2443,7 +2470,8 @@ static int radio_s_hw_freq_seek(struct file *file, vo= id *priv, return -ENOTTY; } =20 -static int radio_enum_freq_bands(struct file *file, void *priv, +static int radio_enum_freq_bands(struct file *file, + struct video_device_state *state, struct v4l2_frequency_band *band) { struct bttv *btv =3D video_drvdata(file); diff --git a/drivers/media/pci/bt8xx/bttv-vbi.c b/drivers/media/pci/bt8xx/b= ttv-vbi.c index 0ca88a2400eefbbb6c61e292d5fe2cfef951c4d7..84bcf5b225a51d8a405f8a6fb08= 947e7a270d923 100644 --- a/drivers/media/pci/bt8xx/bttv-vbi.c +++ b/drivers/media/pci/bt8xx/bttv-vbi.c @@ -241,7 +241,8 @@ static int try_fmt(struct v4l2_vbi_format *f, const str= uct bttv_tvnorm *tvnorm, return 0; } =20 -int bttv_try_fmt_vbi_cap(struct file *file, void *priv, struct v4l2_format= *frt) +int bttv_try_fmt_vbi_cap(struct file *file, struct video_device_state *sta= te, + struct v4l2_format *frt) { struct bttv *btv =3D video_drvdata(file); const struct bttv_tvnorm *tvnorm; @@ -257,8 +258,8 @@ int bttv_try_fmt_vbi_cap(struct file *file, void *priv,= struct v4l2_format *frt) return try_fmt(&frt->fmt.vbi, tvnorm, crop_start); } =20 - -int bttv_s_fmt_vbi_cap(struct file *file, void *priv, struct v4l2_format *= frt) +int bttv_s_fmt_vbi_cap(struct file *file, struct video_device_state *state, + struct v4l2_format *frt) { struct bttv *btv =3D video_drvdata(file); const struct bttv_tvnorm *tvnorm; @@ -300,8 +301,8 @@ int bttv_s_fmt_vbi_cap(struct file *file, void *priv, s= truct v4l2_format *frt) return rc; } =20 - -int bttv_g_fmt_vbi_cap(struct file *file, void *priv, struct v4l2_format *= frt) +int bttv_g_fmt_vbi_cap(struct file *file, struct video_device_state *state, + struct v4l2_format *frt) { const struct bttv_tvnorm *tvnorm; struct bttv *btv =3D video_drvdata(file); diff --git a/drivers/media/pci/bt8xx/bttvp.h b/drivers/media/pci/bt8xx/bttv= p.h index a534e63b9a37bc5fdb27cc5b558ae885c7186715..0849f2f43720f4537174c431b42= 46cdc02cd21ff 100644 --- a/drivers/media/pci/bt8xx/bttvp.h +++ b/drivers/media/pci/bt8xx/bttvp.h @@ -227,9 +227,12 @@ int bttv_buffer_activate_vbi(struct bttv *btv, =20 #define VBI_DEFLINES 16 =20 -int bttv_try_fmt_vbi_cap(struct file *file, void *fh, struct v4l2_format *= f); -int bttv_g_fmt_vbi_cap(struct file *file, void *fh, struct v4l2_format *f); -int bttv_s_fmt_vbi_cap(struct file *file, void *fh, struct v4l2_format *f); +int bttv_try_fmt_vbi_cap(struct file *file, struct video_device_state *sta= te, + struct v4l2_format *f); +int bttv_g_fmt_vbi_cap(struct file *file, struct video_device_state *state, + struct v4l2_format *f); +int bttv_s_fmt_vbi_cap(struct file *file, struct video_device_state *state, + struct v4l2_format *f); =20 /* ---------------------------------------------------------- */ /* bttv-gpio.c */ diff --git a/drivers/media/pci/cobalt/cobalt-v4l2.c b/drivers/media/pci/cob= alt/cobalt-v4l2.c index 51fd9576c6c2a775ab3146af05c7e051f1198902..e3ef6bff28175358a46d65cc4ba= e89b1bec97ac4 100644 --- a/drivers/media/pci/cobalt/cobalt-v4l2.c +++ b/drivers/media/pci/cobalt/cobalt-v4l2.c @@ -447,7 +447,8 @@ static int cobalt_cobaltc(struct cobalt *cobalt, unsign= ed int cmd, void *arg) return 0; } =20 -static int cobalt_g_register(struct file *file, void *priv, +static int cobalt_g_register(struct file *file, + struct video_device_state *state, struct v4l2_dbg_register *reg) { struct cobalt_stream *s =3D video_drvdata(file); @@ -456,7 +457,8 @@ static int cobalt_g_register(struct file *file, void *p= riv, return cobalt_cobaltc(cobalt, VIDIOC_DBG_G_REGISTER, reg); } =20 -static int cobalt_s_register(struct file *file, void *priv, +static int cobalt_s_register(struct file *file, + struct video_device_state *state, const struct v4l2_dbg_register *reg) { struct cobalt_stream *s =3D video_drvdata(file); @@ -467,7 +469,8 @@ static int cobalt_s_register(struct file *file, void *p= riv, } #endif =20 -static int cobalt_querycap(struct file *file, void *priv, +static int cobalt_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *vcap) { struct cobalt_stream *s =3D video_drvdata(file); @@ -562,7 +565,8 @@ static void cobalt_video_input_status_show(struct cobal= t_stream *s) cobalt_info("rx%d: Packer: %x\n", rx, ioread32(&packer->control)); } =20 -static int cobalt_log_status(struct file *file, void *priv) +static int cobalt_log_status(struct file *file, + struct video_device_state *state) { struct cobalt_stream *s =3D video_drvdata(file); struct cobalt *cobalt =3D s->cobalt; @@ -596,7 +600,8 @@ static int cobalt_log_status(struct file *file, void *p= riv) return 0; } =20 -static int cobalt_enum_dv_timings(struct file *file, void *priv, +static int cobalt_enum_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_enum_dv_timings *timings) { struct cobalt_stream *s =3D video_drvdata(file); @@ -613,7 +618,8 @@ static int cobalt_enum_dv_timings(struct file *file, vo= id *priv, pad, enum_dv_timings, timings); } =20 -static int cobalt_s_dv_timings(struct file *file, void *priv, +static int cobalt_s_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct cobalt_stream *s =3D video_drvdata(file); @@ -641,7 +647,8 @@ static int cobalt_s_dv_timings(struct file *file, void = *priv, return err; } =20 -static int cobalt_g_dv_timings(struct file *file, void *priv, +static int cobalt_g_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct cobalt_stream *s =3D video_drvdata(file); @@ -654,7 +661,8 @@ static int cobalt_g_dv_timings(struct file *file, void = *priv, pad, g_dv_timings, 0, timings); } =20 -static int cobalt_query_dv_timings(struct file *file, void *priv, +static int cobalt_query_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct cobalt_stream *s =3D video_drvdata(file); @@ -667,7 +675,8 @@ static int cobalt_query_dv_timings(struct file *file, v= oid *priv, pad, query_dv_timings, 0, timings); } =20 -static int cobalt_dv_timings_cap(struct file *file, void *priv, +static int cobalt_dv_timings_cap(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings_cap *cap) { struct cobalt_stream *s =3D video_drvdata(file); @@ -677,8 +686,8 @@ static int cobalt_dv_timings_cap(struct file *file, voi= d *priv, pad, dv_timings_cap, cap); } =20 -static int cobalt_enum_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_fmtdesc *f) +static int cobalt_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { switch (f->index) { case 0: @@ -697,8 +706,8 @@ static int cobalt_enum_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int cobalt_g_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int cobalt_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cobalt_stream *s =3D video_drvdata(file); struct v4l2_pix_format *pix =3D &f->fmt.pix; @@ -726,8 +735,8 @@ static int cobalt_g_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int cobalt_try_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int cobalt_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cobalt_stream *s =3D video_drvdata(file); struct v4l2_pix_format *pix =3D &f->fmt.pix; @@ -787,8 +796,8 @@ static int cobalt_try_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int cobalt_s_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int cobalt_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cobalt_stream *s =3D video_drvdata(file); struct v4l2_pix_format *pix =3D &f->fmt.pix; @@ -796,7 +805,7 @@ static int cobalt_s_fmt_vid_cap(struct file *file, void= *priv, if (vb2_is_busy(&s->q)) return -EBUSY; =20 - if (cobalt_try_fmt_vid_cap(file, priv, f)) + if (cobalt_try_fmt_vid_cap(file, state, f)) return -EINVAL; =20 s->width =3D pix->width; @@ -821,8 +830,8 @@ static int cobalt_s_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int cobalt_try_fmt_vid_out(struct file *file, void *priv, - struct v4l2_format *f) +static int cobalt_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct v4l2_pix_format *pix =3D &f->fmt.pix; =20 @@ -862,8 +871,8 @@ static int cobalt_try_fmt_vid_out(struct file *file, vo= id *priv, return 0; } =20 -static int cobalt_g_fmt_vid_out(struct file *file, void *priv, - struct v4l2_format *f) +static int cobalt_g_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cobalt_stream *s =3D video_drvdata(file); struct v4l2_pix_format *pix =3D &f->fmt.pix; @@ -882,8 +891,8 @@ static int cobalt_g_fmt_vid_out(struct file *file, void= *priv, return 0; } =20 -static int cobalt_enum_fmt_vid_out(struct file *file, void *priv, - struct v4l2_fmtdesc *f) +static int cobalt_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { switch (f->index) { case 0: @@ -899,8 +908,8 @@ static int cobalt_enum_fmt_vid_out(struct file *file, v= oid *priv, return 0; } =20 -static int cobalt_s_fmt_vid_out(struct file *file, void *priv, - struct v4l2_format *f) +static int cobalt_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cobalt_stream *s =3D video_drvdata(file); struct v4l2_pix_format *pix =3D &f->fmt.pix; @@ -909,7 +918,7 @@ static int cobalt_s_fmt_vid_out(struct file *file, void= *priv, }; u32 code; =20 - if (cobalt_try_fmt_vid_out(file, priv, f)) + if (cobalt_try_fmt_vid_out(file, state, f)) return -EINVAL; =20 if (vb2_is_busy(&s->q) && (pix->pixelformat !=3D s->pixfmt || @@ -942,7 +951,8 @@ static int cobalt_s_fmt_vid_out(struct file *file, void= *priv, return 0; } =20 -static int cobalt_enum_input(struct file *file, void *priv, +static int cobalt_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { struct cobalt_stream *s =3D video_drvdata(file); @@ -963,7 +973,8 @@ static int cobalt_enum_input(struct file *file, void *p= riv, video, g_input_status, &inp->status); } =20 -static int cobalt_g_input(struct file *file, void *priv, unsigned int *i) +static int cobalt_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { struct cobalt_stream *s =3D video_drvdata(file); =20 @@ -971,7 +982,8 @@ static int cobalt_g_input(struct file *file, void *priv= , unsigned int *i) return 0; } =20 -static int cobalt_s_input(struct file *file, void *priv, unsigned int i) +static int cobalt_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int i) { struct cobalt_stream *s =3D video_drvdata(file); =20 @@ -990,7 +1002,8 @@ static int cobalt_s_input(struct file *file, void *pri= v, unsigned int i) ADV76XX_PAD_HDMI_PORT_A, 0, 0); } =20 -static int cobalt_enum_output(struct file *file, void *priv, +static int cobalt_enum_output(struct file *file, + struct video_device_state *state, struct v4l2_output *out) { if (out->index) @@ -1001,18 +1014,21 @@ static int cobalt_enum_output(struct file *file, vo= id *priv, return 0; } =20 -static int cobalt_g_output(struct file *file, void *priv, unsigned int *i) +static int cobalt_g_output(struct file *file, + struct video_device_state *state, unsigned int *i) { *i =3D 0; return 0; } =20 -static int cobalt_s_output(struct file *file, void *priv, unsigned int i) +static int cobalt_s_output(struct file *file, + struct video_device_state *state, unsigned int i) { return i ? -EINVAL : 0; } =20 -static int cobalt_g_edid(struct file *file, void *priv, struct v4l2_edid *= edid) +static int cobalt_g_edid(struct file *file, struct video_device_state *sta= te, + struct v4l2_edid *edid) { struct cobalt_stream *s =3D video_drvdata(file); u32 pad =3D edid->pad; @@ -1026,7 +1042,8 @@ static int cobalt_g_edid(struct file *file, void *pri= v, struct v4l2_edid *edid) return ret; } =20 -static int cobalt_s_edid(struct file *file, void *priv, struct v4l2_edid *= edid) +static int cobalt_s_edid(struct file *file, struct video_device_state *sta= te, + struct v4l2_edid *edid) { struct cobalt_stream *s =3D video_drvdata(file); u32 pad =3D edid->pad; @@ -1050,7 +1067,8 @@ static int cobalt_subscribe_event(struct v4l2_fh *fh, return v4l2_ctrl_subscribe_event(fh, sub); } =20 -static int cobalt_g_parm(struct file *file, void *priv, struct v4l2_stream= parm *a) +static int cobalt_g_parm(struct file *file, struct video_device_state *sta= te, + struct v4l2_streamparm *a) { struct cobalt_stream *s =3D video_drvdata(file); struct v4l2_fract fps; @@ -1065,8 +1083,9 @@ static int cobalt_g_parm(struct file *file, void *pri= v, struct v4l2_streamparm * return 0; } =20 -static int cobalt_g_pixelaspect(struct file *file, void *priv, - int type, struct v4l2_fract *f) +static int cobalt_g_pixelaspect(struct file *file, + struct video_device_state *state, int type, + struct v4l2_fract *f) { struct cobalt_stream *s =3D video_drvdata(file); struct v4l2_dv_timings timings; @@ -1084,7 +1103,8 @@ static int cobalt_g_pixelaspect(struct file *file, vo= id *priv, return err; } =20 -static int cobalt_g_selection(struct file *file, void *priv, +static int cobalt_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct cobalt_stream *s =3D video_drvdata(file); diff --git a/drivers/media/pci/cx18/cx18-driver.c b/drivers/media/pci/cx18/= cx18-driver.c index b62fd12c93c1a37ea6c8d3d48871028d81b33485..475c5a5e2000987fc3d590eb57d= a1472d7ccbf4b 100644 --- a/drivers/media/pci/cx18/cx18-driver.c +++ b/drivers/media/pci/cx18/cx18-driver.c @@ -1136,11 +1136,8 @@ int cx18_init_on_first_open(struct cx18 *cx) int video_input; int fw_retry_count =3D 3; struct v4l2_frequency vf; - struct cx18_open_id fh; v4l2_std_id std; =20 - fh.cx =3D cx; - if (test_bit(CX18_F_I_FAILED, &cx->i_flags)) return -ENXIO; =20 @@ -1220,14 +1217,14 @@ int cx18_init_on_first_open(struct cx18 *cx) =20 video_input =3D cx->active_input; cx->active_input++; /* Force update of input */ - cx18_s_input(NULL, &fh, video_input); + cx18_s_input(NULL, NULL, video_input); =20 /* Let the VIDIOC_S_STD ioctl do all the work, keeps the code in one place. */ cx->std++; /* Force full standard initialization */ std =3D (cx->tuner_std =3D=3D V4L2_STD_ALL) ? V4L2_STD_NTSC_M : cx->tuner= _std; - cx18_s_std(NULL, &fh, std); - cx18_s_frequency(NULL, &fh, &vf); + cx18_s_std(NULL, NULL, std); + cx18_s_frequency(NULL, NULL, &vf); return 0; } =20 diff --git a/drivers/media/pci/cx18/cx18-ioctl.c b/drivers/media/pci/cx18/c= x18-ioctl.c index 0f3019739d03dab1ed8ba63f71134a5b64807c7d..fcf9477e158cecbfd438156fc41= a98f51077f3f6 100644 --- a/drivers/media/pci/cx18/cx18-ioctl.c +++ b/drivers/media/pci/cx18/cx18-ioctl.c @@ -49,7 +49,8 @@ static const struct v4l2_fmtdesc cx18_formats_mpeg[] =3D { }, }; =20 -static int cx18_g_fmt_vid_cap(struct file *file, void *fh, +static int cx18_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct cx18_open_id *id =3D file2id(file); @@ -73,7 +74,8 @@ static int cx18_g_fmt_vid_cap(struct file *file, void *fh, return 0; } =20 -static int cx18_try_fmt_vid_cap(struct file *file, void *fh, +static int cx18_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct cx18_open_id *id =3D file2id(file); @@ -118,7 +120,8 @@ static int cx18_try_fmt_vid_cap(struct file *file, void= *fh, return 0; } =20 -static int cx18_s_fmt_vid_cap(struct file *file, void *fh, +static int cx18_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct cx18_open_id *id =3D file2id(file); @@ -130,7 +133,7 @@ static int cx18_s_fmt_vid_cap(struct file *file, void *= fh, int ret; int w, h; =20 - ret =3D cx18_try_fmt_vid_cap(file, fh, fmt); + ret =3D cx18_try_fmt_vid_cap(file, state, fmt); if (ret) return ret; w =3D fmt->fmt.pix.width; @@ -151,7 +154,7 @@ static int cx18_s_fmt_vid_cap(struct file *file, void *= fh, format.format.height =3D cx->cxhdl.height =3D h; format.format.code =3D MEDIA_BUS_FMT_FIXED; v4l2_subdev_call(cx->sd_av, pad, set_fmt, NULL, &format); - return cx18_g_fmt_vid_cap(file, fh, fmt); + return cx18_g_fmt_vid_cap(file, state, fmt); } =20 u16 cx18_service2vbi(int type) @@ -258,7 +261,8 @@ u16 cx18_get_service_set(struct v4l2_sliced_vbi_format = *fmt) return set; } =20 -static int cx18_g_fmt_vbi_cap(struct file *file, void *fh, +static int cx18_g_fmt_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct cx18 *cx =3D file2id(file)->cx; @@ -277,7 +281,8 @@ static int cx18_g_fmt_vbi_cap(struct file *file, void *= fh, return 0; } =20 -static int cx18_g_fmt_sliced_vbi_cap(struct file *file, void *fh, +static int cx18_g_fmt_sliced_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct cx18 *cx =3D file2id(file)->cx; @@ -302,13 +307,15 @@ static int cx18_g_fmt_sliced_vbi_cap(struct file *fil= e, void *fh, return 0; } =20 -static int cx18_try_fmt_vbi_cap(struct file *file, void *fh, +static int cx18_try_fmt_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { - return cx18_g_fmt_vbi_cap(file, fh, fmt); + return cx18_g_fmt_vbi_cap(file, state, fmt); } =20 -static int cx18_try_fmt_sliced_vbi_cap(struct file *file, void *fh, +static int cx18_try_fmt_sliced_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct cx18 *cx =3D file2id(file)->cx; @@ -327,7 +334,8 @@ static int cx18_try_fmt_sliced_vbi_cap(struct file *fil= e, void *fh, return 0; } =20 -static int cx18_s_fmt_vbi_cap(struct file *file, void *fh, +static int cx18_s_fmt_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct cx18_open_id *id =3D file2id(file); @@ -354,10 +362,11 @@ static int cx18_s_fmt_vbi_cap(struct file *file, void= *fh, cx->vbi.sliced_in->service_set =3D 0; cx->vbi.in.type =3D V4L2_BUF_TYPE_VBI_CAPTURE; =20 - return cx18_g_fmt_vbi_cap(file, fh, fmt); + return cx18_g_fmt_vbi_cap(file, state, fmt); } =20 -static int cx18_s_fmt_sliced_vbi_cap(struct file *file, void *fh, +static int cx18_s_fmt_sliced_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct cx18_open_id *id =3D file2id(file); @@ -365,7 +374,7 @@ static int cx18_s_fmt_sliced_vbi_cap(struct file *file,= void *fh, int ret; struct v4l2_sliced_vbi_format *vbifmt =3D &fmt->fmt.sliced; =20 - cx18_try_fmt_sliced_vbi_cap(file, fh, fmt); + cx18_try_fmt_sliced_vbi_cap(file, state, fmt); =20 /* * Changing the Encoder's Raw VBI parameters won't have any effect @@ -389,8 +398,8 @@ static int cx18_s_fmt_sliced_vbi_cap(struct file *file,= void *fh, } =20 #ifdef CONFIG_VIDEO_ADV_DEBUG -static int cx18_g_register(struct file *file, void *fh, - struct v4l2_dbg_register *reg) +static int cx18_g_register(struct file *file, struct video_device_state *s= tate, + struct v4l2_dbg_register *reg) { struct cx18 *cx =3D file2id(file)->cx; =20 @@ -403,8 +412,8 @@ static int cx18_g_register(struct file *file, void *fh, return 0; } =20 -static int cx18_s_register(struct file *file, void *fh, - const struct v4l2_dbg_register *reg) +static int cx18_s_register(struct file *file, struct video_device_state *s= tate, + const struct v4l2_dbg_register *reg) { struct cx18 *cx =3D file2id(file)->cx; =20 @@ -417,7 +426,8 @@ static int cx18_s_register(struct file *file, void *fh, } #endif =20 -static int cx18_querycap(struct file *file, void *fh, +static int cx18_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *vcap) { struct cx18_open_id *id =3D file2id(file); @@ -429,14 +439,16 @@ static int cx18_querycap(struct file *file, void *fh, return 0; } =20 -static int cx18_enumaudio(struct file *file, void *fh, struct v4l2_audio *= vin) +static int cx18_enumaudio(struct file *file, struct video_device_state *st= ate, + struct v4l2_audio *vin) { struct cx18 *cx =3D file2id(file)->cx; =20 return cx18_get_audio_input(cx, vin->index, vin); } =20 -static int cx18_g_audio(struct file *file, void *fh, struct v4l2_audio *vi= n) +static int cx18_g_audio(struct file *file, struct video_device_state *stat= e, + struct v4l2_audio *vin) { struct cx18 *cx =3D file2id(file)->cx; =20 @@ -444,7 +456,8 @@ static int cx18_g_audio(struct file *file, void *fh, st= ruct v4l2_audio *vin) return cx18_get_audio_input(cx, vin->index, vin); } =20 -static int cx18_s_audio(struct file *file, void *fh, const struct v4l2_aud= io *vout) +static int cx18_s_audio(struct file *file, struct video_device_state *stat= e, + const struct v4l2_audio *vout) { struct cx18 *cx =3D file2id(file)->cx; =20 @@ -455,7 +468,9 @@ static int cx18_s_audio(struct file *file, void *fh, co= nst struct v4l2_audio *vo return 0; } =20 -static int cx18_enum_input(struct file *file, void *fh, struct v4l2_input = *vin) +static int cx18_enum_input(struct file *file, + struct video_device_state *state, + struct v4l2_input *vin) { struct cx18 *cx =3D file2id(file)->cx; =20 @@ -463,8 +478,9 @@ static int cx18_enum_input(struct file *file, void *fh,= struct v4l2_input *vin) return cx18_get_input(cx, vin->index, vin); } =20 -static int cx18_g_pixelaspect(struct file *file, void *fh, - int type, struct v4l2_fract *f) +static int cx18_g_pixelaspect(struct file *file, + struct video_device_state *state, int type, + struct v4l2_fract *f) { struct cx18 *cx =3D file2id(file)->cx; =20 @@ -476,7 +492,8 @@ static int cx18_g_pixelaspect(struct file *file, void *= fh, return 0; } =20 -static int cx18_g_selection(struct file *file, void *fh, +static int cx18_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct cx18 *cx =3D file2id(file)->cx; @@ -496,7 +513,8 @@ static int cx18_g_selection(struct file *file, void *fh, return 0; } =20 -static int cx18_enum_fmt_vid_cap(struct file *file, void *fh, +static int cx18_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *fmt) { struct cx18_open_id *id =3D file2id(file); @@ -513,7 +531,8 @@ static int cx18_enum_fmt_vid_cap(struct file *file, voi= d *fh, return 0; } =20 -static int cx18_g_input(struct file *file, void *fh, unsigned int *i) +static int cx18_g_input(struct file *file, struct video_device_state *stat= e, + unsigned int *i) { struct cx18 *cx =3D file2id(file)->cx; =20 @@ -521,7 +540,8 @@ static int cx18_g_input(struct file *file, void *fh, un= signed int *i) return 0; } =20 -int cx18_s_input(struct file *file, void *fh, unsigned int inp) +int cx18_s_input(struct file *file, struct video_device_state *state, + unsigned int inp) { struct cx18_open_id *id =3D file2id(file); struct cx18 *cx =3D id->cx; @@ -558,7 +578,8 @@ int cx18_s_input(struct file *file, void *fh, unsigned = int inp) return 0; } =20 -static int cx18_g_frequency(struct file *file, void *fh, +static int cx18_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *vf) { struct cx18 *cx =3D file2id(file)->cx; @@ -570,7 +591,8 @@ static int cx18_g_frequency(struct file *file, void *fh, return 0; } =20 -int cx18_s_frequency(struct file *file, void *fh, const struct v4l2_freque= ncy *vf) +int cx18_s_frequency(struct file *file, struct video_device_state *state, + const struct v4l2_frequency *vf) { struct cx18_open_id *id =3D file2id(file); struct cx18 *cx =3D id->cx; @@ -585,7 +607,8 @@ int cx18_s_frequency(struct file *file, void *fh, const= struct v4l2_frequency *v return 0; } =20 -static int cx18_g_std(struct file *file, void *fh, v4l2_std_id *std) +static int cx18_g_std(struct file *file, struct video_device_state *state, + v4l2_std_id *std) { struct cx18 *cx =3D file2id(file)->cx; =20 @@ -593,7 +616,8 @@ static int cx18_g_std(struct file *file, void *fh, v4l2= _std_id *std) return 0; } =20 -int cx18_s_std(struct file *file, void *fh, v4l2_std_id std) +int cx18_s_std(struct file *file, struct video_device_state *state, + v4l2_std_id std) { struct cx18_open_id *id =3D file2id(file); struct cx18 *cx =3D id->cx; @@ -642,7 +666,8 @@ int cx18_s_std(struct file *file, void *fh, v4l2_std_id= std) return 0; } =20 -static int cx18_s_tuner(struct file *file, void *fh, const struct v4l2_tun= er *vt) +static int cx18_s_tuner(struct file *file, struct video_device_state *stat= e, + const struct v4l2_tuner *vt) { struct cx18_open_id *id =3D file2id(file); struct cx18 *cx =3D id->cx; @@ -654,7 +679,8 @@ static int cx18_s_tuner(struct file *file, void *fh, co= nst struct v4l2_tuner *vt return 0; } =20 -static int cx18_g_tuner(struct file *file, void *fh, struct v4l2_tuner *vt) +static int cx18_g_tuner(struct file *file, struct video_device_state *stat= e, + struct v4l2_tuner *vt) { struct cx18 *cx =3D file2id(file)->cx; =20 @@ -670,7 +696,8 @@ static int cx18_g_tuner(struct file *file, void *fh, st= ruct v4l2_tuner *vt) return 0; } =20 -static int cx18_g_sliced_vbi_cap(struct file *file, void *fh, +static int cx18_g_sliced_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_sliced_vbi_cap *cap) { struct cx18 *cx =3D file2id(file)->cx; @@ -791,7 +818,8 @@ static int cx18_process_idx_data(struct cx18_stream *s,= struct cx18_mdl *mdl, return 0; } =20 -static int cx18_g_enc_index(struct file *file, void *fh, +static int cx18_g_enc_index(struct file *file, + struct video_device_state *state, struct v4l2_enc_idx *idx) { struct cx18 *cx =3D file2id(file)->cx; @@ -838,7 +866,8 @@ static int cx18_g_enc_index(struct file *file, void *fh, return 0; } =20 -static int cx18_encoder_cmd(struct file *file, void *fh, +static int cx18_encoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_encoder_cmd *enc) { struct cx18_open_id *id =3D file2id(file); @@ -897,7 +926,8 @@ static int cx18_encoder_cmd(struct file *file, void *fh, return 0; } =20 -static int cx18_try_encoder_cmd(struct file *file, void *fh, +static int cx18_try_encoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_encoder_cmd *enc) { struct cx18 *cx =3D file2id(file)->cx; @@ -930,7 +960,8 @@ static int cx18_try_encoder_cmd(struct file *file, void= *fh, return 0; } =20 -static int cx18_log_status(struct file *file, void *fh) +static int cx18_log_status(struct file *file, + struct video_device_state *state) { struct cx18 *cx =3D file2id(file)->cx; struct v4l2_input vidin; @@ -973,7 +1004,8 @@ static int cx18_log_status(struct file *file, void *fh) return 0; } =20 -static long cx18_default(struct file *file, void *fh, bool valid_prio, +static long cx18_default(struct file *file, struct video_device_state *sta= te, + bool valid_prio, unsigned int cmd, void *arg) { struct cx18 *cx =3D file2id(file)->cx; diff --git a/drivers/media/pci/cx18/cx18-ioctl.h b/drivers/media/pci/cx18/c= x18-ioctl.h index 97cd9f99e22d9676d427a7e9e12fb572a91b2a82..62c1238021d42419a0d0ef7b520= d3e020b3b1f6e 100644 --- a/drivers/media/pci/cx18/cx18-ioctl.h +++ b/drivers/media/pci/cx18/cx18-ioctl.h @@ -12,6 +12,9 @@ u16 cx18_service2vbi(int type); void cx18_expand_service_set(struct v4l2_sliced_vbi_format *fmt, int is_pa= l); u16 cx18_get_service_set(struct v4l2_sliced_vbi_format *fmt); void cx18_set_funcs(struct video_device *vdev); -int cx18_s_std(struct file *file, void *fh, v4l2_std_id std); -int cx18_s_frequency(struct file *file, void *fh, const struct v4l2_freque= ncy *vf); -int cx18_s_input(struct file *file, void *fh, unsigned int inp); +int cx18_s_std(struct file *file, struct video_device_state *state, + v4l2_std_id std); +int cx18_s_frequency(struct file *file, struct video_device_state *state, + const struct v4l2_frequency *vf); +int cx18_s_input(struct file *file, struct video_device_state *state, + unsigned int inp); diff --git a/drivers/media/pci/cx23885/cx23885-417.c b/drivers/media/pci/cx= 23885/cx23885-417.c index 219937a153b3aed206091579fffbd07840ca0c3a..7d080e97bf460c2c89c833936d6= d6de5b6454417 100644 --- a/drivers/media/pci/cx23885/cx23885-417.c +++ b/drivers/media/pci/cx23885/cx23885-417.c @@ -1216,7 +1216,8 @@ static const struct vb2_ops cx23885_qops =3D { =20 /* ------------------------------------------------------------------ */ =20 -static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *id) +static int vidioc_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *id) { struct cx23885_dev *dev =3D video_drvdata(file); =20 @@ -1224,7 +1225,8 @@ static int vidioc_g_std(struct file *file, void *priv= , v4l2_std_id *id) return 0; } =20 -static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id) +static int vidioc_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id id) { struct cx23885_dev *dev =3D video_drvdata(file); unsigned int i; @@ -1242,25 +1244,28 @@ static int vidioc_s_std(struct file *file, void *pr= iv, v4l2_std_id id) return ret; } =20 -static int vidioc_enum_input(struct file *file, void *priv, - struct v4l2_input *i) +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { struct cx23885_dev *dev =3D video_drvdata(file); dprintk(1, "%s()\n", __func__); return cx23885_enum_input(dev, i); } =20 -static int vidioc_g_input(struct file *file, void *priv, unsigned int *i) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { - return cx23885_get_input(file, priv, i); + return cx23885_get_input(file, state, i); } =20 -static int vidioc_s_input(struct file *file, void *priv, unsigned int i) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int i) { - return cx23885_set_input(file, priv, i); + return cx23885_set_input(file, state, i); } =20 -static int vidioc_g_tuner(struct file *file, void *priv, +static int vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *t) { struct cx23885_dev *dev =3D video_drvdata(file); @@ -1277,7 +1282,8 @@ static int vidioc_g_tuner(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *t) { struct cx23885_dev *dev =3D video_drvdata(file); @@ -1291,7 +1297,8 @@ static int vidioc_s_tuner(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct cx23885_dev *dev =3D video_drvdata(file); @@ -1306,13 +1313,14 @@ static int vidioc_g_frequency(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_s_frequency(struct file *file, void *priv, - const struct v4l2_frequency *f) +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { - return cx23885_set_frequency(file, priv, f); + return cx23885_set_frequency(file, state, f); } =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct cx23885_dev *dev =3D video_drvdata(file); @@ -1331,7 +1339,8 @@ static int vidioc_querycap(struct file *file, void *= priv, return 0; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index !=3D 0) @@ -1342,7 +1351,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file,= void *priv, return 0; } =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx23885_dev *dev =3D video_drvdata(file); @@ -1360,7 +1370,8 @@ static int vidioc_g_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx23885_dev *dev =3D video_drvdata(file); @@ -1376,7 +1387,8 @@ static int vidioc_try_fmt_vid_cap(struct file *file, = void *priv, return 0; } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx23885_dev *dev =3D video_drvdata(file); @@ -1392,7 +1404,8 @@ static int vidioc_s_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_log_status(struct file *file, void *priv) +static int vidioc_log_status(struct file *file, + struct video_device_state *state) { struct cx23885_dev *dev =3D video_drvdata(file); char name[32 + 2]; diff --git a/drivers/media/pci/cx23885/cx23885-ioctl.c b/drivers/media/pci/= cx23885/cx23885-ioctl.c index a8ccad07cf50303895a14e29751b39a8c365fa17..e154b6777fddeefbac041a4e04c= 164574d65079b 100644 --- a/drivers/media/pci/cx23885/cx23885-ioctl.c +++ b/drivers/media/pci/cx23885/cx23885-ioctl.c @@ -11,8 +11,8 @@ #include "cx23885-ioctl.h" =20 #ifdef CONFIG_VIDEO_ADV_DEBUG -int cx23885_g_chip_info(struct file *file, void *fh, - struct v4l2_dbg_chip_info *chip) +int cx23885_g_chip_info(struct file *file, struct video_device_state *stat= e, + struct v4l2_dbg_chip_info *chip) { struct cx23885_dev *dev =3D video_drvdata(file); =20 @@ -47,7 +47,7 @@ static int cx23417_g_register(struct cx23885_dev *dev, return 0; } =20 -int cx23885_g_register(struct file *file, void *fh, +int cx23885_g_register(struct file *file, struct video_device_state *state, struct v4l2_dbg_register *reg) { struct cx23885_dev *dev =3D video_drvdata(file); @@ -79,7 +79,7 @@ static int cx23417_s_register(struct cx23885_dev *dev, return 0; } =20 -int cx23885_s_register(struct file *file, void *fh, +int cx23885_s_register(struct file *file, struct video_device_state *state, const struct v4l2_dbg_register *reg) { struct cx23885_dev *dev =3D video_drvdata(file); diff --git a/drivers/media/pci/cx23885/cx23885-ioctl.h b/drivers/media/pci/= cx23885/cx23885-ioctl.h index 14bfe9e4ec264f38f19864ea34229c9c8a4e7ed0..89c7bfe0ec16d9fdb056f815add= 09c24cc41e846 100644 --- a/drivers/media/pci/cx23885/cx23885-ioctl.h +++ b/drivers/media/pci/cx23885/cx23885-ioctl.h @@ -10,15 +10,14 @@ #ifndef _CX23885_IOCTL_H_ #define _CX23885_IOCTL_H_ =20 -int cx23885_g_chip_info(struct file *file, void *fh, - struct v4l2_dbg_chip_info *chip); +int cx23885_g_chip_info(struct file *file, struct video_device_state *stat= e, + struct v4l2_dbg_chip_info *chip); =20 #ifdef CONFIG_VIDEO_ADV_DEBUG -int cx23885_g_register(struct file *file, void *fh, +int cx23885_g_register(struct file *file, struct video_device_state *state, struct v4l2_dbg_register *reg); =20 - -int cx23885_s_register(struct file *file, void *fh, +int cx23885_s_register(struct file *file, struct video_device_state *state, const struct v4l2_dbg_register *reg); =20 #endif diff --git a/drivers/media/pci/cx23885/cx23885-vbi.c b/drivers/media/pci/cx= 23885/cx23885-vbi.c index 40817cc52fc1ee256be86319638d0d26116e51c0..049aa0d4359cf789ddf3955347d= 30a636da1c7e8 100644 --- a/drivers/media/pci/cx23885/cx23885-vbi.c +++ b/drivers/media/pci/cx23885/cx23885-vbi.c @@ -32,9 +32,8 @@ MODULE_PARM_DESC(vbi_debug, "enable debug messages [vbi]"= ); #define VBI_NTSC_LINE_COUNT 12 #define VBI_PAL_LINE_COUNT 18 =20 - -int cx23885_vbi_fmt(struct file *file, void *priv, - struct v4l2_format *f) +int cx23885_vbi_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct cx23885_dev *dev =3D video_drvdata(file); =20 diff --git a/drivers/media/pci/cx23885/cx23885-video.c b/drivers/media/pci/= cx23885/cx23885-video.c index 14d219fd1d8a0a5f964b6c182c167b63f3f45a51..9d9e17509b26e3b9c0d2c6d9162= 0c3667ed289c0 100644 --- a/drivers/media/pci/cx23885/cx23885-video.c +++ b/drivers/media/pci/cx23885/cx23885-video.c @@ -527,8 +527,8 @@ static const struct vb2_ops cx23885_video_qops =3D { /* ------------------------------------------------------------------ */ /* VIDEO IOCTLS */ =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx23885_dev *dev =3D video_drvdata(file); =20 @@ -545,8 +545,8 @@ static int vidioc_g_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx23885_dev *dev =3D video_drvdata(file); struct cx23885_fmt *fmt; @@ -593,8 +593,8 @@ static int vidioc_try_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx23885_dev *dev =3D video_drvdata(file); struct v4l2_subdev_format format =3D { @@ -603,7 +603,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void= *priv, int err; =20 dprintk(2, "%s()\n", __func__); - err =3D vidioc_try_fmt_vid_cap(file, priv, f); + err =3D vidioc_try_fmt_vid_cap(file, state, f); =20 if (0 !=3D err) return err; @@ -626,8 +626,8 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int vidioc_querycap(struct file *file, void *priv, - struct v4l2_capability *cap) +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct cx23885_dev *dev =3D video_drvdata(file); =20 @@ -654,8 +654,8 @@ static int vidioc_querycap(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_fmtdesc *f) +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (unlikely(f->index >=3D ARRAY_SIZE(formats))) return -EINVAL; @@ -665,8 +665,9 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int vidioc_g_pixelaspect(struct file *file, void *priv, - int type, struct v4l2_fract *f) +static int vidioc_g_pixelaspect(struct file *file, + struct video_device_state *state, int type, + struct v4l2_fract *f) { struct cx23885_dev *dev =3D video_drvdata(file); bool is_50hz =3D dev->tvnorm & V4L2_STD_625_50; @@ -680,7 +681,8 @@ static int vidioc_g_pixelaspect(struct file *file, void= *priv, return 0; } =20 -static int vidioc_g_selection(struct file *file, void *fh, +static int vidioc_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct cx23885_dev *dev =3D video_drvdata(file); @@ -702,7 +704,8 @@ static int vidioc_g_selection(struct file *file, void *= fh, return 0; } =20 -static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *id) +static int vidioc_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *id) { struct cx23885_dev *dev =3D video_drvdata(file); dprintk(1, "%s()\n", __func__); @@ -711,7 +714,8 @@ static int vidioc_g_std(struct file *file, void *priv, = v4l2_std_id *id) return 0; } =20 -static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id tvnorms) +static int vidioc_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id tvnorms) { struct cx23885_dev *dev =3D video_drvdata(file); dprintk(1, "%s()\n", __func__); @@ -768,7 +772,8 @@ int cx23885_enum_input(struct cx23885_dev *dev, struct = v4l2_input *i) return 0; } =20 -static int vidioc_enum_input(struct file *file, void *priv, +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { struct cx23885_dev *dev =3D video_drvdata(file); @@ -785,9 +790,10 @@ int cx23885_get_input(struct file *file, void *priv, u= nsigned int *i) return 0; } =20 -static int vidioc_g_input(struct file *file, void *priv, unsigned int *i) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { - return cx23885_get_input(file, priv, i); + return cx23885_get_input(file, state, i); } =20 int cx23885_set_input(struct file *file, void *priv, unsigned int i) @@ -812,12 +818,14 @@ int cx23885_set_input(struct file *file, void *priv, = unsigned int i) return 0; } =20 -static int vidioc_s_input(struct file *file, void *priv, unsigned int i) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int i) { - return cx23885_set_input(file, priv, i); + return cx23885_set_input(file, state, i); } =20 -static int vidioc_log_status(struct file *file, void *priv) +static int vidioc_log_status(struct file *file, + struct video_device_state *state) { struct cx23885_dev *dev =3D video_drvdata(file); =20 @@ -848,14 +856,15 @@ static int cx23885_query_audinput(struct file *file, = void *priv, =20 } =20 -static int vidioc_enum_audinput(struct file *file, void *priv, +static int vidioc_enum_audinput(struct file *file, + struct video_device_state *state, struct v4l2_audio *i) { - return cx23885_query_audinput(file, priv, i); + return cx23885_query_audinput(file, state, i); } =20 -static int vidioc_g_audinput(struct file *file, void *priv, - struct v4l2_audio *i) +static int vidioc_g_audinput(struct file *file, + struct video_device_state *state, struct v4l2_audio *i) { struct cx23885_dev *dev =3D video_drvdata(file); =20 @@ -866,11 +875,11 @@ static int vidioc_g_audinput(struct file *file, void = *priv, i->index =3D dev->audinput; dprintk(1, "%s(input=3D%d)\n", __func__, i->index); =20 - return cx23885_query_audinput(file, priv, i); + return cx23885_query_audinput(file, state, i); } =20 -static int vidioc_s_audinput(struct file *file, void *priv, - const struct v4l2_audio *i) +static int vidioc_s_audinput(struct file *file, + struct video_device_state *state, const struct v4l2_audio *i) { struct cx23885_dev *dev =3D video_drvdata(file); =20 @@ -891,7 +900,8 @@ static int vidioc_s_audinput(struct file *file, void *p= riv, return 0; } =20 -static int vidioc_g_tuner(struct file *file, void *priv, +static int vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *t) { struct cx23885_dev *dev =3D video_drvdata(file); @@ -916,7 +926,8 @@ static int vidioc_g_tuner(struct file *file, void *priv, return 0; } =20 -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *t) { struct cx23885_dev *dev =3D video_drvdata(file); @@ -940,7 +951,8 @@ static int vidioc_s_tuner(struct file *file, void *priv, return 0; } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct cx23885_dev *dev =3D video_drvdata(file); @@ -1090,10 +1102,10 @@ int cx23885_set_frequency(struct file *file, void *= priv, return ret; } =20 -static int vidioc_s_frequency(struct file *file, void *priv, - const struct v4l2_frequency *f) +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { - return cx23885_set_frequency(file, priv, f); + return cx23885_set_frequency(file, state, f); } =20 /* ----------------------------------------------------------- */ diff --git a/drivers/media/pci/cx23885/cx23885.h b/drivers/media/pci/cx2388= 5/cx23885.h index 8ba1f306238cb3c136c1fbae8d29b581aeb566e5..9a0d50ac836953b3460d39d0dba= 3326e0ba9dfab 100644 --- a/drivers/media/pci/cx23885/cx23885.h +++ b/drivers/media/pci/cx23885/cx23885.h @@ -585,8 +585,8 @@ int cx23885_set_tvnorm(struct cx23885_dev *dev, v4l2_st= d_id norm); =20 /* ----------------------------------------------------------- */ /* cx23885-vbi.c */ -extern int cx23885_vbi_fmt(struct file *file, void *priv, - struct v4l2_format *f); +int cx23885_vbi_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f); extern void cx23885_vbi_timeout(unsigned long data); extern const struct vb2_ops cx23885_vbi_qops; extern int cx23885_vbi_irq(struct cx23885_dev *dev, u32 status); diff --git a/drivers/media/pci/cx25821/cx25821-video.c b/drivers/media/pci/= cx25821/cx25821-video.c index 84aa1209e7171ecc541a764fea064e031ce2bb6e..7836e44090122f2c675a3098dfe= d2c954d5c9c11 100644 --- a/drivers/media/pci/cx25821/cx25821-video.c +++ b/drivers/media/pci/cx25821/cx25821-video.c @@ -301,7 +301,8 @@ static const struct vb2_ops cx25821_video_qops =3D { =20 /* VIDEO IOCTLS */ =20 -static int cx25821_vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int cx25821_vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (unlikely(f->index >=3D ARRAY_SIZE(formats))) @@ -312,7 +313,8 @@ static int cx25821_vidioc_enum_fmt_vid_cap(struct file = *file, void *priv, return 0; } =20 -static int cx25821_vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int cx25821_vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx25821_channel *chan =3D video_drvdata(file); @@ -328,7 +330,8 @@ static int cx25821_vidioc_g_fmt_vid_cap(struct file *fi= le, void *priv, return 0; } =20 -static int cx25821_vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int cx25821_vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx25821_channel *chan =3D video_drvdata(file); @@ -366,7 +369,8 @@ static int cx25821_vidioc_try_fmt_vid_cap(struct file *= file, void *priv, return 0; } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx25821_channel *chan =3D video_drvdata(file); @@ -374,7 +378,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void= *priv, int pix_format =3D PIXEL_FRMT_422; int err; =20 - err =3D cx25821_vidioc_try_fmt_vid_cap(file, priv, f); + err =3D cx25821_vidioc_try_fmt_vid_cap(file, state, f); =20 if (0 !=3D err) return err; @@ -402,7 +406,8 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int vidioc_log_status(struct file *file, void *priv) +static int vidioc_log_status(struct file *file, + struct video_device_state *state) { struct cx25821_channel *chan =3D video_drvdata(file); struct cx25821_dev *dev =3D chan->dev; @@ -416,7 +421,8 @@ static int vidioc_log_status(struct file *file, void *p= riv) } =20 =20 -static int cx25821_vidioc_querycap(struct file *file, void *priv, +static int cx25821_vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct cx25821_channel *chan =3D video_drvdata(file); @@ -431,7 +437,9 @@ static int cx25821_vidioc_querycap(struct file *file, v= oid *priv, return 0; } =20 -static int cx25821_vidioc_g_std(struct file *file, void *priv, v4l2_std_id= *tvnorms) +static int cx25821_vidioc_g_std(struct file *file, + struct video_device_state *state, + v4l2_std_id *tvnorms) { struct cx25821_channel *chan =3D video_drvdata(file); =20 @@ -439,7 +447,8 @@ static int cx25821_vidioc_g_std(struct file *file, void= *priv, v4l2_std_id *tvno return 0; } =20 -static int cx25821_vidioc_s_std(struct file *file, void *priv, +static int cx25821_vidioc_s_std(struct file *file, + struct video_device_state *state, v4l2_std_id tvnorms) { struct cx25821_channel *chan =3D video_drvdata(file); @@ -457,7 +466,8 @@ static int cx25821_vidioc_s_std(struct file *file, void= *priv, return 0; } =20 -static int cx25821_vidioc_enum_input(struct file *file, void *priv, +static int cx25821_vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { if (i->index) @@ -469,13 +479,17 @@ static int cx25821_vidioc_enum_input(struct file *fil= e, void *priv, return 0; } =20 -static int cx25821_vidioc_g_input(struct file *file, void *priv, unsigned = int *i) +static int cx25821_vidioc_g_input(struct file *file, + struct video_device_state *state, + unsigned int *i) { *i =3D 0; return 0; } =20 -static int cx25821_vidioc_s_input(struct file *file, void *priv, unsigned = int i) +static int cx25821_vidioc_s_input(struct file *file, + struct video_device_state *state, + unsigned int i) { return i ? -EINVAL : 0; } @@ -505,7 +519,8 @@ static int cx25821_s_ctrl(struct v4l2_ctrl *ctrl) return 0; } =20 -static int cx25821_vidioc_enum_output(struct file *file, void *priv, +static int cx25821_vidioc_enum_output(struct file *file, + struct video_device_state *state, struct v4l2_output *o) { if (o->index) @@ -517,18 +532,23 @@ static int cx25821_vidioc_enum_output(struct file *fi= le, void *priv, return 0; } =20 -static int cx25821_vidioc_g_output(struct file *file, void *priv, unsigned= int *o) +static int cx25821_vidioc_g_output(struct file *file, + struct video_device_state *state, + unsigned int *o) { *o =3D 0; return 0; } =20 -static int cx25821_vidioc_s_output(struct file *file, void *priv, unsigned= int o) +static int cx25821_vidioc_s_output(struct file *file, + struct video_device_state *state, + unsigned int o) { return o ? -EINVAL : 0; } =20 -static int cx25821_vidioc_try_fmt_vid_out(struct file *file, void *priv, +static int cx25821_vidioc_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx25821_channel *chan =3D video_drvdata(file); @@ -547,13 +567,14 @@ static int cx25821_vidioc_try_fmt_vid_out(struct file= *file, void *priv, return 0; } =20 -static int vidioc_s_fmt_vid_out(struct file *file, void *priv, +static int vidioc_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx25821_channel *chan =3D video_drvdata(file); int err; =20 - err =3D cx25821_vidioc_try_fmt_vid_out(file, priv, f); + err =3D cx25821_vidioc_try_fmt_vid_out(file, state, f); =20 if (0 !=3D err) return err; diff --git a/drivers/media/pci/cx88/cx88-blackbird.c b/drivers/media/pci/cx= 88/cx88-blackbird.c index 13b8cc46835b2cb5a84405cdb7fa21d35675f552..149f19f6cef27fe93483ca5ede8= 5757e90b973ec 100644 --- a/drivers/media/pci/cx88/cx88-blackbird.c +++ b/drivers/media/pci/cx88/cx88-blackbird.c @@ -787,7 +787,8 @@ static const struct vb2_ops blackbird_qops =3D { =20 /* ------------------------------------------------------------------ */ =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct cx8802_dev *dev =3D video_drvdata(file); @@ -797,7 +798,8 @@ static int vidioc_querycap(struct file *file, void *pr= iv, return cx88_querycap(file, core, cap); } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index !=3D 0) @@ -807,7 +809,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx8802_dev *dev =3D video_drvdata(file); @@ -823,7 +826,8 @@ static int vidioc_g_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx8802_dev *dev =3D video_drvdata(file); @@ -863,7 +867,8 @@ static int vidioc_try_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx8802_dev *dev =3D video_drvdata(file); @@ -874,7 +879,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void= *priv, if (core->v4ldev && (vb2_is_busy(&core->v4ldev->vb2_vidq) || vb2_is_busy(&core->v4ldev->vb2_vbiq))) return -EBUSY; - vidioc_try_fmt_vid_cap(file, priv, f); + vidioc_try_fmt_vid_cap(file, state, f); core->width =3D f->fmt.pix.width; core->height =3D f->fmt.pix.height; core->field =3D f->fmt.pix.field; @@ -885,7 +890,8 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct cx8802_dev *dev =3D video_drvdata(file); @@ -908,7 +914,8 @@ static int vidioc_s_frequency(struct file *file, void *= priv, return 0; } =20 -static int vidioc_log_status(struct file *file, void *priv) +static int vidioc_log_status(struct file *file, + struct video_device_state *state) { struct cx8802_dev *dev =3D video_drvdata(file); struct cx88_core *core =3D dev->core; @@ -920,7 +927,8 @@ static int vidioc_log_status(struct file *file, void *p= riv) return 0; } =20 -static int vidioc_enum_input(struct file *file, void *priv, +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { struct cx8802_dev *dev =3D video_drvdata(file); @@ -929,7 +937,8 @@ static int vidioc_enum_input(struct file *file, void *p= riv, return cx88_enum_input(core, i); } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct cx8802_dev *dev =3D video_drvdata(file); @@ -946,7 +955,8 @@ static int vidioc_g_frequency(struct file *file, void *= priv, return 0; } =20 -static int vidioc_g_input(struct file *file, void *priv, unsigned int *i) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { struct cx8802_dev *dev =3D video_drvdata(file); struct cx88_core *core =3D dev->core; @@ -955,7 +965,8 @@ static int vidioc_g_input(struct file *file, void *priv= , unsigned int *i) return 0; } =20 -static int vidioc_s_input(struct file *file, void *priv, unsigned int i) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int i) { struct cx8802_dev *dev =3D video_drvdata(file); struct cx88_core *core =3D dev->core; @@ -970,7 +981,8 @@ static int vidioc_s_input(struct file *file, void *priv= , unsigned int i) return 0; } =20 -static int vidioc_g_tuner(struct file *file, void *priv, +static int vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *t) { struct cx8802_dev *dev =3D video_drvdata(file); @@ -993,7 +1005,8 @@ static int vidioc_g_tuner(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *t) { struct cx8802_dev *dev =3D video_drvdata(file); @@ -1008,7 +1021,8 @@ static int vidioc_s_tuner(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *tvnorm) +static int vidioc_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *tvnorm) { struct cx8802_dev *dev =3D video_drvdata(file); struct cx88_core *core =3D dev->core; @@ -1017,7 +1031,8 @@ static int vidioc_g_std(struct file *file, void *priv= , v4l2_std_id *tvnorm) return 0; } =20 -static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id) +static int vidioc_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id id) { struct cx8802_dev *dev =3D video_drvdata(file); struct cx88_core *core =3D dev->core; diff --git a/drivers/media/pci/cx88/cx88-vbi.c b/drivers/media/pci/cx88/cx8= 8-vbi.c index e3e379e6f6207b6ebf08327263d7087f5122d236..4d702acdfa75a8a95554d0b7f97= d11bd7a9d25c3 100644 --- a/drivers/media/pci/cx88/cx88-vbi.c +++ b/drivers/media/pci/cx88/cx88-vbi.c @@ -20,7 +20,7 @@ MODULE_PARM_DESC(vbi_debug, "enable debug messages [vbi]"= ); =20 /* ------------------------------------------------------------------ */ =20 -int cx8800_vbi_fmt(struct file *file, void *priv, +int cx8800_vbi_fmt(struct file *file, struct video_device_state *state, struct v4l2_format *f) { struct cx8800_dev *dev =3D video_drvdata(file); diff --git a/drivers/media/pci/cx88/cx88-video.c b/drivers/media/pci/cx88/c= x88-video.c index 0c87327689d3f669241bfc11ca07f7210f603a36..8288e2aa8d61f5826849856fd62= d0670f6e96509 100644 --- a/drivers/media/pci/cx88/cx88-video.c +++ b/drivers/media/pci/cx88/cx88-video.c @@ -701,7 +701,8 @@ static int cx8800_s_aud_ctrl(struct v4l2_ctrl *ctrl) /* ------------------------------------------------------------------ */ /* VIDEO IOCTLS */ =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx8800_dev *dev =3D video_drvdata(file); @@ -719,7 +720,8 @@ static int vidioc_g_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx8800_dev *dev =3D video_drvdata(file); @@ -765,12 +767,13 @@ static int vidioc_try_fmt_vid_cap(struct file *file, = void *priv, return 0; } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx8800_dev *dev =3D video_drvdata(file); struct cx88_core *core =3D dev->core; - int err =3D vidioc_try_fmt_vid_cap(file, priv, f); + int err =3D vidioc_try_fmt_vid_cap(file, state, f); =20 if (err !=3D 0) return err; @@ -800,7 +803,8 @@ int cx88_querycap(struct file *file, struct cx88_core *= core, } EXPORT_SYMBOL(cx88_querycap); =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct cx8800_dev *dev =3D video_drvdata(file); @@ -810,7 +814,8 @@ static int vidioc_querycap(struct file *file, void *pr= iv, return cx88_querycap(file, core, cap); } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (unlikely(f->index >=3D ARRAY_SIZE(formats))) @@ -821,7 +826,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *tvnorm) +static int vidioc_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *tvnorm) { struct cx8800_dev *dev =3D video_drvdata(file); struct cx88_core *core =3D dev->core; @@ -830,7 +836,8 @@ static int vidioc_g_std(struct file *file, void *priv, = v4l2_std_id *tvnorm) return 0; } =20 -static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id tvnorms) +static int vidioc_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id tvnorms) { struct cx8800_dev *dev =3D video_drvdata(file); struct cx88_core *core =3D dev->core; @@ -869,7 +876,8 @@ int cx88_enum_input(struct cx88_core *core, struct v4l= 2_input *i) } EXPORT_SYMBOL(cx88_enum_input); =20 -static int vidioc_enum_input(struct file *file, void *priv, +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { struct cx8800_dev *dev =3D video_drvdata(file); @@ -878,7 +886,8 @@ static int vidioc_enum_input(struct file *file, void *p= riv, return cx88_enum_input(core, i); } =20 -static int vidioc_g_input(struct file *file, void *priv, unsigned int *i) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { struct cx8800_dev *dev =3D video_drvdata(file); struct cx88_core *core =3D dev->core; @@ -887,7 +896,8 @@ static int vidioc_g_input(struct file *file, void *priv= , unsigned int *i) return 0; } =20 -static int vidioc_s_input(struct file *file, void *priv, unsigned int i) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int i) { struct cx8800_dev *dev =3D video_drvdata(file); struct cx88_core *core =3D dev->core; @@ -902,7 +912,8 @@ static int vidioc_s_input(struct file *file, void *priv= , unsigned int i) return 0; } =20 -static int vidioc_g_tuner(struct file *file, void *priv, +static int vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *t) { struct cx8800_dev *dev =3D video_drvdata(file); @@ -925,7 +936,8 @@ static int vidioc_g_tuner(struct file *file, void *priv, return 0; } =20 -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *t) { struct cx8800_dev *dev =3D video_drvdata(file); @@ -940,7 +952,8 @@ static int vidioc_s_tuner(struct file *file, void *priv, return 0; } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct cx8800_dev *dev =3D video_drvdata(file); @@ -981,7 +994,8 @@ int cx88_set_freq(struct cx88_core *core, } EXPORT_SYMBOL(cx88_set_freq); =20 -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct cx8800_dev *dev =3D video_drvdata(file); @@ -991,7 +1005,8 @@ static int vidioc_s_frequency(struct file *file, void = *priv, } =20 #ifdef CONFIG_VIDEO_ADV_DEBUG -static int vidioc_g_register(struct file *file, void *fh, +static int vidioc_g_register(struct file *file, + struct video_device_state *state, struct v4l2_dbg_register *reg) { struct cx8800_dev *dev =3D video_drvdata(file); @@ -1003,7 +1018,8 @@ static int vidioc_g_register(struct file *file, void = *fh, return 0; } =20 -static int vidioc_s_register(struct file *file, void *fh, +static int vidioc_s_register(struct file *file, + struct video_device_state *state, const struct v4l2_dbg_register *reg) { struct cx8800_dev *dev =3D video_drvdata(file); @@ -1018,7 +1034,8 @@ static int vidioc_s_register(struct file *file, void = *fh, /* RADIO ESPECIFIC IOCTLS */ /* ----------------------------------------------------------- */ =20 -static int radio_g_tuner(struct file *file, void *priv, +static int radio_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *t) { struct cx8800_dev *dev =3D video_drvdata(file); @@ -1033,7 +1050,8 @@ static int radio_g_tuner(struct file *file, void *pri= v, return 0; } =20 -static int radio_s_tuner(struct file *file, void *priv, +static int radio_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *t) { struct cx8800_dev *dev =3D video_drvdata(file); diff --git a/drivers/media/pci/cx88/cx88.h b/drivers/media/pci/cx88/cx88.h index 2ff3226a52ec4de3b5f4b9f85cca9b8ac489a01f..80d0665063c95a0655d654a7f5d= c05f2fa3f531f 100644 --- a/drivers/media/pci/cx88/cx88.h +++ b/drivers/media/pci/cx88/cx88.h @@ -656,7 +656,7 @@ int cx88_stop_audio_dma(struct cx88_core *core); /* cx88-vbi.c */ =20 /* Can be used as g_vbi_fmt, try_vbi_fmt and s_vbi_fmt */ -int cx8800_vbi_fmt(struct file *file, void *priv, +int cx8800_vbi_fmt(struct file *file, struct video_device_state *state, struct v4l2_format *f); =20 void cx8800_stop_vbi_dma(struct cx8800_dev *dev); diff --git a/drivers/media/pci/dt3155/dt3155.c b/drivers/media/pci/dt3155/d= t3155.c index 7bddcbba4cf1ba2998afbfe1e961ad89a303f1c2..de7944006438cfc50b1489d6de7= a834c84a5b7bf 100644 --- a/drivers/media/pci/dt3155/dt3155.c +++ b/drivers/media/pci/dt3155/dt3155.c @@ -285,7 +285,8 @@ static const struct v4l2_file_operations dt3155_fops = =3D { .poll =3D vb2_fop_poll }; =20 -static int dt3155_querycap(struct file *filp, void *p, +static int dt3155_querycap(struct file *filp, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, DT3155_NAME, sizeof(cap->driver)); @@ -294,7 +295,8 @@ static int dt3155_querycap(struct file *filp, void *p, } =20 static int dt3155_enum_fmt_vid_cap(struct file *filp, - void *p, struct v4l2_fmtdesc *f) + struct video_device_state *state, + struct v4l2_fmtdesc *f) { if (f->index) return -EINVAL; @@ -302,7 +304,9 @@ static int dt3155_enum_fmt_vid_cap(struct file *filp, return 0; } =20 -static int dt3155_fmt_vid_cap(struct file *filp, void *p, struct v4l2_form= at *f) +static int dt3155_fmt_vid_cap(struct file *filp, + struct video_device_state *state, + struct v4l2_format *f) { struct dt3155_priv *pd =3D video_drvdata(filp); =20 @@ -316,7 +320,8 @@ static int dt3155_fmt_vid_cap(struct file *filp, void *= p, struct v4l2_format *f) return 0; } =20 -static int dt3155_g_std(struct file *filp, void *p, v4l2_std_id *norm) +static int dt3155_g_std(struct file *filp, struct video_device_state *stat= e, + v4l2_std_id *norm) { struct dt3155_priv *pd =3D video_drvdata(filp); =20 @@ -324,7 +329,8 @@ static int dt3155_g_std(struct file *filp, void *p, v4l= 2_std_id *norm) return 0; } =20 -static int dt3155_s_std(struct file *filp, void *p, v4l2_std_id norm) +static int dt3155_s_std(struct file *filp, struct video_device_state *stat= e, + v4l2_std_id norm) { struct dt3155_priv *pd =3D video_drvdata(filp); =20 @@ -345,7 +351,8 @@ static int dt3155_s_std(struct file *filp, void *p, v4l= 2_std_id norm) return 0; } =20 -static int dt3155_enum_input(struct file *filp, void *p, +static int dt3155_enum_input(struct file *filp, + struct video_device_state *state, struct v4l2_input *input) { if (input->index > 3) @@ -361,7 +368,8 @@ static int dt3155_enum_input(struct file *filp, void *p, return 0; } =20 -static int dt3155_g_input(struct file *filp, void *p, unsigned int *i) +static int dt3155_g_input(struct file *filp, struct video_device_state *st= ate, + unsigned int *i) { struct dt3155_priv *pd =3D video_drvdata(filp); =20 @@ -369,7 +377,8 @@ static int dt3155_g_input(struct file *filp, void *p, u= nsigned int *i) return 0; } =20 -static int dt3155_s_input(struct file *filp, void *p, unsigned int i) +static int dt3155_s_input(struct file *filp, struct video_device_state *st= ate, + unsigned int i) { struct dt3155_priv *pd =3D video_drvdata(filp); =20 diff --git a/drivers/media/pci/intel/ipu3/ipu3-cio2.c b/drivers/media/pci/i= ntel/ipu3/ipu3-cio2.c index a87f105beb5e267fd450b8a36ef9b0e0ecafc598..0cf3f0ffc9375dd93305d1ecfea= ea7c3c65407c6 100644 --- a/drivers/media/pci/intel/ipu3/ipu3-cio2.c +++ b/drivers/media/pci/intel/ipu3/ipu3-cio2.c @@ -1062,7 +1062,8 @@ static const struct vb2_ops cio2_vb2_ops =3D { =20 /**************** V4L2 interface ****************/ =20 -static int cio2_v4l2_querycap(struct file *file, void *fh, +static int cio2_v4l2_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, CIO2_NAME, sizeof(cap->driver)); @@ -1071,7 +1072,8 @@ static int cio2_v4l2_querycap(struct file *file, void= *fh, return 0; } =20 -static int cio2_v4l2_enum_fmt(struct file *file, void *fh, +static int cio2_v4l2_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index >=3D ARRAY_SIZE(formats)) @@ -1083,7 +1085,9 @@ static int cio2_v4l2_enum_fmt(struct file *file, void= *fh, } =20 /* The format is validated in cio2_video_link_validate() */ -static int cio2_v4l2_g_fmt(struct file *file, void *fh, struct v4l2_format= *f) +static int cio2_v4l2_g_fmt(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct cio2_queue *q =3D file_to_cio2_queue(file); =20 @@ -1092,7 +1096,9 @@ static int cio2_v4l2_g_fmt(struct file *file, void *f= h, struct v4l2_format *f) return 0; } =20 -static int cio2_v4l2_try_fmt(struct file *file, void *fh, struct v4l2_form= at *f) +static int cio2_v4l2_try_fmt(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { const struct ipu3_cio2_fmt *fmt; struct v4l2_pix_format_mplane *mpix =3D &f->fmt.pix_mp; @@ -1123,18 +1129,21 @@ static int cio2_v4l2_try_fmt(struct file *file, voi= d *fh, struct v4l2_format *f) return 0; } =20 -static int cio2_v4l2_s_fmt(struct file *file, void *fh, struct v4l2_format= *f) +static int cio2_v4l2_s_fmt(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct cio2_queue *q =3D file_to_cio2_queue(file); =20 - cio2_v4l2_try_fmt(file, fh, f); + cio2_v4l2_try_fmt(file, state, f); q->format =3D f->fmt.pix_mp; =20 return 0; } =20 static int -cio2_video_enum_input(struct file *file, void *fh, struct v4l2_input *inpu= t) +cio2_video_enum_input(struct file *file, struct video_device_state *state, + struct v4l2_input *input) { if (input->index > 0) return -EINVAL; @@ -1146,7 +1155,8 @@ cio2_video_enum_input(struct file *file, void *fh, st= ruct v4l2_input *input) } =20 static int -cio2_video_g_input(struct file *file, void *fh, unsigned int *input) +cio2_video_g_input(struct file *file, struct video_device_state *state, + unsigned int *input) { *input =3D 0; =20 @@ -1154,7 +1164,8 @@ cio2_video_g_input(struct file *file, void *fh, unsig= ned int *input) } =20 static int -cio2_video_s_input(struct file *file, void *fh, unsigned int input) +cio2_video_s_input(struct file *file, struct video_device_state *state, + unsigned int input) { return input =3D=3D 0 ? 0 : -EINVAL; } diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c b/drivers/media= /pci/intel/ipu6/ipu6-isys-video.c index f3f3bc0615e5dc698be5c479dfed8ef2eb49cbfb..21a61bd79274d172c9289bc144f= 2a92b19d256f9 100644 --- a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c @@ -139,7 +139,8 @@ ipu6_isys_get_isys_format(u32 pixelformat, u32 type) return default_pfmt; } =20 -static int ipu6_isys_vidioc_querycap(struct file *file, void *fh, +static int ipu6_isys_vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct ipu6_isys_video *av =3D video_drvdata(file); @@ -150,7 +151,8 @@ static int ipu6_isys_vidioc_querycap(struct file *file,= void *fh, return 0; } =20 -static int ipu6_isys_vidioc_enum_fmt(struct file *file, void *fh, +static int ipu6_isys_vidioc_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { unsigned int i, num_found; @@ -179,7 +181,8 @@ static int ipu6_isys_vidioc_enum_fmt(struct file *file,= void *fh, return -EINVAL; } =20 -static int ipu6_isys_vidioc_enum_framesizes(struct file *file, void *fh, +static int ipu6_isys_vidioc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { unsigned int i; @@ -205,7 +208,8 @@ static int ipu6_isys_vidioc_enum_framesizes(struct file= *file, void *fh, return -EINVAL; } =20 -static int ipu6_isys_vidioc_g_fmt_vid_cap(struct file *file, void *fh, +static int ipu6_isys_vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ipu6_isys_video *av =3D video_drvdata(file); @@ -215,7 +219,8 @@ static int ipu6_isys_vidioc_g_fmt_vid_cap(struct file *= file, void *fh, return 0; } =20 -static int ipu6_isys_vidioc_g_fmt_meta_cap(struct file *file, void *fh, +static int ipu6_isys_vidioc_g_fmt_meta_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ipu6_isys_video *av =3D video_drvdata(file); @@ -271,7 +276,8 @@ static void __ipu6_isys_vidioc_try_fmt_vid_cap(struct i= pu6_isys_video *av, f->fmt.pix.xfer_func =3D V4L2_XFER_FUNC_DEFAULT; } =20 -static int ipu6_isys_vidioc_try_fmt_vid_cap(struct file *file, void *fh, +static int ipu6_isys_vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ipu6_isys_video *av =3D video_drvdata(file); @@ -295,7 +301,8 @@ static int __ipu6_isys_vidioc_try_fmt_meta_cap(struct i= pu6_isys_video *av, return 0; } =20 -static int ipu6_isys_vidioc_try_fmt_meta_cap(struct file *file, void *fh, +static int ipu6_isys_vidioc_try_fmt_meta_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ipu6_isys_video *av =3D video_drvdata(file); @@ -305,18 +312,20 @@ static int ipu6_isys_vidioc_try_fmt_meta_cap(struct f= ile *file, void *fh, return 0; } =20 -static int ipu6_isys_vidioc_s_fmt_vid_cap(struct file *file, void *fh, +static int ipu6_isys_vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ipu6_isys_video *av =3D video_drvdata(file); =20 - ipu6_isys_vidioc_try_fmt_vid_cap(file, fh, f); + ipu6_isys_vidioc_try_fmt_vid_cap(file, state, f); av->pix_fmt =3D f->fmt.pix; =20 return 0; } =20 -static int ipu6_isys_vidioc_s_fmt_meta_cap(struct file *file, void *fh, +static int ipu6_isys_vidioc_s_fmt_meta_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ipu6_isys_video *av =3D video_drvdata(file); @@ -324,13 +333,14 @@ static int ipu6_isys_vidioc_s_fmt_meta_cap(struct fil= e *file, void *fh, if (vb2_is_busy(&av->aq.vbq)) return -EBUSY; =20 - ipu6_isys_vidioc_try_fmt_meta_cap(file, fh, f); + ipu6_isys_vidioc_try_fmt_meta_cap(file, state, f); av->meta_fmt =3D f->fmt.meta; =20 return 0; } =20 -static int ipu6_isys_vidioc_reqbufs(struct file *file, void *priv, +static int ipu6_isys_vidioc_reqbufs(struct file *file, + struct video_device_state *state, struct v4l2_requestbuffers *p) { struct ipu6_isys_video *av =3D video_drvdata(file); @@ -343,10 +353,11 @@ static int ipu6_isys_vidioc_reqbufs(struct file *file= , void *priv, if (ret) return ret; =20 - return vb2_ioctl_reqbufs(file, priv, p); + return vb2_ioctl_reqbufs(file, state, p); } =20 -static int ipu6_isys_vidioc_create_bufs(struct file *file, void *priv, +static int ipu6_isys_vidioc_create_bufs(struct file *file, + struct video_device_state *state, struct v4l2_create_buffers *p) { struct ipu6_isys_video *av =3D video_drvdata(file); @@ -359,7 +370,7 @@ static int ipu6_isys_vidioc_create_bufs(struct file *fi= le, void *priv, if (ret) return ret; =20 - return vb2_ioctl_create_bufs(file, priv, p); + return vb2_ioctl_create_bufs(file, state, p); } =20 static int link_validate(struct media_link *link) diff --git a/drivers/media/pci/ivtv/ivtv-driver.c b/drivers/media/pci/ivtv/= ivtv-driver.c index 72a8f76a41f45091fdd4fe0335ecb828d555eb9c..a2016cbdb896df066158a2f85db= 8c8964cb95328 100644 --- a/drivers/media/pci/ivtv/ivtv-driver.c +++ b/drivers/media/pci/ivtv/ivtv-driver.c @@ -1249,13 +1249,9 @@ int ivtv_init_on_first_open(struct ivtv *itv) { struct v4l2_frequency vf; /* Needed to call ioctls later */ - struct ivtv_open_id fh; int fw_retry_count =3D 3; int video_input; =20 - fh.itv =3D itv; - fh.type =3D IVTV_ENC_STREAM_TYPE_MPG; - if (test_bit(IVTV_F_I_FAILED, &itv->i_flags)) return -ENXIO; =20 @@ -1297,13 +1293,13 @@ int ivtv_init_on_first_open(struct ivtv *itv) =20 video_input =3D itv->active_input; itv->active_input++; /* Force update of input */ - ivtv_s_input(NULL, &fh, video_input); + ivtv_s_input(NULL, NULL, video_input); =20 /* Let the VIDIOC_S_STD ioctl do all the work, keeps the code in one place. */ itv->std++; /* Force full standard initialization */ itv->std_out =3D itv->std; - ivtv_s_frequency(NULL, &fh, &vf); + ivtv_s_frequency(NULL, NULL, &vf); =20 if (itv->card->v4l2_capabilities & V4L2_CAP_VIDEO_OUTPUT) { /* Turn on the TV-out: ivtv_init_mpeg_decoder() initializes diff --git a/drivers/media/pci/ivtv/ivtv-ioctl.c b/drivers/media/pci/ivtv/i= vtv-ioctl.c index 84c73bd22f2daf405ba5ef98894b98d40e5c7cf2..f529f0c963686b733dfabf1e44b= 1359925cdb1ee 100644 --- a/drivers/media/pci/ivtv/ivtv-ioctl.c +++ b/drivers/media/pci/ivtv/ivtv-ioctl.c @@ -306,7 +306,9 @@ static int ivtv_video_command(struct ivtv *itv, struct = ivtv_open_id *id, return 0; } =20 -static int ivtv_g_fmt_sliced_vbi_out(struct file *file, void *fh, struct v= 4l2_format *fmt) +static int ivtv_g_fmt_sliced_vbi_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct ivtv *itv =3D file2id(file)->itv; struct v4l2_sliced_vbi_format *vbifmt =3D &fmt->fmt.sliced; @@ -328,7 +330,9 @@ static int ivtv_g_fmt_sliced_vbi_out(struct file *file,= void *fh, struct v4l2_fo return 0; } =20 -static int ivtv_g_fmt_vid_cap(struct file *file, void *fh, struct v4l2_for= mat *fmt) +static int ivtv_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct ivtv_open_id *id =3D file2id(file); struct ivtv *itv =3D id->itv; @@ -351,7 +355,9 @@ static int ivtv_g_fmt_vid_cap(struct file *file, void *= fh, struct v4l2_format *f return 0; } =20 -static int ivtv_g_fmt_vbi_cap(struct file *file, void *fh, struct v4l2_for= mat *fmt) +static int ivtv_g_fmt_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct ivtv *itv =3D file2id(file)->itv; struct v4l2_vbi_format *vbifmt =3D &fmt->fmt.vbi; @@ -369,7 +375,9 @@ static int ivtv_g_fmt_vbi_cap(struct file *file, void *= fh, struct v4l2_format *f return 0; } =20 -static int ivtv_g_fmt_sliced_vbi_cap(struct file *file, void *fh, struct v= 4l2_format *fmt) +static int ivtv_g_fmt_sliced_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct v4l2_sliced_vbi_format *vbifmt =3D &fmt->fmt.sliced; struct ivtv_open_id *id =3D file2id(file); @@ -392,7 +400,9 @@ static int ivtv_g_fmt_sliced_vbi_cap(struct file *file,= void *fh, struct v4l2_fo return 0; } =20 -static int ivtv_g_fmt_vid_out(struct file *file, void *fh, struct v4l2_for= mat *fmt) +static int ivtv_g_fmt_vid_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct ivtv_open_id *id =3D file2id(file); struct ivtv *itv =3D id->itv; @@ -432,7 +442,9 @@ static int ivtv_g_fmt_vid_out(struct file *file, void *= fh, struct v4l2_format *f return 0; } =20 -static int ivtv_g_fmt_vid_out_overlay(struct file *file, void *fh, struct = v4l2_format *fmt) +static int ivtv_g_fmt_vid_out_overlay(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct ivtv *itv =3D file2id(file)->itv; struct ivtv_stream *s =3D &itv->streams[file2id(file)->type]; @@ -454,12 +466,16 @@ static int ivtv_g_fmt_vid_out_overlay(struct file *fi= le, void *fh, struct v4l2_f return 0; } =20 -static int ivtv_try_fmt_sliced_vbi_out(struct file *file, void *fh, struct= v4l2_format *fmt) +static int ivtv_try_fmt_sliced_vbi_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { - return ivtv_g_fmt_sliced_vbi_out(file, fh, fmt); + return ivtv_g_fmt_sliced_vbi_out(file, state, fmt); } =20 -static int ivtv_try_fmt_vid_cap(struct file *file, void *fh, struct v4l2_f= ormat *fmt) +static int ivtv_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct ivtv_open_id *id =3D file2id(file); struct ivtv *itv =3D id->itv; @@ -476,25 +492,29 @@ static int ivtv_try_fmt_vid_cap(struct file *file, vo= id *fh, struct v4l2_format } h =3D min(h, itv->is_50hz ? 576 : 480); h =3D max(h, min_h); - ivtv_g_fmt_vid_cap(file, fh, fmt); + ivtv_g_fmt_vid_cap(file, state, fmt); fmt->fmt.pix.width =3D w; fmt->fmt.pix.height =3D h; return 0; } =20 -static int ivtv_try_fmt_vbi_cap(struct file *file, void *fh, struct v4l2_f= ormat *fmt) +static int ivtv_try_fmt_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { - return ivtv_g_fmt_vbi_cap(file, fh, fmt); + return ivtv_g_fmt_vbi_cap(file, state, fmt); } =20 -static int ivtv_try_fmt_sliced_vbi_cap(struct file *file, void *fh, struct= v4l2_format *fmt) +static int ivtv_try_fmt_sliced_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct v4l2_sliced_vbi_format *vbifmt =3D &fmt->fmt.sliced; struct ivtv_open_id *id =3D file2id(file); struct ivtv *itv =3D id->itv; =20 if (id->type =3D=3D IVTV_DEC_STREAM_TYPE_VBI) - return ivtv_g_fmt_sliced_vbi_cap(file, fh, fmt); + return ivtv_g_fmt_sliced_vbi_cap(file, state, fmt); =20 /* set sliced VBI capture format */ vbifmt->io_size =3D sizeof(struct v4l2_sliced_vbi_data) * 36; @@ -508,13 +528,15 @@ static int ivtv_try_fmt_sliced_vbi_cap(struct file *f= ile, void *fh, struct v4l2_ return 0; } =20 -static int ivtv_try_fmt_vid_out(struct file *file, void *fh, struct v4l2_f= ormat *fmt) +static int ivtv_try_fmt_vid_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct ivtv_open_id *id =3D file2id(file); s32 w =3D fmt->fmt.pix.width; s32 h =3D fmt->fmt.pix.height; int field =3D fmt->fmt.pix.field; - int ret =3D ivtv_g_fmt_vid_out(file, fh, fmt); + int ret =3D ivtv_g_fmt_vid_out(file, state, fmt); =20 w =3D min(w, 720); w =3D max(w, 2); @@ -542,7 +564,9 @@ static int ivtv_try_fmt_vid_out(struct file *file, void= *fh, struct v4l2_format return ret; } =20 -static int ivtv_try_fmt_vid_out_overlay(struct file *file, void *fh, struc= t v4l2_format *fmt) +static int ivtv_try_fmt_vid_out_overlay(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct ivtv *itv =3D file2id(file)->itv; struct ivtv_stream *s =3D &itv->streams[file2id(file)->type]; @@ -553,25 +577,29 @@ static int ivtv_try_fmt_vid_out_overlay(struct file *= file, void *fh, struct v4l2 return -EINVAL; if (!itv->osd_video_pbase) return -EINVAL; - ivtv_g_fmt_vid_out_overlay(file, fh, fmt); + ivtv_g_fmt_vid_out_overlay(file, state, fmt); fmt->fmt.win.chromakey =3D chromakey; fmt->fmt.win.global_alpha =3D global_alpha; return 0; } =20 -static int ivtv_s_fmt_sliced_vbi_out(struct file *file, void *fh, struct v= 4l2_format *fmt) +static int ivtv_s_fmt_sliced_vbi_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { - return ivtv_g_fmt_sliced_vbi_out(file, fh, fmt); + return ivtv_g_fmt_sliced_vbi_out(file, state, fmt); } =20 -static int ivtv_s_fmt_vid_cap(struct file *file, void *fh, struct v4l2_for= mat *fmt) +static int ivtv_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct ivtv_open_id *id =3D file2id(file); struct ivtv *itv =3D id->itv; struct v4l2_subdev_format format =3D { .which =3D V4L2_SUBDEV_FORMAT_ACTIVE, }; - int ret =3D ivtv_try_fmt_vid_cap(file, fh, fmt); + int ret =3D ivtv_try_fmt_vid_cap(file, state, fmt); int w =3D fmt->fmt.pix.width; int h =3D fmt->fmt.pix.height; =20 @@ -592,10 +620,12 @@ static int ivtv_s_fmt_vid_cap(struct file *file, void= *fh, struct v4l2_format *f format.format.height =3D h; format.format.code =3D MEDIA_BUS_FMT_FIXED; v4l2_subdev_call(itv->sd_video, pad, set_fmt, NULL, &format); - return ivtv_g_fmt_vid_cap(file, fh, fmt); + return ivtv_g_fmt_vid_cap(file, state, fmt); } =20 -static int ivtv_s_fmt_vbi_cap(struct file *file, void *fh, struct v4l2_for= mat *fmt) +static int ivtv_s_fmt_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct ivtv *itv =3D file2id(file)->itv; =20 @@ -604,15 +634,17 @@ static int ivtv_s_fmt_vbi_cap(struct file *file, void= *fh, struct v4l2_format *f itv->vbi.sliced_in->service_set =3D 0; itv->vbi.in.type =3D V4L2_BUF_TYPE_VBI_CAPTURE; v4l2_subdev_call(itv->sd_video, vbi, s_raw_fmt, &fmt->fmt.vbi); - return ivtv_g_fmt_vbi_cap(file, fh, fmt); + return ivtv_g_fmt_vbi_cap(file, state, fmt); } =20 -static int ivtv_s_fmt_sliced_vbi_cap(struct file *file, void *fh, struct v= 4l2_format *fmt) +static int ivtv_s_fmt_sliced_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct v4l2_sliced_vbi_format *vbifmt =3D &fmt->fmt.sliced; struct ivtv_open_id *id =3D file2id(file); struct ivtv *itv =3D id->itv; - int ret =3D ivtv_try_fmt_sliced_vbi_cap(file, fh, fmt); + int ret =3D ivtv_try_fmt_sliced_vbi_cap(file, state, fmt); =20 if (ret || id->type =3D=3D IVTV_DEC_STREAM_TYPE_VBI) return ret; @@ -626,12 +658,14 @@ static int ivtv_s_fmt_sliced_vbi_cap(struct file *fil= e, void *fh, struct v4l2_fo return 0; } =20 -static int ivtv_s_fmt_vid_out(struct file *file, void *fh, struct v4l2_for= mat *fmt) +static int ivtv_s_fmt_vid_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct ivtv_open_id *id =3D file2id(file); struct ivtv *itv =3D id->itv; struct yuv_playback_info *yi =3D &itv->yuv_info; - int ret =3D ivtv_try_fmt_vid_out(file, fh, fmt); + int ret =3D ivtv_try_fmt_vid_out(file, state, fmt); =20 if (ret) return ret; @@ -671,10 +705,12 @@ static int ivtv_s_fmt_vid_out(struct file *file, void= *fh, struct v4l2_format *f return 0; } =20 -static int ivtv_s_fmt_vid_out_overlay(struct file *file, void *fh, struct = v4l2_format *fmt) +static int ivtv_s_fmt_vid_out_overlay(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct ivtv *itv =3D file2id(file)->itv; - int ret =3D ivtv_try_fmt_vid_out_overlay(file, fh, fmt); + int ret =3D ivtv_try_fmt_vid_out_overlay(file, state, fmt); =20 if (ret =3D=3D 0) { itv->osd_chroma_key =3D fmt->fmt.win.chromakey; @@ -708,7 +744,9 @@ static int ivtv_itvc(struct ivtv *itv, bool get, u64 re= g, u64 *val) return 0; } =20 -static int ivtv_g_register(struct file *file, void *fh, struct v4l2_dbg_re= gister *reg) +static int ivtv_g_register(struct file *file, + struct video_device_state *state, + struct v4l2_dbg_register *reg) { struct ivtv *itv =3D file2id(file)->itv; =20 @@ -716,7 +754,9 @@ static int ivtv_g_register(struct file *file, void *fh,= struct v4l2_dbg_register return ivtv_itvc(itv, true, reg->reg, ®->val); } =20 -static int ivtv_s_register(struct file *file, void *fh, const struct v4l2_= dbg_register *reg) +static int ivtv_s_register(struct file *file, + struct video_device_state *state, + const struct v4l2_dbg_register *reg) { struct ivtv *itv =3D file2id(file)->itv; u64 val =3D reg->val; @@ -725,7 +765,8 @@ static int ivtv_s_register(struct file *file, void *fh,= const struct v4l2_dbg_re } #endif =20 -static int ivtv_querycap(struct file *file, void *fh, struct v4l2_capabili= ty *vcap) +static int ivtv_querycap(struct file *file, struct video_device_state *sta= te, + struct v4l2_capability *vcap) { struct ivtv_open_id *id =3D file2id(file); struct ivtv *itv =3D id->itv; @@ -736,14 +777,16 @@ static int ivtv_querycap(struct file *file, void *fh,= struct v4l2_capability *vc return 0; } =20 -static int ivtv_enumaudio(struct file *file, void *fh, struct v4l2_audio *= vin) +static int ivtv_enumaudio(struct file *file, struct video_device_state *st= ate, + struct v4l2_audio *vin) { struct ivtv *itv =3D file2id(file)->itv; =20 return ivtv_get_audio_input(itv, vin->index, vin); } =20 -static int ivtv_g_audio(struct file *file, void *fh, struct v4l2_audio *vi= n) +static int ivtv_g_audio(struct file *file, struct video_device_state *stat= e, + struct v4l2_audio *vin) { struct ivtv *itv =3D file2id(file)->itv; =20 @@ -751,7 +794,8 @@ static int ivtv_g_audio(struct file *file, void *fh, st= ruct v4l2_audio *vin) return ivtv_get_audio_input(itv, vin->index, vin); } =20 -static int ivtv_s_audio(struct file *file, void *fh, const struct v4l2_aud= io *vout) +static int ivtv_s_audio(struct file *file, struct video_device_state *stat= e, + const struct v4l2_audio *vout) { struct ivtv *itv =3D file2id(file)->itv; =20 @@ -764,7 +808,9 @@ static int ivtv_s_audio(struct file *file, void *fh, co= nst struct v4l2_audio *vo return 0; } =20 -static int ivtv_enumaudout(struct file *file, void *fh, struct v4l2_audioo= ut *vin) +static int ivtv_enumaudout(struct file *file, + struct video_device_state *state, + struct v4l2_audioout *vin) { struct ivtv *itv =3D file2id(file)->itv; =20 @@ -772,7 +818,8 @@ static int ivtv_enumaudout(struct file *file, void *fh,= struct v4l2_audioout *vi return ivtv_get_audio_output(itv, vin->index, vin); } =20 -static int ivtv_g_audout(struct file *file, void *fh, struct v4l2_audioout= *vin) +static int ivtv_g_audout(struct file *file, struct video_device_state *sta= te, + struct v4l2_audioout *vin) { struct ivtv *itv =3D file2id(file)->itv; =20 @@ -780,7 +827,8 @@ static int ivtv_g_audout(struct file *file, void *fh, s= truct v4l2_audioout *vin) return ivtv_get_audio_output(itv, vin->index, vin); } =20 -static int ivtv_s_audout(struct file *file, void *fh, const struct v4l2_au= dioout *vout) +static int ivtv_s_audout(struct file *file, struct video_device_state *sta= te, + const struct v4l2_audioout *vout) { struct ivtv *itv =3D file2id(file)->itv; =20 @@ -789,7 +837,9 @@ static int ivtv_s_audout(struct file *file, void *fh, c= onst struct v4l2_audioout return 0; } =20 -static int ivtv_enum_input(struct file *file, void *fh, struct v4l2_input = *vin) +static int ivtv_enum_input(struct file *file, + struct video_device_state *state, + struct v4l2_input *vin) { struct ivtv *itv =3D file2id(file)->itv; =20 @@ -797,15 +847,18 @@ static int ivtv_enum_input(struct file *file, void *f= h, struct v4l2_input *vin) return ivtv_get_input(itv, vin->index, vin); } =20 -static int ivtv_enum_output(struct file *file, void *fh, struct v4l2_outpu= t *vout) +static int ivtv_enum_output(struct file *file, + struct video_device_state *state, + struct v4l2_output *vout) { struct ivtv *itv =3D file2id(file)->itv; =20 return ivtv_get_output(itv, vout->index, vout); } =20 -static int ivtv_g_pixelaspect(struct file *file, void *fh, - int type, struct v4l2_fract *f) +static int ivtv_g_pixelaspect(struct file *file, + struct video_device_state *state, int type, + struct v4l2_fract *f) { struct ivtv_open_id *id =3D file2id(file); struct ivtv *itv =3D id->itv; @@ -822,7 +875,8 @@ static int ivtv_g_pixelaspect(struct file *file, void *= fh, return 0; } =20 -static int ivtv_s_selection(struct file *file, void *fh, +static int ivtv_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct ivtv_open_id *id =3D file2id(file); @@ -865,7 +919,8 @@ static int ivtv_s_selection(struct file *file, void *fh, return -EINVAL; } =20 -static int ivtv_g_selection(struct file *file, void *fh, +static int ivtv_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct ivtv_open_id *id =3D file2id(file); @@ -911,7 +966,9 @@ static int ivtv_g_selection(struct file *file, void *fh, return -EINVAL; } =20 -static int ivtv_enum_fmt_vid_cap(struct file *file, void *fh, struct v4l2_= fmtdesc *fmt) +static int ivtv_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *fmt) { static const struct v4l2_fmtdesc hm12 =3D { .type =3D V4L2_BUF_TYPE_VIDEO_CAPTURE, @@ -938,7 +995,9 @@ static int ivtv_enum_fmt_vid_cap(struct file *file, voi= d *fh, struct v4l2_fmtdes return 0; } =20 -static int ivtv_enum_fmt_vid_out(struct file *file, void *fh, struct v4l2_= fmtdesc *fmt) +static int ivtv_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *fmt) { static const struct v4l2_fmtdesc hm12 =3D { .type =3D V4L2_BUF_TYPE_VIDEO_OUTPUT, @@ -965,7 +1024,8 @@ static int ivtv_enum_fmt_vid_out(struct file *file, vo= id *fh, struct v4l2_fmtdes return 0; } =20 -static int ivtv_g_input(struct file *file, void *fh, unsigned int *i) +static int ivtv_g_input(struct file *file, struct video_device_state *stat= e, + unsigned int *i) { struct ivtv *itv =3D file2id(file)->itv; =20 @@ -974,7 +1034,8 @@ static int ivtv_g_input(struct file *file, void *fh, u= nsigned int *i) return 0; } =20 -int ivtv_s_input(struct file *file, void *fh, unsigned int inp) +int ivtv_s_input(struct file *file, struct video_device_state *state, + unsigned int inp) { struct ivtv *itv =3D file2id(file)->itv; v4l2_std_id std; @@ -1017,7 +1078,8 @@ int ivtv_s_input(struct file *file, void *fh, unsigne= d int inp) return 0; } =20 -static int ivtv_g_output(struct file *file, void *fh, unsigned int *i) +static int ivtv_g_output(struct file *file, struct video_device_state *sta= te, + unsigned int *i) { struct ivtv *itv =3D file2id(file)->itv; =20 @@ -1029,7 +1091,8 @@ static int ivtv_g_output(struct file *file, void *fh,= unsigned int *i) return 0; } =20 -static int ivtv_s_output(struct file *file, void *fh, unsigned int outp) +static int ivtv_s_output(struct file *file, struct video_device_state *sta= te, + unsigned int outp) { struct ivtv *itv =3D file2id(file)->itv; =20 @@ -1051,7 +1114,9 @@ static int ivtv_s_output(struct file *file, void *fh,= unsigned int outp) return 0; } =20 -static int ivtv_g_frequency(struct file *file, void *fh, struct v4l2_frequ= ency *vf) +static int ivtv_g_frequency(struct file *file, + struct video_device_state *state, + struct v4l2_frequency *vf) { struct ivtv *itv =3D file2id(file)->itv; struct ivtv_stream *s =3D &itv->streams[file2id(file)->type]; @@ -1065,7 +1130,8 @@ static int ivtv_g_frequency(struct file *file, void *= fh, struct v4l2_frequency * return 0; } =20 -int ivtv_s_frequency(struct file *file, void *fh, const struct v4l2_freque= ncy *vf) +int ivtv_s_frequency(struct file *file, struct video_device_state *state, + const struct v4l2_frequency *vf) { struct ivtv *itv =3D file2id(file)->itv; struct ivtv_stream *s =3D &itv->streams[file2id(file)->type]; @@ -1082,7 +1148,8 @@ int ivtv_s_frequency(struct file *file, void *fh, con= st struct v4l2_frequency *v return 0; } =20 -static int ivtv_g_std(struct file *file, void *fh, v4l2_std_id *std) +static int ivtv_g_std(struct file *file, struct video_device_state *state, + v4l2_std_id *std) { struct ivtv *itv =3D file2id(file)->itv; =20 @@ -1155,7 +1222,8 @@ void ivtv_s_std_dec(struct ivtv *itv, v4l2_std_id std) } } =20 -static int ivtv_s_std(struct file *file, void *fh, v4l2_std_id std) +static int ivtv_s_std(struct file *file, struct video_device_state *state, + v4l2_std_id std) { struct ivtv *itv =3D file2id(file)->itv; =20 @@ -1183,7 +1251,8 @@ static int ivtv_s_std(struct file *file, void *fh, v4= l2_std_id std) return 0; } =20 -static int ivtv_s_tuner(struct file *file, void *fh, const struct v4l2_tun= er *vt) +static int ivtv_s_tuner(struct file *file, struct video_device_state *stat= e, + const struct v4l2_tuner *vt) { struct ivtv_open_id *id =3D file2id(file); struct ivtv *itv =3D id->itv; @@ -1196,7 +1265,8 @@ static int ivtv_s_tuner(struct file *file, void *fh, = const struct v4l2_tuner *vt return 0; } =20 -static int ivtv_g_tuner(struct file *file, void *fh, struct v4l2_tuner *vt) +static int ivtv_g_tuner(struct file *file, struct video_device_state *stat= e, + struct v4l2_tuner *vt) { struct ivtv *itv =3D file2id(file)->itv; =20 @@ -1212,7 +1282,9 @@ static int ivtv_g_tuner(struct file *file, void *fh, = struct v4l2_tuner *vt) return 0; } =20 -static int ivtv_g_sliced_vbi_cap(struct file *file, void *fh, struct v4l2_= sliced_vbi_cap *cap) +static int ivtv_g_sliced_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_sliced_vbi_cap *cap) { struct ivtv *itv =3D file2id(file)->itv; int set =3D itv->is_50hz ? V4L2_SLICED_VBI_625 : V4L2_SLICED_VBI_525; @@ -1247,7 +1319,9 @@ static int ivtv_g_sliced_vbi_cap(struct file *file, v= oid *fh, struct v4l2_sliced return 0; } =20 -static int ivtv_g_enc_index(struct file *file, void *fh, struct v4l2_enc_i= dx *idx) +static int ivtv_g_enc_index(struct file *file, + struct video_device_state *state, + struct v4l2_enc_idx *idx) { struct ivtv *itv =3D file2id(file)->itv; struct v4l2_enc_idx_entry *e =3D idx->entry; @@ -1273,7 +1347,9 @@ static int ivtv_g_enc_index(struct file *file, void *= fh, struct v4l2_enc_idx *id return 0; } =20 -static int ivtv_encoder_cmd(struct file *file, void *fh, struct v4l2_encod= er_cmd *enc) +static int ivtv_encoder_cmd(struct file *file, + struct video_device_state *state, + struct v4l2_encoder_cmd *enc) { struct ivtv_open_id *id =3D file2id(file); struct ivtv *itv =3D id->itv; @@ -1325,7 +1401,9 @@ static int ivtv_encoder_cmd(struct file *file, void *= fh, struct v4l2_encoder_cmd return 0; } =20 -static int ivtv_try_encoder_cmd(struct file *file, void *fh, struct v4l2_e= ncoder_cmd *enc) +static int ivtv_try_encoder_cmd(struct file *file, + struct video_device_state *state, + struct v4l2_encoder_cmd *enc) { struct ivtv *itv =3D file2id(file)->itv; =20 @@ -1355,7 +1433,8 @@ static int ivtv_try_encoder_cmd(struct file *file, vo= id *fh, struct v4l2_encoder } } =20 -static int ivtv_g_fbuf(struct file *file, void *fh, struct v4l2_framebuffe= r *fb) +static int ivtv_g_fbuf(struct file *file, struct video_device_state *state, + struct v4l2_framebuffer *fb) { struct ivtv *itv =3D file2id(file)->itv; struct ivtv_stream *s =3D &itv->streams[file2id(file)->type]; @@ -1442,7 +1521,8 @@ static int ivtv_g_fbuf(struct file *file, void *fh, s= truct v4l2_framebuffer *fb) return 0; } =20 -static int ivtv_s_fbuf(struct file *file, void *fh, const struct v4l2_fram= ebuffer *fb) +static int ivtv_s_fbuf(struct file *file, struct video_device_state *state, + const struct v4l2_framebuffer *fb) { struct ivtv_open_id *id =3D file2id(file); struct ivtv *itv =3D id->itv; @@ -1463,7 +1543,8 @@ static int ivtv_s_fbuf(struct file *file, void *fh, c= onst struct v4l2_framebuffe return 0; } =20 -static int ivtv_overlay(struct file *file, void *fh, unsigned int on) +static int ivtv_overlay(struct file *file, struct video_device_state *stat= e, + unsigned int on) { struct ivtv_open_id *id =3D file2id(file); struct ivtv *itv =3D id->itv; @@ -1490,7 +1571,8 @@ static int ivtv_subscribe_event(struct v4l2_fh *fh, c= onst struct v4l2_event_subs } } =20 -static int ivtv_log_status(struct file *file, void *fh) +static int ivtv_log_status(struct file *file, + struct video_device_state *state) { struct ivtv *itv =3D file2id(file)->itv; u32 data[CX2341X_MBOX_MAX_DATA]; @@ -1582,7 +1664,9 @@ static int ivtv_log_status(struct file *file, void *f= h) return 0; } =20 -static int ivtv_decoder_cmd(struct file *file, void *fh, struct v4l2_decod= er_cmd *dec) +static int ivtv_decoder_cmd(struct file *file, + struct video_device_state *state, + struct v4l2_decoder_cmd *dec) { struct ivtv_open_id *id =3D file2id(file); struct ivtv *itv =3D id->itv; @@ -1591,7 +1675,9 @@ static int ivtv_decoder_cmd(struct file *file, void *= fh, struct v4l2_decoder_cmd return ivtv_video_command(itv, id, dec, false); } =20 -static int ivtv_try_decoder_cmd(struct file *file, void *fh, struct v4l2_d= ecoder_cmd *dec) +static int ivtv_try_decoder_cmd(struct file *file, + struct video_device_state *state, + struct v4l2_decoder_cmd *dec) { struct ivtv_open_id *id =3D file2id(file); struct ivtv *itv =3D id->itv; @@ -1642,7 +1728,8 @@ static int ivtv_decoder_ioctls(struct file *filp, uns= igned int cmd, void *arg) return 0; } =20 -static long ivtv_default(struct file *file, void *fh, bool valid_prio, +static long ivtv_default(struct file *file, struct video_device_state *sta= te, + bool valid_prio, unsigned int cmd, void *arg) { struct ivtv *itv =3D file2id(file)->itv; diff --git a/drivers/media/pci/ivtv/ivtv-ioctl.h b/drivers/media/pci/ivtv/i= vtv-ioctl.h index 7f8c6f43d397f050a8116429db7a9a7accc0336b..59adcae0c2f39020b73f1100c0a= 6ae7051b528a8 100644 --- a/drivers/media/pci/ivtv/ivtv-ioctl.h +++ b/drivers/media/pci/ivtv/ivtv-ioctl.h @@ -17,7 +17,9 @@ int ivtv_set_speed(struct ivtv *itv, int speed); void ivtv_set_funcs(struct video_device *vdev); void ivtv_s_std_enc(struct ivtv *itv, v4l2_std_id std); void ivtv_s_std_dec(struct ivtv *itv, v4l2_std_id std); -int ivtv_s_frequency(struct file *file, void *fh, const struct v4l2_freque= ncy *vf); -int ivtv_s_input(struct file *file, void *fh, unsigned int inp); +int ivtv_s_frequency(struct file *file, struct video_device_state *state, + const struct v4l2_frequency *vf); +int ivtv_s_input(struct file *file, struct video_device_state *state, + unsigned int inp); =20 #endif diff --git a/drivers/media/pci/mgb4/mgb4_vin.c b/drivers/media/pci/mgb4/mgb= 4_vin.c index 42c327bc50e10af249288d2dbd77efd311abfdbd..0dbc464e96dbbdd6aa9eaf3d4be= 1c31c396473ef 100644 --- a/drivers/media/pci/mgb4/mgb4_vin.c +++ b/drivers/media/pci/mgb4/mgb4_vin.c @@ -346,7 +346,8 @@ static const struct v4l2_file_operations video_fops =3D= { .poll =3D vb2_fop_poll, }; =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, KBUILD_MODNAME, sizeof(cap->driver)); @@ -355,7 +356,8 @@ static int vidioc_querycap(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_enum_fmt(struct file *file, void *priv, +static int vidioc_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct mgb4_vin_dev *vindev =3D video_drvdata(file); @@ -372,7 +374,8 @@ static int vidioc_enum_fmt(struct file *file, void *pri= v, } } =20 -static int vidioc_enum_frameintervals(struct file *file, void *priv, +static int vidioc_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *ival) { struct mgb4_vin_dev *vindev =3D video_drvdata(file); @@ -398,7 +401,8 @@ static int vidioc_enum_frameintervals(struct file *file= , void *priv, return 0; } =20 -static int vidioc_g_fmt(struct file *file, void *priv, struct v4l2_format = *f) +static int vidioc_g_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct mgb4_vin_dev *vindev =3D video_drvdata(file); struct mgb4_regs *video =3D &vindev->mgbdev->video; @@ -429,7 +433,8 @@ static int vidioc_g_fmt(struct file *file, void *priv, = struct v4l2_format *f) return 0; } =20 -static int vidioc_try_fmt(struct file *file, void *priv, struct v4l2_forma= t *f) +static int vidioc_try_fmt(struct file *file, struct video_device_state *st= ate, + struct v4l2_format *f) { struct mgb4_vin_dev *vindev =3D video_drvdata(file); struct mgb4_regs *video =3D &vindev->mgbdev->video; @@ -461,7 +466,8 @@ static int vidioc_try_fmt(struct file *file, void *priv= , struct v4l2_format *f) return 0; } =20 -static int vidioc_s_fmt(struct file *file, void *priv, struct v4l2_format = *f) +static int vidioc_s_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct mgb4_vin_dev *vindev =3D video_drvdata(file); struct mgb4_regs *video =3D &vindev->mgbdev->video; @@ -470,7 +476,7 @@ static int vidioc_s_fmt(struct file *file, void *priv, = struct v4l2_format *f) if (vb2_is_busy(&vindev->queue)) return -EBUSY; =20 - vidioc_try_fmt(file, priv, f); + vidioc_try_fmt(file, state, f); =20 config =3D mgb4_read_reg(video, vindev->config->regs.config); if (f->fmt.pix.pixelformat =3D=3D V4L2_PIX_FMT_YUYV) { @@ -499,7 +505,8 @@ static int vidioc_s_fmt(struct file *file, void *priv, = struct v4l2_format *f) return 0; } =20 -static int vidioc_enum_input(struct file *file, void *priv, +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { struct mgb4_vin_dev *vindev =3D video_drvdata(file); @@ -523,7 +530,8 @@ static int vidioc_enum_input(struct file *file, void *p= riv, return 0; } =20 -static int vidioc_enum_framesizes(struct file *file, void *fh, +static int vidioc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct mgb4_vin_dev *vindev =3D video_drvdata(file); @@ -539,18 +547,21 @@ static int vidioc_enum_framesizes(struct file *file, = void *fh, return 0; } =20 -static int vidioc_s_input(struct file *file, void *priv, unsigned int i) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int i) { return (i =3D=3D 0) ? 0 : -EINVAL; } =20 -static int vidioc_g_input(struct file *file, void *priv, unsigned int *i) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { *i =3D 0; return 0; } =20 -static int vidioc_g_parm(struct file *file, void *priv, +static int vidioc_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct mgb4_vin_dev *vindev =3D video_drvdata(file); @@ -576,7 +587,8 @@ static int vidioc_g_parm(struct file *file, void *priv, return 0; } =20 -static int vidioc_s_parm(struct file *file, void *priv, +static int vidioc_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct mgb4_vin_dev *vindev =3D video_drvdata(file); @@ -597,10 +609,11 @@ static int vidioc_s_parm(struct file *file, void *pri= v, mgb4_write_reg(video, vindev->config->regs.timer, timer); } =20 - return vidioc_g_parm(file, priv, parm); + return vidioc_g_parm(file, state, parm); } =20 -static int vidioc_s_dv_timings(struct file *file, void *fh, +static int vidioc_s_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct mgb4_vin_dev *vindev =3D video_drvdata(file); @@ -620,7 +633,8 @@ static int vidioc_s_dv_timings(struct file *file, void = *fh, return 0; } =20 -static int vidioc_g_dv_timings(struct file *file, void *fh, +static int vidioc_g_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct mgb4_vin_dev *vindev =3D video_drvdata(file); @@ -629,7 +643,8 @@ static int vidioc_g_dv_timings(struct file *file, void = *fh, return 0; } =20 -static int vidioc_query_dv_timings(struct file *file, void *fh, +static int vidioc_query_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct mgb4_vin_dev *vindev =3D video_drvdata(file); @@ -637,7 +652,8 @@ static int vidioc_query_dv_timings(struct file *file, v= oid *fh, return get_timings(vindev, timings); } =20 -static int vidioc_enum_dv_timings(struct file *file, void *fh, +static int vidioc_enum_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_enum_dv_timings *timings) { struct mgb4_vin_dev *vindev =3D video_drvdata(file); @@ -650,7 +666,8 @@ static int vidioc_enum_dv_timings(struct file *file, vo= id *fh, return 0; } =20 -static int vidioc_dv_timings_cap(struct file *file, void *fh, +static int vidioc_dv_timings_cap(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings_cap *cap) { *cap =3D video_timings_cap; diff --git a/drivers/media/pci/mgb4/mgb4_vout.c b/drivers/media/pci/mgb4/mg= b4_vout.c index c179c425e167cb3a2bbb0919dba3749dedeeb070..3e71f2872421780ee05d5693077= a912231f9f781 100644 --- a/drivers/media/pci/mgb4/mgb4_vout.c +++ b/drivers/media/pci/mgb4/mgb4_vout.c @@ -232,7 +232,8 @@ static const struct vb2_ops queue_ops =3D { .stop_streaming =3D stop_streaming, }; =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, KBUILD_MODNAME, sizeof(cap->driver)); @@ -241,7 +242,8 @@ static int vidioc_querycap(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_enum_fmt(struct file *file, void *priv, +static int vidioc_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct mgb4_vin_dev *voutdev =3D video_drvdata(file); @@ -258,7 +260,8 @@ static int vidioc_enum_fmt(struct file *file, void *pri= v, } } =20 -static int vidioc_g_fmt(struct file *file, void *priv, struct v4l2_format = *f) +static int vidioc_g_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct mgb4_vout_dev *voutdev =3D video_drvdata(file); struct mgb4_regs *video =3D &voutdev->mgbdev->video; @@ -290,7 +293,8 @@ static int vidioc_g_fmt(struct file *file, void *priv, = struct v4l2_format *f) return 0; } =20 -static int vidioc_try_fmt(struct file *file, void *priv, struct v4l2_forma= t *f) +static int vidioc_try_fmt(struct file *file, struct video_device_state *st= ate, + struct v4l2_format *f) { struct mgb4_vout_dev *voutdev =3D video_drvdata(file); struct mgb4_regs *video =3D &voutdev->mgbdev->video; @@ -322,7 +326,8 @@ static int vidioc_try_fmt(struct file *file, void *priv= , struct v4l2_format *f) return 0; } =20 -static int vidioc_s_fmt(struct file *file, void *priv, struct v4l2_format = *f) +static int vidioc_s_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct mgb4_vout_dev *voutdev =3D video_drvdata(file); struct mgb4_regs *video =3D &voutdev->mgbdev->video; @@ -332,7 +337,7 @@ static int vidioc_s_fmt(struct file *file, void *priv, = struct v4l2_format *f) if (vb2_is_busy(&voutdev->queue)) return -EBUSY; =20 - ret =3D vidioc_try_fmt(file, priv, f); + ret =3D vidioc_try_fmt(file, state, f); if (ret < 0) return ret; =20 @@ -363,18 +368,21 @@ static int vidioc_s_fmt(struct file *file, void *priv= , struct v4l2_format *f) return 0; } =20 -static int vidioc_g_output(struct file *file, void *priv, unsigned int *i) +static int vidioc_g_output(struct file *file, + struct video_device_state *state, unsigned int *i) { *i =3D 0; return 0; } =20 -static int vidioc_s_output(struct file *file, void *priv, unsigned int i) +static int vidioc_s_output(struct file *file, + struct video_device_state *state, unsigned int i) { return i ? -EINVAL : 0; } =20 -static int vidioc_enum_output(struct file *file, void *priv, +static int vidioc_enum_output(struct file *file, + struct video_device_state *state, struct v4l2_output *out) { if (out->index !=3D 0) @@ -387,7 +395,8 @@ static int vidioc_enum_output(struct file *file, void *= priv, return 0; } =20 -static int vidioc_enum_frameintervals(struct file *file, void *priv, +static int vidioc_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *ival) { struct mgb4_vout_dev *voutdev =3D video_drvdata(file); @@ -415,7 +424,8 @@ static int vidioc_enum_frameintervals(struct file *file= , void *priv, return 0; } =20 -static int vidioc_g_parm(struct file *file, void *priv, +static int vidioc_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct mgb4_vout_dev *voutdev =3D video_drvdata(file); @@ -443,7 +453,8 @@ static int vidioc_g_parm(struct file *file, void *priv, return 0; } =20 -static int vidioc_s_parm(struct file *file, void *priv, +static int vidioc_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct mgb4_vout_dev *voutdev =3D video_drvdata(file); @@ -466,10 +477,11 @@ static int vidioc_s_parm(struct file *file, void *pri= v, mgb4_write_reg(video, voutdev->config->regs.timer, timer); } =20 - return vidioc_g_parm(file, priv, parm); + return vidioc_g_parm(file, state, parm); } =20 -static int vidioc_g_dv_timings(struct file *file, void *fh, +static int vidioc_g_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct mgb4_vout_dev *voutdev =3D video_drvdata(file); @@ -479,7 +491,8 @@ static int vidioc_g_dv_timings(struct file *file, void = *fh, return 0; } =20 -static int vidioc_s_dv_timings(struct file *file, void *fh, +static int vidioc_s_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct mgb4_vout_dev *voutdev =3D video_drvdata(file); @@ -489,7 +502,8 @@ static int vidioc_s_dv_timings(struct file *file, void = *fh, return 0; } =20 -static int vidioc_enum_dv_timings(struct file *file, void *fh, +static int vidioc_enum_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_enum_dv_timings *timings) { struct mgb4_vout_dev *voutdev =3D video_drvdata(file); @@ -502,7 +516,8 @@ static int vidioc_enum_dv_timings(struct file *file, vo= id *fh, return 0; } =20 -static int vidioc_dv_timings_cap(struct file *file, void *fh, +static int vidioc_dv_timings_cap(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings_cap *cap) { *cap =3D video_timings_cap; diff --git a/drivers/media/pci/saa7134/saa7134-empress.c b/drivers/media/pc= i/saa7134/saa7134-empress.c index 8c4f70e4177d1836ad685be851df63b234674c40..03fbced7af3e6d012c8444e4241= bd93c8c02b4ce 100644 --- a/drivers/media/pci/saa7134/saa7134-empress.c +++ b/drivers/media/pci/saa7134/saa7134-empress.c @@ -84,7 +84,8 @@ static const struct vb2_ops saa7134_empress_qops =3D { =20 /* ------------------------------------------------------------------ */ =20 -static int empress_enum_fmt_vid_cap(struct file *file, void *priv, +static int empress_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index !=3D 0) @@ -94,7 +95,8 @@ static int empress_enum_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int empress_g_fmt_vid_cap(struct file *file, void *priv, +static int empress_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct saa7134_dev *dev =3D video_drvdata(file); @@ -113,7 +115,8 @@ static int empress_g_fmt_vid_cap(struct file *file, voi= d *priv, return 0; } =20 -static int empress_s_fmt_vid_cap(struct file *file, void *priv, +static int empress_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct saa7134_dev *dev =3D video_drvdata(file); @@ -132,7 +135,8 @@ static int empress_s_fmt_vid_cap(struct file *file, voi= d *priv, return 0; } =20 -static int empress_try_fmt_vid_cap(struct file *file, void *priv, +static int empress_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct saa7134_dev *dev =3D video_drvdata(file); diff --git a/drivers/media/pci/saa7134/saa7134-video.c b/drivers/media/pci/= saa7134/saa7134-video.c index 4a51b873e47ad64b49f7c464f6e96d31ba3e313e..0486b7c18d2c676ee22972a0833= 65e6266769089 100644 --- a/drivers/media/pci/saa7134/saa7134-video.c +++ b/drivers/media/pci/saa7134/saa7134-video.c @@ -1011,8 +1011,9 @@ static __poll_t radio_poll(struct file *file, poll_ta= ble *wait) =20 /* ------------------------------------------------------------------ */ =20 -static int saa7134_try_get_set_fmt_vbi_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int saa7134_try_get_set_fmt_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct saa7134_dev *dev =3D video_drvdata(file); struct saa7134_tvnorm *norm =3D dev->tvnorm; @@ -1031,8 +1032,9 @@ static int saa7134_try_get_set_fmt_vbi_cap(struct fil= e *file, void *priv, return 0; } =20 -static int saa7134_g_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int saa7134_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct saa7134_dev *dev =3D video_drvdata(file); =20 @@ -1051,8 +1053,9 @@ static int saa7134_g_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int saa7134_try_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int saa7134_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct saa7134_dev *dev =3D video_drvdata(file); struct saa7134_format *fmt; @@ -1104,13 +1107,14 @@ static int saa7134_try_fmt_vid_cap(struct file *fil= e, void *priv, return 0; } =20 -static int saa7134_s_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int saa7134_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct saa7134_dev *dev =3D video_drvdata(file); int err; =20 - err =3D saa7134_try_fmt_vid_cap(file, priv, f); + err =3D saa7134_try_fmt_vid_cap(file, state, f); if (0 !=3D err) return err; =20 @@ -1121,7 +1125,8 @@ static int saa7134_s_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -int saa7134_enum_input(struct file *file, void *priv, struct v4l2_input *i) +int saa7134_enum_input(struct file *file, struct video_device_state *state, + struct v4l2_input *i) { struct saa7134_dev *dev =3D video_drvdata(file); unsigned int n; @@ -1159,7 +1164,8 @@ int saa7134_enum_input(struct file *file, void *priv,= struct v4l2_input *i) } EXPORT_SYMBOL_GPL(saa7134_enum_input); =20 -int saa7134_g_input(struct file *file, void *priv, unsigned int *i) +int saa7134_g_input(struct file *file, struct video_device_state *state, + unsigned int *i) { struct saa7134_dev *dev =3D video_drvdata(file); =20 @@ -1168,7 +1174,8 @@ int saa7134_g_input(struct file *file, void *priv, un= signed int *i) } EXPORT_SYMBOL_GPL(saa7134_g_input); =20 -int saa7134_s_input(struct file *file, void *priv, unsigned int i) +int saa7134_s_input(struct file *file, struct video_device_state *state, + unsigned int i) { struct saa7134_dev *dev =3D video_drvdata(file); =20 @@ -1181,7 +1188,8 @@ int saa7134_s_input(struct file *file, void *priv, un= signed int i) } EXPORT_SYMBOL_GPL(saa7134_s_input); =20 -int saa7134_querycap(struct file *file, void *priv, +int saa7134_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct saa7134_dev *dev =3D video_drvdata(file); @@ -1201,7 +1209,8 @@ int saa7134_querycap(struct file *file, void *priv, } EXPORT_SYMBOL_GPL(saa7134_querycap); =20 -int saa7134_s_std(struct file *file, void *priv, v4l2_std_id id) +int saa7134_s_std(struct file *file, struct video_device_state *state, + v4l2_std_id id) { struct saa7134_dev *dev =3D video_drvdata(file); unsigned int i; @@ -1245,7 +1254,8 @@ int saa7134_s_std(struct file *file, void *priv, v4l2= _std_id id) } EXPORT_SYMBOL_GPL(saa7134_s_std); =20 -int saa7134_g_std(struct file *file, void *priv, v4l2_std_id *id) +int saa7134_g_std(struct file *file, struct video_device_state *state, + v4l2_std_id *id) { struct saa7134_dev *dev =3D video_drvdata(file); =20 @@ -1275,7 +1285,8 @@ static v4l2_std_id saa7134_read_std(struct saa7134_de= v *dev) return result; } =20 -int saa7134_querystd(struct file *file, void *priv, v4l2_std_id *std) +int saa7134_querystd(struct file *file, struct video_device_state *state, + v4l2_std_id *std) { struct saa7134_dev *dev =3D video_drvdata(file); *std &=3D saa7134_read_std(dev); @@ -1283,8 +1294,9 @@ int saa7134_querystd(struct file *file, void *priv, v= 4l2_std_id *std) } EXPORT_SYMBOL_GPL(saa7134_querystd); =20 -static int saa7134_g_pixelaspect(struct file *file, void *priv, - int type, struct v4l2_fract *f) +static int saa7134_g_pixelaspect(struct file *file, + struct video_device_state *state, int type, + struct v4l2_fract *f) { struct saa7134_dev *dev =3D video_drvdata(file); =20 @@ -1302,7 +1314,9 @@ static int saa7134_g_pixelaspect(struct file *file, v= oid *priv, return 0; } =20 -static int saa7134_g_selection(struct file *file, void *priv, struct v4l2_= selection *sel) +static int saa7134_g_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *sel) { struct saa7134_dev *dev =3D video_drvdata(file); =20 @@ -1325,7 +1339,9 @@ static int saa7134_g_selection(struct file *file, voi= d *priv, struct v4l2_select return 0; } =20 -static int saa7134_s_selection(struct file *file, void *priv, struct v4l2_= selection *sel) +static int saa7134_s_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *sel) { struct saa7134_dev *dev =3D video_drvdata(file); struct v4l2_rect *b =3D &dev->crop_bounds; @@ -1358,8 +1374,8 @@ static int saa7134_s_selection(struct file *file, voi= d *priv, struct v4l2_select return 0; } =20 -int saa7134_g_tuner(struct file *file, void *priv, - struct v4l2_tuner *t) +int saa7134_g_tuner(struct file *file, struct video_device_state *state, + struct v4l2_tuner *t) { struct saa7134_dev *dev =3D video_drvdata(file); int n; @@ -1391,8 +1407,8 @@ int saa7134_g_tuner(struct file *file, void *priv, } EXPORT_SYMBOL_GPL(saa7134_g_tuner); =20 -int saa7134_s_tuner(struct file *file, void *priv, - const struct v4l2_tuner *t) +int saa7134_s_tuner(struct file *file, struct video_device_state *state, + const struct v4l2_tuner *t) { struct saa7134_dev *dev =3D video_drvdata(file); int rx, mode; @@ -1412,8 +1428,8 @@ int saa7134_s_tuner(struct file *file, void *priv, } EXPORT_SYMBOL_GPL(saa7134_s_tuner); =20 -int saa7134_g_frequency(struct file *file, void *priv, - struct v4l2_frequency *f) +int saa7134_g_frequency(struct file *file, struct video_device_state *stat= e, + struct v4l2_frequency *f) { struct saa7134_dev *dev =3D video_drvdata(file); =20 @@ -1426,8 +1442,8 @@ int saa7134_g_frequency(struct file *file, void *priv, } EXPORT_SYMBOL_GPL(saa7134_g_frequency); =20 -int saa7134_s_frequency(struct file *file, void *priv, - const struct v4l2_frequency *f) +int saa7134_s_frequency(struct file *file, struct video_device_state *stat= e, + const struct v4l2_frequency *f) { struct saa7134_dev *dev =3D video_drvdata(file); =20 @@ -1441,8 +1457,9 @@ int saa7134_s_frequency(struct file *file, void *priv, } EXPORT_SYMBOL_GPL(saa7134_s_frequency); =20 -static int saa7134_enum_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_fmtdesc *f) +static int saa7134_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *f) { if (f->index >=3D FORMATS) return -EINVAL; @@ -1453,8 +1470,9 @@ static int saa7134_enum_fmt_vid_cap(struct file *file= , void *priv, } =20 #ifdef CONFIG_VIDEO_ADV_DEBUG -static int vidioc_g_register (struct file *file, void *priv, - struct v4l2_dbg_register *reg) +static int vidioc_g_register(struct file *file, + struct video_device_state *state, + struct v4l2_dbg_register *reg) { struct saa7134_dev *dev =3D video_drvdata(file); =20 @@ -1463,8 +1481,9 @@ static int vidioc_g_register (struct file *file, void= *priv, return 0; } =20 -static int vidioc_s_register (struct file *file, void *priv, - const struct v4l2_dbg_register *reg) +static int vidioc_s_register(struct file *file, + struct video_device_state *state, + const struct v4l2_dbg_register *reg) { struct saa7134_dev *dev =3D video_drvdata(file); =20 @@ -1473,8 +1492,8 @@ static int vidioc_s_register (struct file *file, void= *priv, } #endif =20 -static int radio_g_tuner(struct file *file, void *priv, - struct v4l2_tuner *t) +static int radio_g_tuner(struct file *file, struct video_device_state *sta= te, + struct v4l2_tuner *t) { struct saa7134_dev *dev =3D video_drvdata(file); =20 @@ -1492,8 +1511,9 @@ static int radio_g_tuner(struct file *file, void *pri= v, } return 0; } -static int radio_s_tuner(struct file *file, void *priv, - const struct v4l2_tuner *t) + +static int radio_s_tuner(struct file *file, struct video_device_state *sta= te, + const struct v4l2_tuner *t) { struct saa7134_dev *dev =3D video_drvdata(file); =20 diff --git a/drivers/media/pci/saa7134/saa7134.h b/drivers/media/pci/saa713= 4/saa7134.h index 9f27e3775c273e1b4738f022399d624b18f695cc..5775df2194d1d359b3496e29f23= f42154420ab6e 100644 --- a/drivers/media/pci/saa7134/saa7134.h +++ b/drivers/media/pci/saa7134/saa7134.h @@ -795,22 +795,28 @@ void saa7134_vb2_buffer_queue(struct vb2_buffer *vb); int saa7134_vb2_start_streaming(struct vb2_queue *vq, unsigned int count); void saa7134_vb2_stop_streaming(struct vb2_queue *vq); =20 -int saa7134_s_std(struct file *file, void *priv, v4l2_std_id id); -int saa7134_g_std(struct file *file, void *priv, v4l2_std_id *id); -int saa7134_querystd(struct file *file, void *priv, v4l2_std_id *std); -int saa7134_enum_input(struct file *file, void *priv, struct v4l2_input *i= ); -int saa7134_g_input(struct file *file, void *priv, unsigned int *i); -int saa7134_s_input(struct file *file, void *priv, unsigned int i); -int saa7134_querycap(struct file *file, void *priv, - struct v4l2_capability *cap); -int saa7134_g_tuner(struct file *file, void *priv, - struct v4l2_tuner *t); -int saa7134_s_tuner(struct file *file, void *priv, - const struct v4l2_tuner *t); -int saa7134_g_frequency(struct file *file, void *priv, - struct v4l2_frequency *f); -int saa7134_s_frequency(struct file *file, void *priv, - const struct v4l2_frequency *f); +int saa7134_s_std(struct file *file, struct video_device_state *state, + v4l2_std_id id); +int saa7134_g_std(struct file *file, struct video_device_state *state, + v4l2_std_id *id); +int saa7134_querystd(struct file *file, struct video_device_state *state, + v4l2_std_id *std); +int saa7134_enum_input(struct file *file, struct video_device_state *state, + struct v4l2_input *i); +int saa7134_g_input(struct file *file, struct video_device_state *state, + unsigned int *i); +int saa7134_s_input(struct file *file, struct video_device_state *state, + unsigned int i); +int saa7134_querycap(struct file *file, struct video_device_state *state, + struct v4l2_capability *cap); +int saa7134_g_tuner(struct file *file, struct video_device_state *state, + struct v4l2_tuner *t); +int saa7134_s_tuner(struct file *file, struct video_device_state *state, + const struct v4l2_tuner *t); +int saa7134_g_frequency(struct file *file, struct video_device_state *stat= e, + struct v4l2_frequency *f); +int saa7134_s_frequency(struct file *file, struct video_device_state *stat= e, + const struct v4l2_frequency *f); =20 int saa7134_videoport_init(struct saa7134_dev *dev); void saa7134_set_tvnorm_hw(struct saa7134_dev *dev); diff --git a/drivers/media/pci/saa7146/hexium_gemini.c b/drivers/media/pci/= saa7146/hexium_gemini.c index 40b35098f3ead1d63378d05beb2ccddf3977a2da..cdbdfdf627362b202528e40efbd= 38008e464f4f9 100644 --- a/drivers/media/pci/saa7146/hexium_gemini.c +++ b/drivers/media/pci/saa7146/hexium_gemini.c @@ -201,7 +201,9 @@ static int hexium_set_standard(struct hexium *hexium, s= truct hexium_data *vdec) return 0; } =20 -static int vidioc_enum_input(struct file *file, void *fh, struct v4l2_inpu= t *i) +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, + struct v4l2_input *i) { DEB_EE("VIDIOC_ENUMINPUT %d\n", i->index); =20 @@ -214,7 +216,8 @@ static int vidioc_enum_input(struct file *file, void *f= h, struct v4l2_input *i) return 0; } =20 -static int vidioc_g_input(struct file *file, void *fh, unsigned int *input) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *input) { struct saa7146_dev *dev =3D video_drvdata(file); struct hexium *hexium =3D (struct hexium *) dev->ext_priv; @@ -225,7 +228,8 @@ static int vidioc_g_input(struct file *file, void *fh, = unsigned int *input) return 0; } =20 -static int vidioc_s_input(struct file *file, void *fh, unsigned int input) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int input) { struct saa7146_dev *dev =3D video_drvdata(file); struct hexium *hexium =3D (struct hexium *) dev->ext_priv; diff --git a/drivers/media/pci/saa7146/hexium_orion.c b/drivers/media/pci/s= aa7146/hexium_orion.c index a2076728c6210e9d5442f51fbbc13a87371973e4..0075f0d2b962b46960f65025642= 5ca7620c3a8a6 100644 --- a/drivers/media/pci/saa7146/hexium_orion.c +++ b/drivers/media/pci/saa7146/hexium_orion.c @@ -312,7 +312,9 @@ static int hexium_set_input(struct hexium *hexium, int = input) return 0; } =20 -static int vidioc_enum_input(struct file *file, void *fh, struct v4l2_inpu= t *i) +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, + struct v4l2_input *i) { DEB_EE("VIDIOC_ENUMINPUT %d\n", i->index); =20 @@ -325,7 +327,8 @@ static int vidioc_enum_input(struct file *file, void *f= h, struct v4l2_input *i) return 0; } =20 -static int vidioc_g_input(struct file *file, void *fh, unsigned int *input) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *input) { struct saa7146_dev *dev =3D video_drvdata(file); struct hexium *hexium =3D (struct hexium *) dev->ext_priv; @@ -336,7 +339,8 @@ static int vidioc_g_input(struct file *file, void *fh, = unsigned int *input) return 0; } =20 -static int vidioc_s_input(struct file *file, void *fh, unsigned int input) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int input) { struct saa7146_dev *dev =3D video_drvdata(file); struct hexium *hexium =3D (struct hexium *) dev->ext_priv; diff --git a/drivers/media/pci/saa7146/mxb.c b/drivers/media/pci/saa7146/mx= b.c index a14b839098b8491b2a2ff3ce0d9d25682309607e..8ad048dfa0134f8cf9a9ba80345= d28d743201ad4 100644 --- a/drivers/media/pci/saa7146/mxb.c +++ b/drivers/media/pci/saa7146/mxb.c @@ -446,7 +446,9 @@ void mxb_irq_bh(struct saa7146_dev* dev, u32* irq_mask) } */ =20 -static int vidioc_enum_input(struct file *file, void *fh, struct v4l2_inpu= t *i) +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, + struct v4l2_input *i) { DEB_EE("VIDIOC_ENUMINPUT %d\n", i->index); if (i->index >=3D MXB_INPUTS) @@ -455,7 +457,8 @@ static int vidioc_enum_input(struct file *file, void *f= h, struct v4l2_input *i) return 0; } =20 -static int vidioc_g_input(struct file *file, void *fh, unsigned int *i) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { struct saa7146_dev *dev =3D video_drvdata(file); struct mxb *mxb =3D (struct mxb *)dev->ext_priv; @@ -465,7 +468,8 @@ static int vidioc_g_input(struct file *file, void *fh, = unsigned int *i) return 0; } =20 -static int vidioc_s_input(struct file *file, void *fh, unsigned int input) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int input) { struct saa7146_dev *dev =3D video_drvdata(file); struct mxb *mxb =3D (struct mxb *)dev->ext_priv; @@ -530,7 +534,8 @@ static int vidioc_s_input(struct file *file, void *fh, = unsigned int input) return 0; } =20 -static int vidioc_g_tuner(struct file *file, void *fh, struct v4l2_tuner *= t) +static int vidioc_g_tuner(struct file *file, struct video_device_state *st= ate, + struct v4l2_tuner *t) { struct saa7146_dev *dev =3D video_drvdata(file); struct mxb *mxb =3D (struct mxb *)dev->ext_priv; @@ -552,7 +557,8 @@ static int vidioc_g_tuner(struct file *file, void *fh, = struct v4l2_tuner *t) return call_all(dev, tuner, g_tuner, t); } =20 -static int vidioc_s_tuner(struct file *file, void *fh, const struct v4l2_t= uner *t) +static int vidioc_s_tuner(struct file *file, struct video_device_state *st= ate, + const struct v4l2_tuner *t) { struct saa7146_dev *dev =3D video_drvdata(file); struct mxb *mxb =3D (struct mxb *)dev->ext_priv; @@ -567,14 +573,18 @@ static int vidioc_s_tuner(struct file *file, void *fh= , const struct v4l2_tuner * return call_all(dev, tuner, s_tuner, t); } =20 -static int vidioc_querystd(struct file *file, void *fh, v4l2_std_id *norm) +static int vidioc_querystd(struct file *file, + struct video_device_state *state, + v4l2_std_id *norm) { struct saa7146_dev *dev =3D video_drvdata(file); =20 return call_all(dev, video, querystd, norm); } =20 -static int vidioc_g_frequency(struct file *file, void *fh, struct v4l2_fre= quency *f) +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, + struct v4l2_frequency *f) { struct saa7146_dev *dev =3D video_drvdata(file); struct mxb *mxb =3D (struct mxb *)dev->ext_priv; @@ -587,7 +597,9 @@ static int vidioc_g_frequency(struct file *file, void *= fh, struct v4l2_frequency return 0; } =20 -static int vidioc_s_frequency(struct file *file, void *fh, const struct v4= l2_frequency *f) +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, + const struct v4l2_frequency *f) { struct saa7146_dev *dev =3D video_drvdata(file); struct mxb *mxb =3D (struct mxb *)dev->ext_priv; @@ -610,7 +622,9 @@ static int vidioc_s_frequency(struct file *file, void *= fh, const struct v4l2_fre return 0; } =20 -static int vidioc_enumaudio(struct file *file, void *fh, struct v4l2_audio= *a) +static int vidioc_enumaudio(struct file *file, + struct video_device_state *state, + struct v4l2_audio *a) { if (a->index >=3D MXB_AUDIOS) return -EINVAL; @@ -618,7 +632,8 @@ static int vidioc_enumaudio(struct file *file, void *fh= , struct v4l2_audio *a) return 0; } =20 -static int vidioc_g_audio(struct file *file, void *fh, struct v4l2_audio *= a) +static int vidioc_g_audio(struct file *file, struct video_device_state *st= ate, + struct v4l2_audio *a) { struct saa7146_dev *dev =3D video_drvdata(file); struct mxb *mxb =3D (struct mxb *)dev->ext_priv; @@ -628,7 +643,8 @@ static int vidioc_g_audio(struct file *file, void *fh, = struct v4l2_audio *a) return 0; } =20 -static int vidioc_s_audio(struct file *file, void *fh, const struct v4l2_a= udio *a) +static int vidioc_s_audio(struct file *file, struct video_device_state *st= ate, + const struct v4l2_audio *a) { struct saa7146_dev *dev =3D video_drvdata(file); struct mxb *mxb =3D (struct mxb *)dev->ext_priv; @@ -648,7 +664,9 @@ static int vidioc_s_audio(struct file *file, void *fh, = const struct v4l2_audio * } =20 #ifdef CONFIG_VIDEO_ADV_DEBUG -static int vidioc_g_register(struct file *file, void *fh, struct v4l2_dbg_= register *reg) +static int vidioc_g_register(struct file *file, + struct video_device_state *state, + struct v4l2_dbg_register *reg) { struct saa7146_dev *dev =3D video_drvdata(file); =20 @@ -659,7 +677,9 @@ static int vidioc_g_register(struct file *file, void *f= h, struct v4l2_dbg_regist return 0; } =20 -static int vidioc_s_register(struct file *file, void *fh, const struct v4l= 2_dbg_register *reg) +static int vidioc_s_register(struct file *file, + struct video_device_state *state, + const struct v4l2_dbg_register *reg) { struct saa7146_dev *dev =3D video_drvdata(file); =20 diff --git a/drivers/media/pci/saa7164/saa7164-encoder.c b/drivers/media/pc= i/saa7164/saa7164-encoder.c index 66d650b5f69af1eac9117b9c65ac7c39883f6f21..1a193a4c05a45f421f5666e47a4= 6fde0b702f47b 100644 --- a/drivers/media/pci/saa7164/saa7164-encoder.c +++ b/drivers/media/pci/saa7164/saa7164-encoder.c @@ -217,7 +217,8 @@ int saa7164_s_std(struct saa7164_port *port, v4l2_std_i= d id) return 0; } =20 -static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id) +static int vidioc_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id id) { struct saa7164_encoder_fh *fh =3D to_saa7164_encoder_fh(file); =20 @@ -230,14 +231,16 @@ int saa7164_g_std(struct saa7164_port *port, v4l2_std= _id *id) return 0; } =20 -static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *id) +static int vidioc_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *id) { struct saa7164_encoder_fh *fh =3D to_saa7164_encoder_fh(file); =20 return saa7164_g_std(fh->port, id); } =20 -int saa7164_enum_input(struct file *file, void *priv, struct v4l2_input *i) +int saa7164_enum_input(struct file *file, struct video_device_state *state, + struct v4l2_input *i) { static const char * const inputs[] =3D { "tuner", "composite", "svideo", "aux", @@ -275,7 +278,8 @@ int saa7164_g_input(struct saa7164_port *port, unsigned= int *i) return 0; } =20 -static int vidioc_g_input(struct file *file, void *priv, unsigned int *i) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { struct saa7164_encoder_fh *fh =3D to_saa7164_encoder_fh(file); =20 @@ -299,14 +303,16 @@ int saa7164_s_input(struct saa7164_port *port, unsign= ed int i) return 0; } =20 -static int vidioc_s_input(struct file *file, void *priv, unsigned int i) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int i) { struct saa7164_encoder_fh *fh =3D to_saa7164_encoder_fh(file); =20 return saa7164_s_input(fh->port, i); } =20 -int saa7164_g_tuner(struct file *file, void *priv, struct v4l2_tuner *t) +int saa7164_g_tuner(struct file *file, struct video_device_state *state, + struct v4l2_tuner *t) { struct saa7164_encoder_fh *fh =3D to_saa7164_encoder_fh(file); struct saa7164_port *port =3D fh->port; @@ -325,7 +331,8 @@ int saa7164_g_tuner(struct file *file, void *priv, stru= ct v4l2_tuner *t) return 0; } =20 -int saa7164_s_tuner(struct file *file, void *priv, +int saa7164_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *t) { if (0 !=3D t->index) @@ -344,8 +351,8 @@ int saa7164_g_frequency(struct saa7164_port *port, stru= ct v4l2_frequency *f) return 0; } =20 -static int vidioc_g_frequency(struct file *file, void *priv, - struct v4l2_frequency *f) +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct saa7164_encoder_fh *fh =3D to_saa7164_encoder_fh(file); =20 @@ -397,7 +404,8 @@ int saa7164_s_frequency(struct saa7164_port *port, return 0; } =20 -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct saa7164_encoder_fh *fh =3D to_saa7164_encoder_fh(file); @@ -480,8 +488,8 @@ static int saa7164_s_ctrl(struct v4l2_ctrl *ctrl) return ret; } =20 -static int vidioc_querycap(struct file *file, void *priv, - struct v4l2_capability *cap) +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct saa7164_encoder_fh *fh =3D to_saa7164_encoder_fh(file); struct saa7164_port *port =3D fh->port; @@ -496,8 +504,8 @@ static int vidioc_querycap(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_fmtdesc *f) +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index !=3D 0) return -EINVAL; @@ -507,7 +515,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int vidioc_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct saa7164_encoder_fh *fh =3D to_saa7164_encoder_fh(file); diff --git a/drivers/media/pci/saa7164/saa7164-vbi.c b/drivers/media/pci/sa= a7164/saa7164-vbi.c index 57e4362c0d19d0d3a5f0be1ee58cd141fdf62462..74c71a61ab4db045db44a828306= 3337992bdf226 100644 --- a/drivers/media/pci/saa7164/saa7164-vbi.c +++ b/drivers/media/pci/saa7164/saa7164-vbi.c @@ -142,44 +142,48 @@ static int saa7164_vbi_initialize(struct saa7164_port= *port) } =20 /* -- V4L2 --------------------------------------------------------- */ -static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id) +static int vidioc_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id id) { struct saa7164_vbi_fh *fh =3D to_saa7164_vbi_fh(file); =20 return saa7164_s_std(fh->port->enc_port, id); } =20 -static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *id) +static int vidioc_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *id) { struct saa7164_vbi_fh *fh =3D to_saa7164_vbi_fh(file); =20 return saa7164_g_std(fh->port->enc_port, id); } =20 -static int vidioc_g_input(struct file *file, void *priv, unsigned int *i) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { struct saa7164_vbi_fh *fh =3D to_saa7164_vbi_fh(file); =20 return saa7164_g_input(fh->port->enc_port, i); } =20 -static int vidioc_s_input(struct file *file, void *priv, unsigned int i) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int i) { struct saa7164_vbi_fh *fh =3D to_saa7164_vbi_fh(file); =20 return saa7164_s_input(fh->port->enc_port, i); } =20 -static int vidioc_g_frequency(struct file *file, void *priv, - struct v4l2_frequency *f) +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct saa7164_vbi_fh *fh =3D to_saa7164_vbi_fh(file); =20 return saa7164_g_frequency(fh->port->enc_port, f); } =20 -static int vidioc_s_frequency(struct file *file, void *priv, - const struct v4l2_frequency *f) +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct saa7164_vbi_fh *fh =3D to_saa7164_vbi_fh(file); int ret =3D saa7164_s_frequency(fh->port->enc_port, f); @@ -189,8 +193,8 @@ static int vidioc_s_frequency(struct file *file, void *= priv, return ret; } =20 -static int vidioc_querycap(struct file *file, void *priv, - struct v4l2_capability *cap) +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct saa7164_vbi_fh *fh =3D to_saa7164_vbi_fh(file); struct saa7164_port *port =3D fh->port; @@ -390,7 +394,8 @@ static int saa7164_vbi_start_streaming(struct saa7164_p= ort *port) return ret; } =20 -static int saa7164_vbi_fmt(struct file *file, void *priv, +static int saa7164_vbi_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { /* ntsc */ diff --git a/drivers/media/pci/saa7164/saa7164.h b/drivers/media/pci/saa716= 4/saa7164.h index 94e987e7b5e5d4af8f3cdc7c148eb2b33b1076b9..612890fa19c1680b5327f54a8e9= 43fd15899f7cf 100644 --- a/drivers/media/pci/saa7164/saa7164.h +++ b/drivers/media/pci/saa7164/saa7164.h @@ -590,11 +590,14 @@ extern int saa7164_buffer_zero_offsets(struct saa7164= _port *port, int i); /* saa7164-encoder.c */ int saa7164_s_std(struct saa7164_port *port, v4l2_std_id id); int saa7164_g_std(struct saa7164_port *port, v4l2_std_id *id); -int saa7164_enum_input(struct file *file, void *priv, struct v4l2_input *i= ); +int saa7164_enum_input(struct file *file, struct video_device_state *state, + struct v4l2_input *i); int saa7164_g_input(struct saa7164_port *port, unsigned int *i); int saa7164_s_input(struct saa7164_port *port, unsigned int i); -int saa7164_g_tuner(struct file *file, void *priv, struct v4l2_tuner *t); -int saa7164_s_tuner(struct file *file, void *priv, const struct v4l2_tuner= *t); +int saa7164_g_tuner(struct file *file, struct video_device_state *state, + struct v4l2_tuner *t); +int saa7164_s_tuner(struct file *file, struct video_device_state *state, + const struct v4l2_tuner *t); int saa7164_g_frequency(struct saa7164_port *port, struct v4l2_frequency *= f); int saa7164_s_frequency(struct saa7164_port *port, const struct v4l2_frequency *f); diff --git a/drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c b/drivers/media= /pci/solo6x10/solo6x10-v4l2-enc.c index 5ee59b3844cc3dc4ae42c255a0ea3e624c605a1d..c8921f139885ec28ec6fcb96781= 9f5e616868e2e 100644 --- a/drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c +++ b/drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c @@ -758,7 +758,8 @@ static const struct vb2_ops solo_enc_video_qops =3D { .stop_streaming =3D solo_enc_stop_streaming, }; =20 -static int solo_enc_querycap(struct file *file, void *priv, +static int solo_enc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct solo_enc_dev *solo_enc =3D video_drvdata(file); @@ -769,7 +770,8 @@ static int solo_enc_querycap(struct file *file, void *= priv, return 0; } =20 -static int solo_enc_enum_input(struct file *file, void *priv, +static int solo_enc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *input) { struct solo_enc_dev *solo_enc =3D video_drvdata(file); @@ -789,7 +791,8 @@ static int solo_enc_enum_input(struct file *file, void = *priv, return 0; } =20 -static int solo_enc_set_input(struct file *file, void *priv, +static int solo_enc_set_input(struct file *file, + struct video_device_state *state, unsigned int index) { if (index) @@ -798,7 +801,8 @@ static int solo_enc_set_input(struct file *file, void *= priv, return 0; } =20 -static int solo_enc_get_input(struct file *file, void *priv, +static int solo_enc_get_input(struct file *file, + struct video_device_state *state, unsigned int *index) { *index =3D 0; @@ -806,7 +810,8 @@ static int solo_enc_get_input(struct file *file, void *= priv, return 0; } =20 -static int solo_enc_enum_fmt_cap(struct file *file, void *priv, +static int solo_enc_enum_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct solo_enc_dev *solo_enc =3D video_drvdata(file); @@ -839,7 +844,8 @@ static inline int solo_valid_pixfmt(u32 pixfmt, int dev= _type) || pixfmt =3D=3D V4L2_PIX_FMT_MJPEG ? 0 : -EINVAL; } =20 -static int solo_enc_try_fmt_cap(struct file *file, void *priv, +static int solo_enc_try_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct solo_enc_dev *solo_enc =3D video_drvdata(file); @@ -878,7 +884,8 @@ static int solo_enc_try_fmt_cap(struct file *file, void= *priv, return 0; } =20 -static int solo_enc_set_fmt_cap(struct file *file, void *priv, +static int solo_enc_set_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct solo_enc_dev *solo_enc =3D video_drvdata(file); @@ -889,7 +896,7 @@ static int solo_enc_set_fmt_cap(struct file *file, void= *priv, if (vb2_is_busy(&solo_enc->vidq)) return -EBUSY; =20 - ret =3D solo_enc_try_fmt_cap(file, priv, f); + ret =3D solo_enc_try_fmt_cap(file, state, f); if (ret) return ret; =20 @@ -915,7 +922,8 @@ static int solo_enc_set_fmt_cap(struct file *file, void= *priv, return 0; } =20 -static int solo_enc_get_fmt_cap(struct file *file, void *priv, +static int solo_enc_get_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct solo_enc_dev *solo_enc =3D video_drvdata(file); @@ -932,7 +940,8 @@ static int solo_enc_get_fmt_cap(struct file *file, void= *priv, return 0; } =20 -static int solo_enc_g_std(struct file *file, void *priv, v4l2_std_id *i) +static int solo_enc_g_std(struct file *file, struct video_device_state *st= ate, + v4l2_std_id *i) { struct solo_enc_dev *solo_enc =3D video_drvdata(file); struct solo_dev *solo_dev =3D solo_enc->solo_dev; @@ -944,14 +953,16 @@ static int solo_enc_g_std(struct file *file, void *pr= iv, v4l2_std_id *i) return 0; } =20 -static int solo_enc_s_std(struct file *file, void *priv, v4l2_std_id std) +static int solo_enc_s_std(struct file *file, struct video_device_state *st= ate, + v4l2_std_id std) { struct solo_enc_dev *solo_enc =3D video_drvdata(file); =20 return solo_set_video_type(solo_enc->solo_dev, std & V4L2_STD_625_50); } =20 -static int solo_enum_framesizes(struct file *file, void *priv, +static int solo_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct solo_enc_dev *solo_enc =3D video_drvdata(file); @@ -978,7 +989,8 @@ static int solo_enum_framesizes(struct file *file, void= *priv, return 0; } =20 -static int solo_enum_frameintervals(struct file *file, void *priv, +static int solo_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *fintv) { struct solo_enc_dev *solo_enc =3D video_drvdata(file); @@ -1008,7 +1020,8 @@ static int solo_enum_frameintervals(struct file *file= , void *priv, return 0; } =20 -static int solo_g_parm(struct file *file, void *priv, +static int solo_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *sp) { struct solo_enc_dev *solo_enc =3D video_drvdata(file); @@ -1034,7 +1047,8 @@ static inline int calc_interval(u8 fps, u32 n, u32 d) return min(15U, n / d + (n % d >=3D (fps >> 1))); } =20 -static int solo_s_parm(struct file *file, void *priv, +static int solo_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *sp) { struct solo_enc_dev *solo_enc =3D video_drvdata(file); @@ -1046,7 +1060,7 @@ static int solo_s_parm(struct file *file, void *priv, =20 solo_enc->interval =3D calc_interval(fps, t->numerator, t->denominator); solo_update_mode(solo_enc); - return solo_g_parm(file, priv, sp); + return solo_g_parm(file, state, sp); } =20 static int solo_s_ctrl(struct v4l2_ctrl *ctrl) diff --git a/drivers/media/pci/solo6x10/solo6x10-v4l2.c b/drivers/media/pci= /solo6x10/solo6x10-v4l2.c index 35715b21dbdffc80de68990b88836700816e7cb6..7c0489c7b0d9f0c97e3386ccc2d= cd96dcd3cad71 100644 --- a/drivers/media/pci/solo6x10/solo6x10-v4l2.c +++ b/drivers/media/pci/solo6x10/solo6x10-v4l2.c @@ -367,7 +367,8 @@ static const struct vb2_ops solo_video_qops =3D { .stop_streaming =3D solo_stop_streaming, }; =20 -static int solo_querycap(struct file *file, void *priv, +static int solo_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, SOLO6X10_NAME, sizeof(cap->driver)); @@ -399,7 +400,8 @@ static int solo_enum_ext_input(struct solo_dev *solo_de= v, return 0; } =20 -static int solo_enum_input(struct file *file, void *priv, +static int solo_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *input) { struct solo_dev *solo_dev =3D video_drvdata(file); @@ -423,7 +425,8 @@ static int solo_enum_input(struct file *file, void *pri= v, return 0; } =20 -static int solo_set_input(struct file *file, void *priv, unsigned int inde= x) +static int solo_set_input(struct file *file, struct video_device_state *st= ate, + unsigned int index) { struct solo_dev *solo_dev =3D video_drvdata(file); int ret =3D solo_v4l2_set_ch(solo_dev, index); @@ -436,7 +439,8 @@ static int solo_set_input(struct file *file, void *priv= , unsigned int index) return ret; } =20 -static int solo_get_input(struct file *file, void *priv, unsigned int *ind= ex) +static int solo_get_input(struct file *file, struct video_device_state *st= ate, + unsigned int *index) { struct solo_dev *solo_dev =3D video_drvdata(file); =20 @@ -445,7 +449,8 @@ static int solo_get_input(struct file *file, void *priv= , unsigned int *index) return 0; } =20 -static int solo_enum_fmt_cap(struct file *file, void *priv, +static int solo_enum_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index) @@ -455,7 +460,8 @@ static int solo_enum_fmt_cap(struct file *file, void *p= riv, return 0; } =20 -static int solo_try_fmt_cap(struct file *file, void *priv, +static int solo_try_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct solo_dev *solo_dev =3D video_drvdata(file); @@ -474,7 +480,8 @@ static int solo_try_fmt_cap(struct file *file, void *pr= iv, return 0; } =20 -static int solo_set_fmt_cap(struct file *file, void *priv, +static int solo_set_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct solo_dev *solo_dev =3D video_drvdata(file); @@ -484,10 +491,11 @@ static int solo_set_fmt_cap(struct file *file, void *= priv, =20 /* For right now, if it doesn't match our running config, * then fail */ - return solo_try_fmt_cap(file, priv, f); + return solo_try_fmt_cap(file, state, f); } =20 -static int solo_get_fmt_cap(struct file *file, void *priv, +static int solo_get_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct solo_dev *solo_dev =3D video_drvdata(file); @@ -504,7 +512,8 @@ static int solo_get_fmt_cap(struct file *file, void *pr= iv, return 0; } =20 -static int solo_g_std(struct file *file, void *priv, v4l2_std_id *i) +static int solo_g_std(struct file *file, struct video_device_state *state, + v4l2_std_id *i) { struct solo_dev *solo_dev =3D video_drvdata(file); =20 @@ -536,7 +545,8 @@ int solo_set_video_type(struct solo_dev *solo_dev, bool= is_50hz) return solo_v4l2_set_ch(solo_dev, solo_dev->cur_disp_ch); } =20 -static int solo_s_std(struct file *file, void *priv, v4l2_std_id std) +static int solo_s_std(struct file *file, struct video_device_state *state, + v4l2_std_id std) { struct solo_dev *solo_dev =3D video_drvdata(file); =20 diff --git a/drivers/media/pci/ttpci/budget-av.c b/drivers/media/pci/ttpci/= budget-av.c index 69f5e810f9b54df5e3d69a5d06a5cefc12cef6a9..63505f445b67833015aa9aad831= 4e256d386ff30 100644 --- a/drivers/media/pci/ttpci/budget-av.c +++ b/drivers/media/pci/ttpci/budget-av.c @@ -1398,7 +1398,9 @@ static struct v4l2_input knc1_inputs[KNC1_INPUTS] =3D= { V4L2_STD_PAL_BG | V4L2_STD_NTSC_M, 0, V4L2_IN_CAP_STD }, }; =20 -static int vidioc_enum_input(struct file *file, void *fh, struct v4l2_inpu= t *i) +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, + struct v4l2_input *i) { dprintk(1, "VIDIOC_ENUMINPUT %d\n", i->index); if (i->index >=3D KNC1_INPUTS) @@ -1407,7 +1409,8 @@ static int vidioc_enum_input(struct file *file, void = *fh, struct v4l2_input *i) return 0; } =20 -static int vidioc_g_input(struct file *file, void *fh, unsigned int *i) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { struct saa7146_dev *dev =3D video_drvdata(file); struct budget_av *budget_av =3D dev->ext_priv; @@ -1418,7 +1421,8 @@ static int vidioc_g_input(struct file *file, void *fh= , unsigned int *i) return 0; } =20 -static int vidioc_s_input(struct file *file, void *fh, unsigned int input) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int input) { struct saa7146_dev *dev =3D video_drvdata(file); struct budget_av *budget_av =3D dev->ext_priv; diff --git a/drivers/media/pci/tw5864/tw5864-video.c b/drivers/media/pci/tw= 5864/tw5864-video.c index 0a08708e52b08283074db66611969312762182a8..46b5e773aa3343d1df4a4b7e9f9= ed8ff3baa6372 100644 --- a/drivers/media/pci/tw5864/tw5864-video.c +++ b/drivers/media/pci/tw5864/tw5864-video.c @@ -526,7 +526,8 @@ static int tw5864_s_ctrl(struct v4l2_ctrl *ctrl) return 0; } =20 -static int tw5864_fmt_vid_cap(struct file *file, void *priv, +static int tw5864_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct tw5864_input *input =3D video_drvdata(file); @@ -551,7 +552,8 @@ static int tw5864_fmt_vid_cap(struct file *file, void *= priv, return 0; } =20 -static int tw5864_enum_input(struct file *file, void *priv, +static int tw5864_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { struct tw5864_input *input =3D video_drvdata(file); @@ -582,20 +584,23 @@ static int tw5864_enum_input(struct file *file, void = *priv, return 0; } =20 -static int tw5864_g_input(struct file *file, void *priv, unsigned int *i) +static int tw5864_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { *i =3D 0; return 0; } =20 -static int tw5864_s_input(struct file *file, void *priv, unsigned int i) +static int tw5864_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int i) { if (i) return -EINVAL; return 0; } =20 -static int tw5864_querycap(struct file *file, void *priv, +static int tw5864_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct tw5864_input *input =3D video_drvdata(file); @@ -606,7 +611,8 @@ static int tw5864_querycap(struct file *file, void *pri= v, return 0; } =20 -static int tw5864_querystd(struct file *file, void *priv, v4l2_std_id *std) +static int tw5864_querystd(struct file *file, + struct video_device_state *state, v4l2_std_id *std) { struct tw5864_input *input =3D video_drvdata(file); enum tw5864_vid_std tw_std; @@ -620,7 +626,8 @@ static int tw5864_querystd(struct file *file, void *pri= v, v4l2_std_id *std) return 0; } =20 -static int tw5864_g_std(struct file *file, void *priv, v4l2_std_id *std) +static int tw5864_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *std) { struct tw5864_input *input =3D video_drvdata(file); =20 @@ -628,7 +635,8 @@ static int tw5864_g_std(struct file *file, void *priv, = v4l2_std_id *std) return 0; } =20 -static int tw5864_s_std(struct file *file, void *priv, v4l2_std_id std) +static int tw5864_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id std) { struct tw5864_input *input =3D video_drvdata(file); struct tw5864_dev *dev =3D input->root; @@ -639,7 +647,8 @@ static int tw5864_s_std(struct file *file, void *priv, = v4l2_std_id std) return 0; } =20 -static int tw5864_enum_fmt_vid_cap(struct file *file, void *priv, +static int tw5864_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index) @@ -727,7 +736,8 @@ static int tw5864_frameinterval_get(struct tw5864_input= *input, return 0; } =20 -static int tw5864_enum_framesizes(struct file *file, void *priv, +static int tw5864_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct tw5864_input *input =3D video_drvdata(file); @@ -744,7 +754,8 @@ static int tw5864_enum_framesizes(struct file *file, vo= id *priv, return 0; } =20 -static int tw5864_enum_frameintervals(struct file *file, void *priv, +static int tw5864_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *fintv) { struct tw5864_input *input =3D video_drvdata(file); @@ -754,7 +765,7 @@ static int tw5864_enum_frameintervals(struct file *file= , void *priv, .pixel_format =3D fintv->pixel_format }; int ret; =20 - ret =3D tw5864_enum_framesizes(file, priv, &fsize); + ret =3D tw5864_enum_framesizes(file, state, &fsize); if (ret) return ret; =20 @@ -776,7 +787,8 @@ static int tw5864_enum_frameintervals(struct file *file= , void *priv, return ret; } =20 -static int tw5864_g_parm(struct file *file, void *priv, +static int tw5864_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *sp) { struct tw5864_input *input =3D video_drvdata(file); @@ -796,7 +808,8 @@ static int tw5864_g_parm(struct file *file, void *priv, return ret; } =20 -static int tw5864_s_parm(struct file *file, void *priv, +static int tw5864_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *sp) { struct tw5864_input *input =3D video_drvdata(file); @@ -821,7 +834,7 @@ static int tw5864_s_parm(struct file *file, void *priv, if (input->frame_interval < 1) input->frame_interval =3D 1; tw5864_frame_interval_set(input); - return tw5864_g_parm(file, priv, sp); + return tw5864_g_parm(file, state, sp); } =20 static const struct v4l2_ctrl_ops tw5864_ctrl_ops =3D { @@ -842,7 +855,8 @@ static const struct v4l2_file_operations video_fops =3D= { =20 #define INDIR_SPACE_MAP_SHIFT 0x100000 =20 -static int tw5864_g_reg(struct file *file, void *fh, +static int tw5864_g_reg(struct file *file, + struct video_device_state *state, struct v4l2_dbg_register *reg) { struct tw5864_input *input =3D video_drvdata(file); @@ -864,7 +878,8 @@ static int tw5864_g_reg(struct file *file, void *fh, return 0; } =20 -static int tw5864_s_reg(struct file *file, void *fh, +static int tw5864_s_reg(struct file *file, + struct video_device_state *state, const struct v4l2_dbg_register *reg) { struct tw5864_input *input =3D video_drvdata(file); diff --git a/drivers/media/pci/tw68/tw68-video.c b/drivers/media/pci/tw68/t= w68-video.c index 6232bac170d00f4132111575bc600e41897e9c8c..4d0e62006c9347948bc09de87a4= 89e706a249aeb 100644 --- a/drivers/media/pci/tw68/tw68-video.c +++ b/drivers/media/pci/tw68/tw68-video.c @@ -569,7 +569,8 @@ static int tw68_s_ctrl(struct v4l2_ctrl *ctrl) * Note that this routine returns what is stored in the fh structure, and * does not interrogate any of the device registers. */ -static int tw68_g_fmt_vid_cap(struct file *file, void *priv, +static int tw68_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct tw68_dev *dev =3D video_drvdata(file); @@ -586,7 +587,8 @@ static int tw68_g_fmt_vid_cap(struct file *file, void *= priv, return 0; } =20 -static int tw68_try_fmt_vid_cap(struct file *file, void *priv, +static int tw68_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct tw68_dev *dev =3D video_drvdata(file); @@ -641,13 +643,14 @@ static int tw68_try_fmt_vid_cap(struct file *file, vo= id *priv, * some number of buffers on the "active" chain which will be filled before * the change takes place. */ -static int tw68_s_fmt_vid_cap(struct file *file, void *priv, +static int tw68_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct tw68_dev *dev =3D video_drvdata(file); int err; =20 - err =3D tw68_try_fmt_vid_cap(file, priv, f); + err =3D tw68_try_fmt_vid_cap(file, state, f); if (0 !=3D err) return err; =20 @@ -658,7 +661,8 @@ static int tw68_s_fmt_vid_cap(struct file *file, void *= priv, return 0; } =20 -static int tw68_enum_input(struct file *file, void *priv, +static int tw68_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { struct tw68_dev *dev =3D video_drvdata(file); @@ -691,7 +695,8 @@ static int tw68_enum_input(struct file *file, void *pri= v, return 0; } =20 -static int tw68_g_input(struct file *file, void *priv, unsigned int *i) +static int tw68_g_input(struct file *file, struct video_device_state *stat= e, + unsigned int *i) { struct tw68_dev *dev =3D video_drvdata(file); =20 @@ -699,7 +704,8 @@ static int tw68_g_input(struct file *file, void *priv, = unsigned int *i) return 0; } =20 -static int tw68_s_input(struct file *file, void *priv, unsigned int i) +static int tw68_s_input(struct file *file, struct video_device_state *stat= e, + unsigned int i) { struct tw68_dev *dev =3D video_drvdata(file); =20 @@ -710,7 +716,8 @@ static int tw68_s_input(struct file *file, void *priv, = unsigned int i) return 0; } =20 -static int tw68_querycap(struct file *file, void *priv, +static int tw68_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, "tw68", sizeof(cap->driver)); @@ -719,7 +726,8 @@ static int tw68_querycap(struct file *file, void *priv, return 0; } =20 -static int tw68_s_std(struct file *file, void *priv, v4l2_std_id id) +static int tw68_s_std(struct file *file, struct video_device_state *state, + v4l2_std_id id) { struct tw68_dev *dev =3D video_drvdata(file); unsigned int i; @@ -747,7 +755,8 @@ static int tw68_s_std(struct file *file, void *priv, v4= l2_std_id id) return 0; } =20 -static int tw68_g_std(struct file *file, void *priv, v4l2_std_id *id) +static int tw68_g_std(struct file *file, struct video_device_state *state, + v4l2_std_id *id) { struct tw68_dev *dev =3D video_drvdata(file); =20 @@ -755,7 +764,8 @@ static int tw68_g_std(struct file *file, void *priv, v4= l2_std_id *id) return 0; } =20 -static int tw68_enum_fmt_vid_cap(struct file *file, void *priv, +static int tw68_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index >=3D FORMATS) @@ -810,16 +820,18 @@ static void tw68_dump_regs(struct tw68_dev *dev) } } =20 -static int vidioc_log_status(struct file *file, void *priv) +static int vidioc_log_status(struct file *file, + struct video_device_state *state) { struct tw68_dev *dev =3D video_drvdata(file); =20 tw68_dump_regs(dev); - return v4l2_ctrl_log_status(file, priv); + return v4l2_ctrl_log_status(file, state); } =20 #ifdef CONFIG_VIDEO_ADV_DEBUG -static int vidioc_g_register(struct file *file, void *priv, +static int vidioc_g_register(struct file *file, + struct video_device_state *state, struct v4l2_dbg_register *reg) { struct tw68_dev *dev =3D video_drvdata(file); @@ -831,7 +843,8 @@ static int vidioc_g_register(struct file *file, void *p= riv, return 0; } =20 -static int vidioc_s_register(struct file *file, void *priv, +static int vidioc_s_register(struct file *file, + struct video_device_state *state, const struct v4l2_dbg_register *reg) { struct tw68_dev *dev =3D video_drvdata(file); diff --git a/drivers/media/pci/tw686x/tw686x-video.c b/drivers/media/pci/tw= 686x/tw686x-video.c index 785dd797d921b515ead7b500edd01a4ac0618e6d..bee07ce0dfd207aeda5094e0939= 4d2f3d92ae3c6 100644 --- a/drivers/media/pci/tw686x/tw686x-video.c +++ b/drivers/media/pci/tw686x/tw686x-video.c @@ -618,7 +618,8 @@ static const struct v4l2_ctrl_ops ctrl_ops =3D { .s_ctrl =3D tw686x_s_ctrl, }; =20 -static int tw686x_g_fmt_vid_cap(struct file *file, void *priv, +static int tw686x_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct tw686x_video_channel *vc =3D video_drvdata(file); @@ -634,7 +635,8 @@ static int tw686x_g_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int tw686x_try_fmt_vid_cap(struct file *file, void *priv, +static int tw686x_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct tw686x_video_channel *vc =3D video_drvdata(file); @@ -731,7 +733,8 @@ static int tw686x_set_format(struct tw686x_video_channe= l *vc, return 0; } =20 -static int tw686x_s_fmt_vid_cap(struct file *file, void *priv, +static int tw686x_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct tw686x_video_channel *vc =3D video_drvdata(file); @@ -743,7 +746,7 @@ static int tw686x_s_fmt_vid_cap(struct file *file, void= *priv, return -EBUSY; =20 area =3D vc->width * vc->height; - err =3D tw686x_try_fmt_vid_cap(file, priv, f); + err =3D tw686x_try_fmt_vid_cap(file, state, f); if (err) return err; =20 @@ -753,7 +756,8 @@ static int tw686x_s_fmt_vid_cap(struct file *file, void= *priv, realloc); } =20 -static int tw686x_querycap(struct file *file, void *priv, +static int tw686x_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct tw686x_video_channel *vc =3D video_drvdata(file); @@ -798,7 +802,8 @@ static int tw686x_set_standard(struct tw686x_video_chan= nel *vc, v4l2_std_id id) return 0; } =20 -static int tw686x_s_std(struct file *file, void *priv, v4l2_std_id id) +static int tw686x_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id id) { struct tw686x_video_channel *vc =3D video_drvdata(file); struct v4l2_format f; @@ -818,8 +823,8 @@ static int tw686x_s_std(struct file *file, void *priv, = v4l2_std_id id) * calling g_fmt and s_fmt will sanitize the height * according to the standard. */ - tw686x_g_fmt_vid_cap(file, priv, &f); - tw686x_s_fmt_vid_cap(file, priv, &f); + tw686x_g_fmt_vid_cap(file, state, &f); + tw686x_s_fmt_vid_cap(file, state, &f); =20 /* * Frame decimation depends on the chosen standard, @@ -829,7 +834,8 @@ static int tw686x_s_std(struct file *file, void *priv, = v4l2_std_id id) return 0; } =20 -static int tw686x_querystd(struct file *file, void *priv, v4l2_std_id *std) +static int tw686x_querystd(struct file *file, + struct video_device_state *state, v4l2_std_id *std) { struct tw686x_video_channel *vc =3D video_drvdata(file); struct tw686x_dev *dev =3D vc->dev; @@ -887,7 +893,8 @@ static int tw686x_querystd(struct file *file, void *pri= v, v4l2_std_id *std) return 0; } =20 -static int tw686x_g_std(struct file *file, void *priv, v4l2_std_id *id) +static int tw686x_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *id) { struct tw686x_video_channel *vc =3D video_drvdata(file); =20 @@ -895,7 +902,8 @@ static int tw686x_g_std(struct file *file, void *priv, = v4l2_std_id *id) return 0; } =20 -static int tw686x_enum_framesizes(struct file *file, void *priv, +static int tw686x_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct tw686x_video_channel *vc =3D video_drvdata(file); @@ -912,7 +920,8 @@ static int tw686x_enum_framesizes(struct file *file, vo= id *priv, return 0; } =20 -static int tw686x_enum_frameintervals(struct file *file, void *priv, +static int tw686x_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *ival) { struct tw686x_video_channel *vc =3D video_drvdata(file); @@ -931,7 +940,8 @@ static int tw686x_enum_frameintervals(struct file *file= , void *priv, return 0; } =20 -static int tw686x_g_parm(struct file *file, void *priv, +static int tw686x_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *sp) { struct tw686x_video_channel *vc =3D video_drvdata(file); @@ -947,7 +957,8 @@ static int tw686x_g_parm(struct file *file, void *priv, return 0; } =20 -static int tw686x_s_parm(struct file *file, void *priv, +static int tw686x_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *sp) { struct tw686x_video_channel *vc =3D video_drvdata(file); @@ -962,10 +973,11 @@ static int tw686x_s_parm(struct file *file, void *pri= v, fps =3D (!numerator || !denominator) ? 0 : denominator / numerator; if (vc->fps !=3D fps) tw686x_set_framerate(vc, fps); - return tw686x_g_parm(file, priv, sp); + return tw686x_g_parm(file, state, sp); } =20 -static int tw686x_enum_fmt_vid_cap(struct file *file, void *priv, +static int tw686x_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index >=3D ARRAY_SIZE(formats)) @@ -986,7 +998,8 @@ static void tw686x_set_input(struct tw686x_video_channe= l *vc, unsigned int i) reg_write(vc->dev, VDMA_CHANNEL_CONFIG[vc->ch], val); } =20 -static int tw686x_s_input(struct file *file, void *priv, unsigned int i) +static int tw686x_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int i) { struct tw686x_video_channel *vc =3D video_drvdata(file); =20 @@ -1004,7 +1017,8 @@ static int tw686x_s_input(struct file *file, void *pr= iv, unsigned int i) return 0; } =20 -static int tw686x_g_input(struct file *file, void *priv, unsigned int *i) +static int tw686x_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { struct tw686x_video_channel *vc =3D video_drvdata(file); =20 @@ -1012,7 +1026,8 @@ static int tw686x_g_input(struct file *file, void *pr= iv, unsigned int *i) return 0; } =20 -static int tw686x_enum_input(struct file *file, void *priv, +static int tw686x_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { struct tw686x_video_channel *vc =3D video_drvdata(file); diff --git a/drivers/media/pci/zoran/zoran_driver.c b/drivers/media/pci/zor= an/zoran_driver.c index 5b4d5dd06edbc07977bc779df6aead637eead898..488f4b4e92e90ccaf27da34ceeb= 7c2b0d0c93894 100644 --- a/drivers/media/pci/zoran/zoran_driver.c +++ b/drivers/media/pci/zoran/zoran_driver.c @@ -245,7 +245,8 @@ static int zoran_set_input(struct zoran *zr, int input) * ioctl routine */ =20 -static int zoran_querycap(struct file *file, void *fh, struct v4l2_capabil= ity *cap) +static int zoran_querycap(struct file *file, struct video_device_state *st= ate, + struct v4l2_capability *cap) { struct zoran *zr =3D video_drvdata(file); =20 @@ -278,7 +279,8 @@ static int zoran_enum_fmt(struct zoran *zr, struct v4l2= _fmtdesc *fmt, int flag) return -EINVAL; } =20 -static int zoran_enum_fmt_vid_cap(struct file *file, void *fh, +static int zoran_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct zoran *zr =3D video_drvdata(file); @@ -308,13 +310,14 @@ static int zoran_g_fmt_vid_out(struct file *file, voi= d *fh, return 0; } =20 -static int zoran_g_fmt_vid_cap(struct file *file, void *fh, +static int zoran_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct zoran *zr =3D video_drvdata(file); =20 if (zr->map_mode !=3D ZORAN_MAP_MODE_RAW) - return zoran_g_fmt_vid_out(file, fh, fmt); + return zoran_g_fmt_vid_out(file, state, fmt); fmt->fmt.pix.width =3D zr->v4l_settings.width; fmt->fmt.pix.height =3D zr->v4l_settings.height; fmt->fmt.pix.sizeimage =3D zr->buffer_size; @@ -391,7 +394,8 @@ static int zoran_try_fmt_vid_out(struct file *file, voi= d *fh, return res; } =20 -static int zoran_try_fmt_vid_cap(struct file *file, void *fh, +static int zoran_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct zoran *zr =3D video_drvdata(file); @@ -399,7 +403,7 @@ static int zoran_try_fmt_vid_cap(struct file *file, voi= d *fh, int i; =20 if (fmt->fmt.pix.pixelformat =3D=3D V4L2_PIX_FMT_MJPEG) - return zoran_try_fmt_vid_out(file, fh, fmt); + return zoran_try_fmt_vid_out(file, state, fmt); =20 for (i =3D 0; i < NUM_FORMATS; i++) if (zoran_formats[i].fourcc =3D=3D fmt->fmt.pix.pixelformat) @@ -507,7 +511,8 @@ static int zoran_s_fmt_vid_out(struct file *file, void = *fh, return res; } =20 -static int zoran_s_fmt_vid_cap(struct file *file, void *fh, +static int zoran_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct zoran *zr =3D video_drvdata(file); @@ -515,7 +520,7 @@ static int zoran_s_fmt_vid_cap(struct file *file, void = *fh, int res =3D 0; =20 if (fmt->fmt.pix.pixelformat =3D=3D V4L2_PIX_FMT_MJPEG) - return zoran_s_fmt_vid_out(file, fh, fmt); + return zoran_s_fmt_vid_out(file, state, fmt); =20 for (i =3D 0; i < NUM_FORMATS; i++) if (fmt->fmt.pix.pixelformat =3D=3D zoran_formats[i].fourcc) @@ -555,7 +560,8 @@ static int zoran_s_fmt_vid_cap(struct file *file, void = *fh, return res; } =20 -static int zoran_g_std(struct file *file, void *fh, v4l2_std_id *std) +static int zoran_g_std(struct file *file, struct video_device_state *state, + v4l2_std_id *std) { struct zoran *zr =3D video_drvdata(file); =20 @@ -563,7 +569,8 @@ static int zoran_g_std(struct file *file, void *fh, v4l= 2_std_id *std) return 0; } =20 -static int zoran_s_std(struct file *file, void *fh, v4l2_std_id std) +static int zoran_s_std(struct file *file, struct video_device_state *state, + v4l2_std_id std) { struct zoran *zr =3D video_drvdata(file); int res =3D 0; @@ -578,7 +585,8 @@ static int zoran_s_std(struct file *file, void *fh, v4l= 2_std_id std) return res; } =20 -static int zoran_enum_input(struct file *file, void *fh, +static int zoran_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { struct zoran *zr =3D video_drvdata(file); @@ -595,7 +603,8 @@ static int zoran_enum_input(struct file *file, void *fh, return 0; } =20 -static int zoran_g_input(struct file *file, void *fh, unsigned int *input) +static int zoran_g_input(struct file *file, struct video_device_state *sta= te, + unsigned int *input) { struct zoran *zr =3D video_drvdata(file); =20 @@ -604,7 +613,8 @@ static int zoran_g_input(struct file *file, void *fh, u= nsigned int *input) return 0; } =20 -static int zoran_s_input(struct file *file, void *fh, unsigned int input) +static int zoran_s_input(struct file *file, struct video_device_state *sta= te, + unsigned int input) { struct zoran *zr =3D video_drvdata(file); int res; @@ -617,7 +627,9 @@ static int zoran_s_input(struct file *file, void *fh, u= nsigned int input) } =20 /* cropping (sub-frame capture) */ -static int zoran_g_selection(struct file *file, void *fh, struct v4l2_sele= ction *sel) +static int zoran_g_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *sel) { struct zoran *zr =3D video_drvdata(file); =20 @@ -652,7 +664,9 @@ static int zoran_g_selection(struct file *file, void *f= h, struct v4l2_selection return 0; } =20 -static int zoran_s_selection(struct file *file, void *fh, struct v4l2_sele= ction *sel) +static int zoran_s_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *sel) { struct zoran *zr =3D video_drvdata(file); struct zoran_jpg_settings settings; diff --git a/drivers/media/platform/allegro-dvt/allegro-core.c b/drivers/me= dia/platform/allegro-dvt/allegro-core.c index 510c3c9661d990c8ae97d4b4d174639b5aa0b13d..a15773c0bfd737c90111e1cee63= 2f63cde551954 100644 --- a/drivers/media/platform/allegro-dvt/allegro-core.c +++ b/drivers/media/platform/allegro-dvt/allegro-core.c @@ -3247,7 +3247,8 @@ static int allegro_release(struct file *file) return 0; } =20 -static int allegro_querycap(struct file *file, void *fh, +static int allegro_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, KBUILD_MODNAME, sizeof(cap->driver)); @@ -3256,7 +3257,8 @@ static int allegro_querycap(struct file *file, void *= fh, return 0; } =20 -static int allegro_enum_fmt_vid(struct file *file, void *fh, +static int allegro_enum_fmt_vid(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { switch (f->type) { @@ -3279,7 +3281,8 @@ static int allegro_enum_fmt_vid(struct file *file, vo= id *fh, return 0; } =20 -static int allegro_g_fmt_vid_cap(struct file *file, void *fh, +static int allegro_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct allegro_channel *channel =3D file_to_channel(file); @@ -3300,7 +3303,8 @@ static int allegro_g_fmt_vid_cap(struct file *file, v= oid *fh, return 0; } =20 -static int allegro_try_fmt_vid_cap(struct file *file, void *fh, +static int allegro_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { f->fmt.pix.field =3D V4L2_FIELD_NONE; @@ -3321,14 +3325,15 @@ static int allegro_try_fmt_vid_cap(struct file *fil= e, void *fh, return 0; } =20 -static int allegro_s_fmt_vid_cap(struct file *file, void *fh, +static int allegro_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct allegro_channel *channel =3D file_to_channel(file); struct vb2_queue *vq; int err; =20 - err =3D allegro_try_fmt_vid_cap(file, fh, f); + err =3D allegro_try_fmt_vid_cap(file, state, f); if (err) return err; =20 @@ -3345,7 +3350,8 @@ static int allegro_s_fmt_vid_cap(struct file *file, v= oid *fh, return 0; } =20 -static int allegro_g_fmt_vid_out(struct file *file, void *fh, +static int allegro_g_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct allegro_channel *channel =3D file_to_channel(file); @@ -3367,7 +3373,8 @@ static int allegro_g_fmt_vid_out(struct file *file, v= oid *fh, return 0; } =20 -static int allegro_try_fmt_vid_out(struct file *file, void *fh, +static int allegro_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { f->fmt.pix.field =3D V4L2_FIELD_NONE; @@ -3392,13 +3399,14 @@ static int allegro_try_fmt_vid_out(struct file *fil= e, void *fh, return 0; } =20 -static int allegro_s_fmt_vid_out(struct file *file, void *fh, +static int allegro_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct allegro_channel *channel =3D file_to_channel(file); int err; =20 - err =3D allegro_try_fmt_vid_out(file, fh, f); + err =3D allegro_try_fmt_vid_out(file, state, f); if (err) return err; =20 @@ -3433,17 +3441,18 @@ static int allegro_channel_cmd_start(struct allegro= _channel *channel) return 0; } =20 -static int allegro_encoder_cmd(struct file *file, void *fh, +static int allegro_encoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_encoder_cmd *cmd) { struct allegro_channel *channel =3D file_to_channel(file); int err; =20 - err =3D v4l2_m2m_ioctl_try_encoder_cmd(file, fh, cmd); + err =3D v4l2_m2m_ioctl_try_encoder_cmd(file, state, cmd); if (err) return err; =20 - err =3D v4l2_m2m_ioctl_encoder_cmd(file, fh, cmd); + err =3D v4l2_m2m_ioctl_encoder_cmd(file, state, cmd); if (err) return err; =20 @@ -3456,7 +3465,8 @@ static int allegro_encoder_cmd(struct file *file, voi= d *fh, return err; } =20 -static int allegro_enum_framesizes(struct file *file, void *fh, +static int allegro_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { switch (fsize->pixel_format) { @@ -3482,7 +3492,8 @@ static int allegro_enum_framesizes(struct file *file,= void *fh, return 0; } =20 -static int allegro_ioctl_streamon(struct file *file, void *priv, +static int allegro_ioctl_streamon(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct allegro_channel *channel =3D file_to_channel(file); @@ -3497,7 +3508,8 @@ static int allegro_ioctl_streamon(struct file *file, = void *priv, return v4l2_m2m_streamon(file, channel->fh.m2m_ctx, type); } =20 -static int allegro_g_parm(struct file *file, void *fh, +static int allegro_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *a) { struct allegro_channel *channel =3D file_to_channel(file); @@ -3514,7 +3526,8 @@ static int allegro_g_parm(struct file *file, void *fh, return 0; } =20 -static int allegro_s_parm(struct file *file, void *fh, +static int allegro_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *a) { struct allegro_channel *channel =3D file_to_channel(file); @@ -3528,7 +3541,7 @@ static int allegro_s_parm(struct file *file, void *fh, timeperframe =3D &a->parm.output.timeperframe; =20 if (timeperframe->numerator =3D=3D 0 || timeperframe->denominator =3D=3D = 0) - return allegro_g_parm(file, fh, a); + return allegro_g_parm(file, state, a); =20 div =3D gcd(timeperframe->denominator, timeperframe->numerator); channel->framerate.numerator =3D timeperframe->denominator / div; diff --git a/drivers/media/platform/amlogic/c3/isp/c3-isp-capture.c b/drive= rs/media/platform/amlogic/c3/isp/c3-isp-capture.c index 11d85f5342f0f41f9f6f70c18344344e3f26dade..ca940876f11dd3e8c4160aacffd= a6c8fa3e81f98 100644 --- a/drivers/media/platform/amlogic/c3/isp/c3-isp-capture.c +++ b/drivers/media/platform/amlogic/c3/isp/c3-isp-capture.c @@ -383,7 +383,8 @@ static void c3_isp_cap_return_buffers(struct c3_isp_cap= ture *cap, } } =20 -static int c3_isp_cap_querycap(struct file *file, void *fh, +static int c3_isp_cap_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, C3_ISP_DRIVER_NAME, sizeof(cap->driver)); @@ -392,7 +393,8 @@ static int c3_isp_cap_querycap(struct file *file, void = *fh, return 0; } =20 -static int c3_isp_cap_enum_fmt(struct file *file, void *fh, +static int c3_isp_cap_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { const struct c3_isp_cap_format_info *fmt; @@ -422,7 +424,8 @@ static int c3_isp_cap_enum_fmt(struct file *file, void = *fh, return -EINVAL; } =20 -static int c3_isp_cap_g_fmt_mplane(struct file *file, void *fh, +static int c3_isp_cap_g_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct c3_isp_capture *cap =3D video_drvdata(file); @@ -432,7 +435,8 @@ static int c3_isp_cap_g_fmt_mplane(struct file *file, v= oid *fh, return 0; } =20 -static int c3_isp_cap_s_fmt_mplane(struct file *file, void *fh, +static int c3_isp_cap_s_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct c3_isp_capture *cap =3D video_drvdata(file); @@ -445,7 +449,8 @@ static int c3_isp_cap_s_fmt_mplane(struct file *file, v= oid *fh, return 0; } =20 -static int c3_isp_cap_try_fmt_mplane(struct file *file, void *fh, +static int c3_isp_cap_try_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { c3_cap_try_fmt(&f->fmt.pix_mp); @@ -453,7 +458,8 @@ static int c3_isp_cap_try_fmt_mplane(struct file *file,= void *fh, return 0; } =20 -static int c3_isp_cap_enum_frmsize(struct file *file, void *fh, +static int c3_isp_cap_enum_frmsize(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { const struct c3_isp_cap_format_info *fmt; diff --git a/drivers/media/platform/amlogic/c3/isp/c3-isp-params.c b/driver= s/media/platform/amlogic/c3/isp/c3-isp-params.c index c80667dd766210d2b2e1ee60c8254a5814b9d81b..b67409f8a6f1d7dc2f500e36161= 8725f8fb144be 100644 --- a/drivers/media/platform/amlogic/c3/isp/c3-isp-params.c +++ b/drivers/media/platform/amlogic/c3/isp/c3-isp-params.c @@ -678,7 +678,8 @@ void c3_isp_params_pre_cfg(struct c3_isp_device *isp) =20 /* V4L2 video operations */ =20 -static int c3_isp_params_querycap(struct file *file, void *fh, +static int c3_isp_params_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, C3_ISP_DRIVER_NAME, sizeof(cap->driver)); @@ -687,7 +688,8 @@ static int c3_isp_params_querycap(struct file *file, vo= id *fh, return 0; } =20 -static int c3_isp_params_enum_fmt(struct file *file, void *fh, +static int c3_isp_params_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index) @@ -698,7 +700,8 @@ static int c3_isp_params_enum_fmt(struct file *file, vo= id *fh, return 0; } =20 -static int c3_isp_params_g_fmt(struct file *file, void *fh, +static int c3_isp_params_g_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct c3_isp_params *params =3D video_drvdata(file); diff --git a/drivers/media/platform/amlogic/c3/isp/c3-isp-stats.c b/drivers= /media/platform/amlogic/c3/isp/c3-isp-stats.c index 8a5d7e1a30c952add138ffb4eb5c7ad36d54d233..1e5e5ae48445c7a7f6f668dc346= a91eaa0553383 100644 --- a/drivers/media/platform/amlogic/c3/isp/c3-isp-stats.c +++ b/drivers/media/platform/amlogic/c3/isp/c3-isp-stats.c @@ -85,7 +85,8 @@ void c3_isp_stats_pre_cfg(struct c3_isp_device *isp) c3_isp_stats_cfg_buff(stats); } =20 -static int c3_isp_stats_querycap(struct file *file, void *fh, +static int c3_isp_stats_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, C3_ISP_DRIVER_NAME, sizeof(cap->driver)); @@ -94,7 +95,8 @@ static int c3_isp_stats_querycap(struct file *file, void = *fh, return 0; } =20 -static int c3_isp_stats_enum_fmt(struct file *file, void *fh, +static int c3_isp_stats_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct c3_isp_stats *stats =3D video_drvdata(file); @@ -107,7 +109,8 @@ static int c3_isp_stats_enum_fmt(struct file *file, voi= d *fh, return 0; } =20 -static int c3_isp_stats_g_fmt(struct file *file, void *fh, +static int c3_isp_stats_g_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct c3_isp_stats *stats =3D video_drvdata(file); diff --git a/drivers/media/platform/amlogic/meson-ge2d/ge2d.c b/drivers/med= ia/platform/amlogic/meson-ge2d/ge2d.c index 5744853a40035e9973e605dd3ffec508641470f2..68d0cdd6bee0893c19087dc67ae= c972ccf88ddeb 100644 --- a/drivers/media/platform/amlogic/meson-ge2d/ge2d.c +++ b/drivers/media/platform/amlogic/meson-ge2d/ge2d.c @@ -432,7 +432,8 @@ queue_init(void *priv, struct vb2_queue *src_vq, struct= vb2_queue *dst_vq) } =20 static int -vidioc_querycap(struct file *file, void *priv, struct v4l2_capability *cap) +vidioc_querycap(struct file *file, struct video_device_state *state, + struct v4l2_capability *cap) { strscpy(cap->driver, GE2D_NAME, sizeof(cap->driver)); strscpy(cap->card, GE2D_NAME, sizeof(cap->card)); @@ -441,7 +442,9 @@ vidioc_querycap(struct file *file, void *priv, struct v= 4l2_capability *cap) return 0; } =20 -static int vidioc_enum_fmt(struct file *file, void *priv, struct v4l2_fmtd= esc *f) +static int vidioc_enum_fmt(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *f) { const struct ge2d_fmt *fmt; =20 @@ -454,7 +457,8 @@ static int vidioc_enum_fmt(struct file *file, void *pri= v, struct v4l2_fmtdesc *f return 0; } =20 -static int vidioc_g_selection(struct file *file, void *priv, +static int vidioc_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct ge2d_ctx *ctx =3D file_to_ge2d_ctx(file); @@ -504,7 +508,8 @@ static int vidioc_g_selection(struct file *file, void *= priv, return 0; } =20 -static int vidioc_s_selection(struct file *file, void *priv, +static int vidioc_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct ge2d_ctx *ctx =3D file_to_ge2d_ctx(file); @@ -572,7 +577,9 @@ static void vidioc_setup_cap_fmt(struct ge2d_ctx *ctx, = struct v4l2_pix_format *f } } =20 -static int vidioc_try_fmt_cap(struct file *file, void *priv, struct v4l2_f= ormat *f) +static int vidioc_try_fmt_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct ge2d_ctx *ctx =3D file_to_ge2d_ctx(file); const struct ge2d_fmt *fmt =3D find_fmt(f); @@ -593,7 +600,9 @@ static int vidioc_try_fmt_cap(struct file *file, void *= priv, struct v4l2_format return 0; } =20 -static int vidioc_s_fmt_cap(struct file *file, void *priv, struct v4l2_for= mat *f) +static int vidioc_s_fmt_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct ge2d_ctx *ctx =3D file_to_ge2d_ctx(file); struct meson_ge2d *ge2d =3D ctx->ge2d; @@ -604,7 +613,7 @@ static int vidioc_s_fmt_cap(struct file *file, void *pr= iv, struct v4l2_format *f /* Adjust all values accordingly to the hardware capabilities * and chosen format. */ - ret =3D vidioc_try_fmt_cap(file, priv, f); + ret =3D vidioc_try_fmt_cap(file, state, f); if (ret) return ret; =20 @@ -629,7 +638,8 @@ static int vidioc_s_fmt_cap(struct file *file, void *pr= iv, struct v4l2_format *f return 0; } =20 -static int vidioc_g_fmt(struct file *file, void *priv, struct v4l2_format = *f) +static int vidioc_g_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct ge2d_ctx *ctx =3D file_to_ge2d_ctx(file); struct vb2_queue *vq; @@ -647,7 +657,9 @@ static int vidioc_g_fmt(struct file *file, void *priv, = struct v4l2_format *f) return 0; } =20 -static int vidioc_try_fmt_out(struct file *file, void *priv, struct v4l2_f= ormat *f) +static int vidioc_try_fmt_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { const struct ge2d_fmt *fmt =3D find_fmt(f); =20 @@ -668,7 +680,9 @@ static int vidioc_try_fmt_out(struct file *file, void *= priv, struct v4l2_format return 0; } =20 -static int vidioc_s_fmt_out(struct file *file, void *priv, struct v4l2_for= mat *f) +static int vidioc_s_fmt_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct ge2d_ctx *ctx =3D file_to_ge2d_ctx(file); struct meson_ge2d *ge2d =3D ctx->ge2d; @@ -679,7 +693,7 @@ static int vidioc_s_fmt_out(struct file *file, void *pr= iv, struct v4l2_format *f /* Adjust all values accordingly to the hardware capabilities * and chosen format. */ - ret =3D vidioc_try_fmt_out(file, priv, f); + ret =3D vidioc_try_fmt_out(file, state, f); if (ret) return ret; =20 diff --git a/drivers/media/platform/amphion/vdec.c b/drivers/media/platform= /amphion/vdec.c index 32eef2fd1f2a90243256709d2a6a1f7d62a6816a..3b41bbad02139cb376def8f8a65= 0416ef98ffd79 100644 --- a/drivers/media/platform/amphion/vdec.c +++ b/drivers/media/platform/amphion/vdec.c @@ -417,7 +417,8 @@ static void vdec_set_last_buffer_dequeued(struct vpu_in= st *inst) } } =20 -static int vdec_querycap(struct file *file, void *fh, struct v4l2_capabili= ty *cap) +static int vdec_querycap(struct file *file, struct video_device_state *sta= te, + struct v4l2_capability *cap) { strscpy(cap->driver, "amphion-vpu", sizeof(cap->driver)); strscpy(cap->card, "amphion vpu decoder", sizeof(cap->card)); @@ -426,7 +427,8 @@ static int vdec_querycap(struct file *file, void *fh, s= truct v4l2_capability *ca return 0; } =20 -static int vdec_enum_fmt(struct file *file, void *fh, struct v4l2_fmtdesc = *f) +static int vdec_enum_fmt(struct file *file, struct video_device_state *sta= te, + struct v4l2_fmtdesc *f) { struct vpu_inst *inst =3D to_inst(file); struct vdec_t *vdec =3D inst->priv; @@ -455,7 +457,8 @@ static int vdec_enum_fmt(struct file *file, void *fh, s= truct v4l2_fmtdesc *f) return ret; } =20 -static int vdec_g_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int vdec_g_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct vpu_inst *inst =3D to_inst(file); struct vdec_t *vdec =3D inst->priv; @@ -486,7 +489,8 @@ static int vdec_g_fmt(struct file *file, void *fh, stru= ct v4l2_format *f) return 0; } =20 -static int vdec_try_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int vdec_try_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct vpu_inst *inst =3D to_inst(file); struct vdec_t *vdec =3D inst->priv; @@ -592,7 +596,8 @@ static int vdec_s_fmt_common(struct vpu_inst *inst, str= uct v4l2_format *f) return 0; } =20 -static int vdec_s_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int vdec_s_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct vpu_inst *inst =3D to_inst(file); struct v4l2_pix_format_mplane *pixmp =3D &f->fmt.pix_mp; @@ -625,7 +630,9 @@ static int vdec_s_fmt(struct file *file, void *fh, stru= ct v4l2_format *f) return ret; } =20 -static int vdec_g_selection(struct file *file, void *fh, struct v4l2_selec= tion *s) +static int vdec_g_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *s) { struct vpu_inst *inst =3D to_inst(file); =20 @@ -713,12 +720,14 @@ static int vdec_cmd_stop(struct vpu_inst *inst) return 0; } =20 -static int vdec_decoder_cmd(struct file *file, void *fh, struct v4l2_decod= er_cmd *cmd) +static int vdec_decoder_cmd(struct file *file, + struct video_device_state *state, + struct v4l2_decoder_cmd *cmd) { struct vpu_inst *inst =3D to_inst(file); int ret; =20 - ret =3D v4l2_m2m_ioctl_try_decoder_cmd(file, fh, cmd); + ret =3D v4l2_m2m_ioctl_try_decoder_cmd(file, state, cmd); if (ret) return ret; =20 @@ -1885,7 +1894,6 @@ static struct vpu_inst_ops vdec_inst_ops =3D { =20 static void vdec_init(struct file *file) { - struct vpu_inst *inst =3D to_inst(file); struct v4l2_format f; =20 memset(&f, 0, sizeof(f)); @@ -1894,7 +1902,7 @@ static void vdec_init(struct file *file) f.fmt.pix_mp.width =3D 1280; f.fmt.pix_mp.height =3D 720; f.fmt.pix_mp.field =3D V4L2_FIELD_NONE; - vdec_s_fmt(file, &inst->fh, &f); + vdec_s_fmt(file, NULL, &f); =20 memset(&f, 0, sizeof(f)); f.type =3D V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; @@ -1902,7 +1910,7 @@ static void vdec_init(struct file *file) f.fmt.pix_mp.width =3D 1280; f.fmt.pix_mp.height =3D 720; f.fmt.pix_mp.field =3D V4L2_FIELD_NONE; - vdec_s_fmt(file, &inst->fh, &f); + vdec_s_fmt(file, NULL, &f); } =20 static int vdec_open(struct file *file) diff --git a/drivers/media/platform/amphion/venc.c b/drivers/media/platform= /amphion/venc.c index c5c1f1fbaa80366d5b18b8f24699eb9c3a18ef92..77befc256879d9a0190a4300cdd= b6f72a11cf7cb 100644 --- a/drivers/media/platform/amphion/venc.c +++ b/drivers/media/platform/amphion/venc.c @@ -92,7 +92,8 @@ static const struct vpu_format venc_formats[] =3D { {0, 0, 0, 0}, }; =20 -static int venc_querycap(struct file *file, void *fh, struct v4l2_capabili= ty *cap) +static int venc_querycap(struct file *file, struct video_device_state *sta= te, + struct v4l2_capability *cap) { strscpy(cap->driver, "amphion-vpu", sizeof(cap->driver)); strscpy(cap->card, "amphion vpu encoder", sizeof(cap->card)); @@ -101,7 +102,8 @@ static int venc_querycap(struct file *file, void *fh, s= truct v4l2_capability *ca return 0; } =20 -static int venc_enum_fmt(struct file *file, void *fh, struct v4l2_fmtdesc = *f) +static int venc_enum_fmt(struct file *file, struct video_device_state *sta= te, + struct v4l2_fmtdesc *f) { struct vpu_inst *inst =3D to_inst(file); const struct vpu_format *fmt; @@ -117,7 +119,9 @@ static int venc_enum_fmt(struct file *file, void *fh, s= truct v4l2_fmtdesc *f) return 0; } =20 -static int venc_enum_framesizes(struct file *file, void *fh, struct v4l2_f= rmsizeenum *fsize) +static int venc_enum_framesizes(struct file *file, + struct video_device_state *state, + struct v4l2_frmsizeenum *fsize) { struct vpu_inst *inst =3D to_inst(file); const struct vpu_core_resources *res; @@ -142,7 +146,9 @@ static int venc_enum_framesizes(struct file *file, void= *fh, struct v4l2_frmsize return 0; } =20 -static int venc_enum_frameintervals(struct file *file, void *fh, struct v4= l2_frmivalenum *fival) +static int venc_enum_frameintervals(struct file *file, + struct video_device_state *state, + struct v4l2_frmivalenum *fival) { struct vpu_inst *inst =3D to_inst(file); const struct vpu_core_resources *res; @@ -174,7 +180,8 @@ static int venc_enum_frameintervals(struct file *file, = void *fh, struct v4l2_frm return 0; } =20 -static int venc_g_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int venc_g_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct vpu_inst *inst =3D to_inst(file); struct venc_t *venc =3D inst->priv; @@ -203,7 +210,8 @@ static int venc_g_fmt(struct file *file, void *fh, stru= ct v4l2_format *f) return 0; } =20 -static int venc_try_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int venc_try_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct vpu_inst *inst =3D to_inst(file); struct vpu_format fmt; @@ -213,7 +221,8 @@ static int venc_try_fmt(struct file *file, void *fh, st= ruct v4l2_format *f) return 0; } =20 -static int venc_s_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int venc_s_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct vpu_inst *inst =3D to_inst(file); struct vpu_format fmt; @@ -265,7 +274,8 @@ static int venc_s_fmt(struct file *file, void *fh, stru= ct v4l2_format *f) return 0; } =20 -static int venc_g_parm(struct file *file, void *fh, struct v4l2_streamparm= *parm) +static int venc_g_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *parm) { struct vpu_inst *inst =3D to_inst(file); struct venc_t *venc =3D inst->priv; @@ -289,7 +299,8 @@ static int venc_g_parm(struct file *file, void *fh, str= uct v4l2_streamparm *parm return 0; } =20 -static int venc_s_parm(struct file *file, void *fh, struct v4l2_streamparm= *parm) +static int venc_s_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *parm) { struct vpu_inst *inst =3D to_inst(file); struct venc_t *venc =3D inst->priv; @@ -328,7 +339,9 @@ static int venc_s_parm(struct file *file, void *fh, str= uct v4l2_streamparm *parm return 0; } =20 -static int venc_g_selection(struct file *file, void *fh, struct v4l2_selec= tion *s) +static int venc_g_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *s) { struct vpu_inst *inst =3D to_inst(file); struct venc_t *venc =3D inst->priv; @@ -382,7 +395,9 @@ static int venc_valid_crop(struct venc_t *venc, const s= truct vpu_core_resources return 0; } =20 -static int venc_s_selection(struct file *file, void *fh, struct v4l2_selec= tion *s) +static int venc_s_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *s) { struct vpu_inst *inst =3D to_inst(file); const struct vpu_core_resources *res; @@ -449,12 +464,14 @@ static int venc_request_eos(struct vpu_inst *inst) return 0; } =20 -static int venc_encoder_cmd(struct file *file, void *fh, struct v4l2_encod= er_cmd *cmd) +static int venc_encoder_cmd(struct file *file, + struct video_device_state *state, + struct v4l2_encoder_cmd *cmd) { struct vpu_inst *inst =3D to_inst(file); int ret; =20 - ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, fh, cmd); + ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, state, cmd); if (ret) return ret; =20 @@ -1288,7 +1305,7 @@ static void venc_init(struct file *file) f.fmt.pix_mp.width =3D 1280; f.fmt.pix_mp.height =3D 720; f.fmt.pix_mp.field =3D V4L2_FIELD_NONE; - venc_s_fmt(file, &inst->fh, &f); + venc_s_fmt(file, NULL, &f); =20 memset(&f, 0, sizeof(f)); f.type =3D V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; @@ -1296,13 +1313,13 @@ static void venc_init(struct file *file) f.fmt.pix_mp.width =3D 1280; f.fmt.pix_mp.height =3D 720; f.fmt.pix_mp.field =3D V4L2_FIELD_NONE; - venc_s_fmt(file, &inst->fh, &f); + venc_s_fmt(file, NULL, &f); =20 memset(&parm, 0, sizeof(parm)); parm.type =3D V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE; parm.parm.capture.timeperframe.numerator =3D 1; parm.parm.capture.timeperframe.denominator =3D 30; - venc_s_parm(file, &inst->fh, &parm); + venc_s_parm(file, NULL, &parm); } =20 static int venc_open(struct file *file) diff --git a/drivers/media/platform/aspeed/aspeed-video.c b/drivers/media/p= latform/aspeed/aspeed-video.c index b83e43245277b4730603280e4f00b2b75b25f06b..b79d8c4aaf15ba06d1f4d5d2b0a= eeb0df45c308f 100644 --- a/drivers/media/platform/aspeed/aspeed-video.c +++ b/drivers/media/platform/aspeed/aspeed-video.c @@ -1428,7 +1428,8 @@ static void aspeed_video_stop(struct aspeed_video *vi= deo) video->flags =3D 0; } =20 -static int aspeed_video_querycap(struct file *file, void *fh, +static int aspeed_video_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, DEVICE_NAME, sizeof(cap->driver)); @@ -1439,7 +1440,8 @@ static int aspeed_video_querycap(struct file *file, v= oid *fh, return 0; } =20 -static int aspeed_video_enum_format(struct file *file, void *fh, +static int aspeed_video_enum_format(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct aspeed_video *video =3D video_drvdata(file); @@ -1452,7 +1454,8 @@ static int aspeed_video_enum_format(struct file *file= , void *fh, return 0; } =20 -static int aspeed_video_get_format(struct file *file, void *fh, +static int aspeed_video_get_format(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct aspeed_video *video =3D video_drvdata(file); @@ -1462,7 +1465,8 @@ static int aspeed_video_get_format(struct file *file,= void *fh, return 0; } =20 -static int aspeed_video_set_format(struct file *file, void *fh, +static int aspeed_video_set_format(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct aspeed_video *video =3D video_drvdata(file); @@ -1485,7 +1489,8 @@ static int aspeed_video_set_format(struct file *file,= void *fh, return 0; } =20 -static int aspeed_video_enum_input(struct file *file, void *fh, +static int aspeed_video_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { struct aspeed_video *video =3D video_drvdata(file); @@ -1501,7 +1506,9 @@ static int aspeed_video_enum_input(struct file *file,= void *fh, return 0; } =20 -static int aspeed_video_get_input(struct file *file, void *fh, unsigned in= t *i) +static int aspeed_video_get_input(struct file *file, + struct video_device_state *state, + unsigned int *i) { struct aspeed_video *video =3D video_drvdata(file); =20 @@ -1510,7 +1517,9 @@ static int aspeed_video_get_input(struct file *file, = void *fh, unsigned int *i) return 0; } =20 -static int aspeed_video_set_input(struct file *file, void *fh, unsigned in= t i) +static int aspeed_video_set_input(struct file *file, + struct video_device_state *state, + unsigned int i) { struct aspeed_video *video =3D video_drvdata(file); =20 @@ -1557,7 +1566,8 @@ static int aspeed_video_set_input(struct file *file, = void *fh, unsigned int i) return 0; } =20 -static int aspeed_video_get_parm(struct file *file, void *fh, +static int aspeed_video_get_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *a) { struct aspeed_video *video =3D video_drvdata(file); @@ -1573,7 +1583,8 @@ static int aspeed_video_get_parm(struct file *file, v= oid *fh, return 0; } =20 -static int aspeed_video_set_parm(struct file *file, void *fh, +static int aspeed_video_set_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *a) { unsigned int frame_rate =3D 0; @@ -1601,7 +1612,8 @@ static int aspeed_video_set_parm(struct file *file, v= oid *fh, return 0; } =20 -static int aspeed_video_enum_framesizes(struct file *file, void *fh, +static int aspeed_video_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct aspeed_video *video =3D video_drvdata(file); @@ -1619,7 +1631,8 @@ static int aspeed_video_enum_framesizes(struct file *= file, void *fh, return 0; } =20 -static int aspeed_video_enum_frameintervals(struct file *file, void *fh, +static int aspeed_video_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *fival) { struct aspeed_video *video =3D video_drvdata(file); @@ -1645,7 +1658,8 @@ static int aspeed_video_enum_frameintervals(struct fi= le *file, void *fh, return 0; } =20 -static int aspeed_video_set_dv_timings(struct file *file, void *fh, +static int aspeed_video_set_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct aspeed_video *video =3D video_drvdata(file); @@ -1667,7 +1681,8 @@ static int aspeed_video_set_dv_timings(struct file *f= ile, void *fh, return 0; } =20 -static int aspeed_video_get_dv_timings(struct file *file, void *fh, +static int aspeed_video_get_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct aspeed_video *video =3D video_drvdata(file); @@ -1678,7 +1693,8 @@ static int aspeed_video_get_dv_timings(struct file *f= ile, void *fh, return 0; } =20 -static int aspeed_video_query_dv_timings(struct file *file, void *fh, +static int aspeed_video_query_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { int rc; @@ -1706,14 +1722,16 @@ static int aspeed_video_query_dv_timings(struct fil= e *file, void *fh, return video->v4l2_input_status ? -ENOLINK : 0; } =20 -static int aspeed_video_enum_dv_timings(struct file *file, void *fh, +static int aspeed_video_enum_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_enum_dv_timings *timings) { return v4l2_enum_dv_timings_cap(timings, &aspeed_video_timings_cap, NULL, NULL); } =20 -static int aspeed_video_dv_timings_cap(struct file *file, void *fh, +static int aspeed_video_dv_timings_cap(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings_cap *cap) { *cap =3D aspeed_video_timings_cap; diff --git a/drivers/media/platform/atmel/atmel-isi.c b/drivers/media/platf= orm/atmel/atmel-isi.c index a05a744cbb7569abff60ccf1a0825a9c3c52ed8a..7154cef73da0c23fdf393193864= 5cbcd135dc631 100644 --- a/drivers/media/platform/atmel/atmel-isi.c +++ b/drivers/media/platform/atmel/atmel-isi.c @@ -528,7 +528,8 @@ static const struct vb2_ops isi_video_qops =3D { .stop_streaming =3D stop_streaming, }; =20 -static int isi_g_fmt_vid_cap(struct file *file, void *priv, +static int isi_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct atmel_isi *isi =3D video_drvdata(file); @@ -651,7 +652,8 @@ static int isi_set_fmt(struct atmel_isi *isi, struct v4= l2_format *f) return 0; } =20 -static int isi_s_fmt_vid_cap(struct file *file, void *priv, +static int isi_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct atmel_isi *isi =3D video_drvdata(file); @@ -662,7 +664,8 @@ static int isi_s_fmt_vid_cap(struct file *file, void *p= riv, return isi_set_fmt(isi, f); } =20 -static int isi_try_fmt_vid_cap(struct file *file, void *priv, +static int isi_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct atmel_isi *isi =3D video_drvdata(file); @@ -670,7 +673,8 @@ static int isi_try_fmt_vid_cap(struct file *file, void = *priv, return isi_try_fmt(isi, f, NULL); } =20 -static int isi_enum_fmt_vid_cap(struct file *file, void *priv, +static int isi_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct atmel_isi *isi =3D video_drvdata(file); @@ -682,7 +686,8 @@ static int isi_enum_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int isi_querycap(struct file *file, void *priv, +static int isi_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, "atmel-isi", sizeof(cap->driver)); @@ -691,7 +696,8 @@ static int isi_querycap(struct file *file, void *priv, return 0; } =20 -static int isi_enum_input(struct file *file, void *priv, +static int isi_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { if (i->index !=3D 0) @@ -702,34 +708,39 @@ static int isi_enum_input(struct file *file, void *pr= iv, return 0; } =20 -static int isi_g_input(struct file *file, void *priv, unsigned int *i) +static int isi_g_input(struct file *file, struct video_device_state *state, + unsigned int *i) { *i =3D 0; return 0; } =20 -static int isi_s_input(struct file *file, void *priv, unsigned int i) +static int isi_s_input(struct file *file, struct video_device_state *state, + unsigned int i) { if (i > 0) return -EINVAL; return 0; } =20 -static int isi_g_parm(struct file *file, void *fh, struct v4l2_streamparm = *a) +static int isi_g_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *a) { struct atmel_isi *isi =3D video_drvdata(file); =20 return v4l2_g_parm_cap(video_devdata(file), isi->entity.subdev, a); } =20 -static int isi_s_parm(struct file *file, void *fh, struct v4l2_streamparm = *a) +static int isi_s_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *a) { struct atmel_isi *isi =3D video_drvdata(file); =20 return v4l2_s_parm_cap(video_devdata(file), isi->entity.subdev, a); } =20 -static int isi_enum_framesizes(struct file *file, void *fh, +static int isi_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct atmel_isi *isi =3D video_drvdata(file); @@ -758,7 +769,8 @@ static int isi_enum_framesizes(struct file *file, void = *fh, return 0; } =20 -static int isi_enum_frameintervals(struct file *file, void *fh, +static int isi_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *fival) { struct atmel_isi *isi =3D video_drvdata(file); diff --git a/drivers/media/platform/broadcom/bcm2835-unicam.c b/drivers/med= ia/platform/broadcom/bcm2835-unicam.c index f10064107d543caf867249d0566a0f42d6d8c4c6..e5cccad04b010bf9533035fb787= 824f4f606beed 100644 --- a/drivers/media/platform/broadcom/bcm2835-unicam.c +++ b/drivers/media/platform/broadcom/bcm2835-unicam.c @@ -1831,7 +1831,8 @@ static const struct vb2_ops unicam_video_qops =3D { * V4L2 video device operations */ =20 -static int unicam_querycap(struct file *file, void *priv, +static int unicam_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, UNICAM_MODULE_NAME, sizeof(cap->driver)); @@ -1842,7 +1843,8 @@ static int unicam_querycap(struct file *file, void *p= riv, return 0; } =20 -static int unicam_enum_fmt_vid(struct file *file, void *priv, +static int unicam_enum_fmt_vid(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { unsigned int index; @@ -1873,7 +1875,8 @@ static int unicam_enum_fmt_vid(struct file *file, voi= d *priv, return -EINVAL; } =20 -static int unicam_g_fmt_vid(struct file *file, void *priv, +static int unicam_g_fmt_vid(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct unicam_node *node =3D video_drvdata(file); @@ -1905,7 +1908,8 @@ static void __unicam_try_fmt_vid(struct unicam_node *= node, pix->field =3D V4L2_FIELD_NONE; } =20 -static int unicam_try_fmt_vid(struct file *file, void *priv, +static int unicam_try_fmt_vid(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct unicam_node *node =3D video_drvdata(file); @@ -1914,7 +1918,8 @@ static int unicam_try_fmt_vid(struct file *file, void= *priv, return 0; } =20 -static int unicam_s_fmt_vid(struct file *file, void *priv, +static int unicam_s_fmt_vid(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct unicam_node *node =3D video_drvdata(file); @@ -1928,7 +1933,8 @@ static int unicam_s_fmt_vid(struct file *file, void *= priv, return 0; } =20 -static int unicam_enum_fmt_meta(struct file *file, void *priv, +static int unicam_enum_fmt_meta(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { unsigned int i, index; @@ -1950,7 +1956,8 @@ static int unicam_enum_fmt_meta(struct file *file, vo= id *priv, return -EINVAL; } =20 -static int unicam_g_fmt_meta(struct file *file, void *priv, +static int unicam_g_fmt_meta(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct unicam_node *node =3D video_drvdata(file); @@ -1981,7 +1988,8 @@ __unicam_try_fmt_meta(struct unicam_node *node, struc= t v4l2_meta_format *meta) return fmtinfo; } =20 -static int unicam_try_fmt_meta(struct file *file, void *priv, +static int unicam_try_fmt_meta(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct unicam_node *node =3D video_drvdata(file); @@ -1990,7 +1998,8 @@ static int unicam_try_fmt_meta(struct file *file, voi= d *priv, return 0; } =20 -static int unicam_s_fmt_meta(struct file *file, void *priv, +static int unicam_s_fmt_meta(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct unicam_node *node =3D video_drvdata(file); @@ -2004,7 +2013,8 @@ static int unicam_s_fmt_meta(struct file *file, void = *priv, return 0; } =20 -static int unicam_enum_framesizes(struct file *file, void *fh, +static int unicam_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct unicam_node *node =3D video_drvdata(file); @@ -2042,7 +2052,8 @@ static int unicam_enum_framesizes(struct file *file, = void *fh, return 0; } =20 -static int unicam_log_status(struct file *file, void *fh) +static int unicam_log_status(struct file *file, + struct video_device_state *state) { struct unicam_node *node =3D video_drvdata(file); struct unicam_device *unicam =3D node->dev; diff --git a/drivers/media/platform/chips-media/coda/coda-common.c b/driver= s/media/platform/chips-media/coda/coda-common.c index 9a57b042d9fd01abd066ca780f772796030ec473..3088efbf4fde60c4ef03e91e21c= e856536fd2535 100644 --- a/drivers/media/platform/chips-media/coda/coda-common.c +++ b/drivers/media/platform/chips-media/coda/coda-common.c @@ -424,7 +424,8 @@ static struct vdoa_data *coda_get_vdoa_data(void) /* * V4L2 ioctl() operations. */ -static int coda_querycap(struct file *file, void *priv, +static int coda_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct coda_ctx *ctx =3D file_to_ctx(file); @@ -442,7 +443,8 @@ static const u32 coda_formats_420[CODA_MAX_FORMATS] =3D= { V4L2_PIX_FMT_YVU420, }; =20 -static int coda_enum_fmt(struct file *file, void *priv, +static int coda_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct video_device *vdev =3D video_devdata(file); @@ -493,8 +495,8 @@ static int coda_enum_fmt(struct file *file, void *priv, return 0; } =20 -static int coda_g_fmt(struct file *file, void *priv, - struct v4l2_format *f) +static int coda_g_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct coda_q_data *q_data; struct coda_ctx *ctx =3D file_to_ctx(file); @@ -655,7 +657,8 @@ static int coda_try_fmt(struct coda_ctx *ctx, const str= uct coda_codec *codec, return 0; } =20 -static int coda_try_fmt_vid_cap(struct file *file, void *priv, +static int coda_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct coda_ctx *ctx =3D file_to_ctx(file); @@ -761,7 +764,8 @@ static void coda_set_default_colorspace(struct v4l2_pix= _format *fmt) fmt->quantization =3D V4L2_QUANTIZATION_DEFAULT; } =20 -static int coda_try_fmt_vid_out(struct file *file, void *priv, +static int coda_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct coda_ctx *ctx =3D file_to_ctx(file); @@ -855,7 +859,8 @@ static int coda_s_fmt(struct coda_ctx *ctx, struct v4l2= _format *f, return 0; } =20 -static int coda_s_fmt_vid_cap(struct file *file, void *priv, +static int coda_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct coda_ctx *ctx =3D file_to_ctx(file); @@ -874,7 +879,7 @@ static int coda_s_fmt_vid_cap(struct file *file, void *= priv, vscale =3D coda_jpeg_scale(q_data_src->height, f->fmt.pix.height); } =20 - ret =3D coda_try_fmt_vid_cap(file, priv, f); + ret =3D coda_try_fmt_vid_cap(file, state, f); if (ret) return ret; =20 @@ -907,7 +912,8 @@ static int coda_s_fmt_vid_cap(struct file *file, void *= priv, return 0; } =20 -static int coda_s_fmt_vid_out(struct file *file, void *priv, +static int coda_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct coda_ctx *ctx =3D file_to_ctx(file); @@ -916,7 +922,7 @@ static int coda_s_fmt_vid_out(struct file *file, void *= priv, struct vb2_queue *dst_vq; int ret; =20 - ret =3D coda_try_fmt_vid_out(file, priv, f); + ret =3D coda_try_fmt_vid_out(file, state, f); if (ret) return ret; =20 @@ -956,14 +962,15 @@ static int coda_s_fmt_vid_out(struct file *file, void= *priv, =20 memset(&f_cap, 0, sizeof(f_cap)); f_cap.type =3D V4L2_BUF_TYPE_VIDEO_CAPTURE; - coda_g_fmt(file, priv, &f_cap); + coda_g_fmt(file, state, &f_cap); f_cap.fmt.pix.width =3D f->fmt.pix.width; f_cap.fmt.pix.height =3D f->fmt.pix.height; =20 - return coda_s_fmt_vid_cap(file, priv, &f_cap); + return coda_s_fmt_vid_cap(file, state, &f_cap); } =20 -static int coda_reqbufs(struct file *file, void *priv, +static int coda_reqbufs(struct file *file, + struct video_device_state *state, struct v4l2_requestbuffers *rb) { struct coda_ctx *ctx =3D file_to_ctx(file); @@ -983,7 +990,8 @@ static int coda_reqbufs(struct file *file, void *priv, return 0; } =20 -static int coda_qbuf(struct file *file, void *priv, +static int coda_qbuf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf) { struct coda_ctx *ctx =3D file_to_ctx(file); @@ -995,7 +1003,8 @@ static int coda_qbuf(struct file *file, void *priv, return v4l2_m2m_qbuf(file, ctx->fh.m2m_ctx, buf); } =20 -static int coda_dqbuf(struct file *file, void *priv, struct v4l2_buffer *b= uf) +static int coda_dqbuf(struct file *file, struct video_device_state *state, + struct v4l2_buffer *buf) { struct coda_ctx *ctx =3D file_to_ctx(file); int ret; @@ -1022,7 +1031,8 @@ void coda_m2m_buf_done(struct coda_ctx *ctx, struct v= b2_v4l2_buffer *buf, v4l2_m2m_buf_done(buf, state); } =20 -static int coda_g_selection(struct file *file, void *fh, +static int coda_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct coda_ctx *ctx =3D file_to_ctx(file); @@ -1068,7 +1078,8 @@ static int coda_g_selection(struct file *file, void *= fh, return 0; } =20 -static int coda_s_selection(struct file *file, void *fh, +static int coda_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct coda_ctx *ctx =3D file_to_ctx(file); @@ -1105,7 +1116,7 @@ static int coda_s_selection(struct file *file, void *= fh, fallthrough; case V4L2_SEL_TGT_NATIVE_SIZE: case V4L2_SEL_TGT_COMPOSE: - return coda_g_selection(file, fh, s); + return coda_g_selection(file, state, s); default: /* v4l2-compliance expects this to fail for read-only targets */ return -EINVAL; @@ -1123,14 +1134,15 @@ static void coda_wake_up_capture_queue(struct coda_= ctx *ctx) wake_up(&dst_vq->done_wq); } =20 -static int coda_encoder_cmd(struct file *file, void *fh, +static int coda_encoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_encoder_cmd *ec) { struct coda_ctx *ctx =3D file_to_ctx(file); struct vb2_v4l2_buffer *buf; int ret; =20 - ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, fh, ec); + ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, state, ec); if (ret < 0) return ret; =20 @@ -1204,7 +1216,8 @@ static bool coda_mark_last_dst_buf(struct coda_ctx *c= tx) return true; } =20 -static int coda_decoder_cmd(struct file *file, void *fh, +static int coda_decoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_decoder_cmd *dc) { struct coda_ctx *ctx =3D file_to_ctx(file); @@ -1215,7 +1228,7 @@ static int coda_decoder_cmd(struct file *file, void *= fh, bool wakeup; int ret; =20 - ret =3D v4l2_m2m_ioctl_try_decoder_cmd(file, fh, dc); + ret =3D v4l2_m2m_ioctl_try_decoder_cmd(file, state, dc); if (ret < 0) return ret; =20 @@ -1283,7 +1296,8 @@ static int coda_decoder_cmd(struct file *file, void *= fh, return 0; } =20 -static int coda_enum_framesizes(struct file *file, void *fh, +static int coda_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct coda_ctx *ctx =3D file_to_ctx(file); @@ -1316,7 +1330,8 @@ static int coda_enum_framesizes(struct file *file, vo= id *fh, return 0; } =20 -static int coda_enum_frameintervals(struct file *file, void *fh, +static int coda_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *f) { struct coda_ctx *ctx =3D file_to_ctx(file); @@ -1356,7 +1371,8 @@ static int coda_enum_frameintervals(struct file *file= , void *fh, return 0; } =20 -static int coda_g_parm(struct file *file, void *fh, struct v4l2_streamparm= *a) +static int coda_g_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *a) { struct coda_ctx *ctx =3D file_to_ctx(file); struct v4l2_fract *tpf; @@ -1439,7 +1455,8 @@ static uint32_t coda_timeperframe_to_frate(struct v4l= 2_fract *timeperframe) timeperframe->denominator; } =20 -static int coda_s_parm(struct file *file, void *fh, struct v4l2_streamparm= *a) +static int coda_s_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *a) { struct coda_ctx *ctx =3D file_to_ctx(file); struct v4l2_fract *tpf; diff --git a/drivers/media/platform/chips-media/wave5/wave5-helper.c b/driv= ers/media/platform/chips-media/wave5/wave5-helper.c index f03ad9c0de2215794b2456c39652785fff236966..9916b2277926a1a815d5dbf7d64= 59e98212904c2 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-helper.c +++ b/drivers/media/platform/chips-media/wave5/wave5-helper.c @@ -140,7 +140,7 @@ int wave5_vpu_subscribe_event(struct v4l2_fh *fh, const= struct v4l2_event_subscr } } =20 -int wave5_vpu_g_fmt_out(struct file *file, void *fh, struct v4l2_format *f) +int wave5_vpu_g_fmt_out(struct file *file, struct video_device_state *stat= e, struct v4l2_format *f) { struct vpu_instance *inst =3D file_to_vpu_inst(file); int i; diff --git a/drivers/media/platform/chips-media/wave5/wave5-helper.h b/driv= ers/media/platform/chips-media/wave5/wave5-helper.h index 976a402e426ff329490717925a08a76d777cbe3e..0bb27137781adcc8987c54196d1= 6883b812cdf5e 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-helper.h +++ b/drivers/media/platform/chips-media/wave5/wave5-helper.h @@ -21,7 +21,8 @@ int wave5_vpu_release_device(struct file *filp, int wave5_vpu_queue_init(void *priv, struct vb2_queue *src_vq, struct vb2_= queue *dst_vq, const struct vb2_ops *ops); int wave5_vpu_subscribe_event(struct v4l2_fh *fh, const struct v4l2_event_= subscription *sub); -int wave5_vpu_g_fmt_out(struct file *file, void *fh, struct v4l2_format *f= ); +int wave5_vpu_g_fmt_out(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f); const struct vpu_format *wave5_find_vpu_fmt(unsigned int v4l2_pix_fmt, const struct vpu_format fmt_list[MAX_FMTS]); const struct vpu_format *wave5_find_vpu_fmt_by_idx(unsigned int idx, diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c b/dri= vers/media/platform/chips-media/wave5/wave5-vpu-dec.c index 72af0faa3ef2e6fb83749044eb91a58f39a3a986..7f0a8c0e13701b89963b856e6d3= e33442e0e7938 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c @@ -457,7 +457,9 @@ static void wave5_vpu_dec_finish_decode(struct vpu_inst= ance *inst) } } =20 -static int wave5_vpu_dec_querycap(struct file *file, void *fh, struct v4l2= _capability *cap) +static int wave5_vpu_dec_querycap(struct file *file, + struct video_device_state *state, + struct v4l2_capability *cap) { strscpy(cap->driver, VPU_DEC_DRV_NAME, sizeof(cap->driver)); strscpy(cap->card, VPU_DEC_DRV_NAME, sizeof(cap->card)); @@ -465,7 +467,9 @@ static int wave5_vpu_dec_querycap(struct file *file, vo= id *fh, struct v4l2_capab return 0; } =20 -static int wave5_vpu_dec_enum_framesizes(struct file *f, void *fh, struct = v4l2_frmsizeenum *fsize) +static int wave5_vpu_dec_enum_framesizes(struct file *f, + struct video_device_state *state, + struct v4l2_frmsizeenum *fsize) { const struct vpu_format *vpu_fmt; =20 @@ -490,7 +494,9 @@ static int wave5_vpu_dec_enum_framesizes(struct file *f= , void *fh, struct v4l2_f return 0; } =20 -static int wave5_vpu_dec_enum_fmt_cap(struct file *file, void *fh, struct = v4l2_fmtdesc *f) +static int wave5_vpu_dec_enum_fmt_cap(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *f) { const struct vpu_format *vpu_fmt; =20 @@ -504,7 +510,9 @@ static int wave5_vpu_dec_enum_fmt_cap(struct file *file= , void *fh, struct v4l2_f return 0; } =20 -static int wave5_vpu_dec_try_fmt_cap(struct file *file, void *fh, struct v= 4l2_format *f) +static int wave5_vpu_dec_try_fmt_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vpu_instance *inst =3D file_to_vpu_inst(file); struct dec_info *p_dec_info =3D &inst->codec_info->dec_info; @@ -545,7 +553,9 @@ static int wave5_vpu_dec_try_fmt_cap(struct file *file,= void *fh, struct v4l2_fo return 0; } =20 -static int wave5_vpu_dec_s_fmt_cap(struct file *file, void *fh, struct v4l= 2_format *f) +static int wave5_vpu_dec_s_fmt_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vpu_instance *inst =3D file_to_vpu_inst(file); int i, ret; @@ -555,7 +565,7 @@ static int wave5_vpu_dec_s_fmt_cap(struct file *file, v= oid *fh, struct v4l2_form __func__, f->fmt.pix_mp.pixelformat, f->fmt.pix_mp.width, f->fmt.pix_mp.= height, f->fmt.pix_mp.num_planes, f->fmt.pix_mp.colorspace, f->fmt.pix_mp.field); =20 - ret =3D wave5_vpu_dec_try_fmt_cap(file, fh, f); + ret =3D wave5_vpu_dec_try_fmt_cap(file, state, f); if (ret) return ret; =20 @@ -604,7 +614,9 @@ static int wave5_vpu_dec_s_fmt_cap(struct file *file, v= oid *fh, struct v4l2_form return 0; } =20 -static int wave5_vpu_dec_g_fmt_cap(struct file *file, void *fh, struct v4l= 2_format *f) +static int wave5_vpu_dec_g_fmt_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vpu_instance *inst =3D file_to_vpu_inst(file); int i; @@ -628,7 +640,9 @@ static int wave5_vpu_dec_g_fmt_cap(struct file *file, v= oid *fh, struct v4l2_form return 0; } =20 -static int wave5_vpu_dec_enum_fmt_out(struct file *file, void *fh, struct = v4l2_fmtdesc *f) +static int wave5_vpu_dec_enum_fmt_out(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *f) { struct vpu_instance *inst =3D file_to_vpu_inst(file); const struct vpu_format *vpu_fmt; @@ -645,7 +659,9 @@ static int wave5_vpu_dec_enum_fmt_out(struct file *file= , void *fh, struct v4l2_f return 0; } =20 -static int wave5_vpu_dec_try_fmt_out(struct file *file, void *fh, struct v= 4l2_format *f) +static int wave5_vpu_dec_try_fmt_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vpu_instance *inst =3D file_to_vpu_inst(file); const struct v4l2_frmsize_stepwise *frmsize; @@ -676,7 +692,9 @@ static int wave5_vpu_dec_try_fmt_out(struct file *file,= void *fh, struct v4l2_fo return 0; } =20 -static int wave5_vpu_dec_s_fmt_out(struct file *file, void *fh, struct v4l= 2_format *f) +static int wave5_vpu_dec_s_fmt_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vpu_instance *inst =3D file_to_vpu_inst(file); const struct vpu_format *vpu_fmt; @@ -687,7 +705,7 @@ static int wave5_vpu_dec_s_fmt_out(struct file *file, v= oid *fh, struct v4l2_form __func__, f->fmt.pix_mp.pixelformat, f->fmt.pix_mp.width, f->fmt.pix_mp.= height, f->fmt.pix_mp.num_planes, f->fmt.pix_mp.field); =20 - ret =3D wave5_vpu_dec_try_fmt_out(file, fh, f); + ret =3D wave5_vpu_dec_try_fmt_out(file, state, f); if (ret) return ret; =20 @@ -725,7 +743,9 @@ static int wave5_vpu_dec_s_fmt_out(struct file *file, v= oid *fh, struct v4l2_form return 0; } =20 -static int wave5_vpu_dec_g_selection(struct file *file, void *fh, struct v= 4l2_selection *s) +static int wave5_vpu_dec_g_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *s) { struct vpu_instance *inst =3D file_to_vpu_inst(file); =20 @@ -759,7 +779,9 @@ static int wave5_vpu_dec_g_selection(struct file *file,= void *fh, struct v4l2_se return 0; } =20 -static int wave5_vpu_dec_s_selection(struct file *file, void *fh, struct v= 4l2_selection *s) +static int wave5_vpu_dec_s_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *s) { struct vpu_instance *inst =3D file_to_vpu_inst(file); =20 @@ -870,7 +892,9 @@ static int wave5_vpu_dec_start(struct vpu_instance *ins= t) return ret; } =20 -static int wave5_vpu_dec_decoder_cmd(struct file *file, void *fh, struct v= 4l2_decoder_cmd *dc) +static int wave5_vpu_dec_decoder_cmd(struct file *file, + struct video_device_state *state, + struct v4l2_decoder_cmd *dc) { struct vpu_instance *inst =3D file_to_vpu_inst(file); struct v4l2_m2m_ctx *m2m_ctx =3D inst->v4l2_fh.m2m_ctx; @@ -878,7 +902,7 @@ static int wave5_vpu_dec_decoder_cmd(struct file *file,= void *fh, struct v4l2_de =20 dev_dbg(inst->dev->dev, "decoder command: %u\n", dc->cmd); =20 - ret =3D v4l2_m2m_ioctl_try_decoder_cmd(file, fh, dc); + ret =3D v4l2_m2m_ioctl_try_decoder_cmd(file, state, dc); if (ret) return ret; =20 diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c b/dri= vers/media/platform/chips-media/wave5/wave5-vpu-enc.c index 506d6c6166a6b0fd9151218cf2c308acef436304..3d7c0dd1b1c34c94ff2263ae0e4= 115d2eeb82b48 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c @@ -330,7 +330,9 @@ static void wave5_vpu_enc_finish_encode(struct vpu_inst= ance *inst) } } =20 -static int wave5_vpu_enc_querycap(struct file *file, void *fh, struct v4l2= _capability *cap) +static int wave5_vpu_enc_querycap(struct file *file, + struct video_device_state *state, + struct v4l2_capability *cap) { strscpy(cap->driver, VPU_ENC_DRV_NAME, sizeof(cap->driver)); strscpy(cap->card, VPU_ENC_DRV_NAME, sizeof(cap->card)); @@ -338,7 +340,9 @@ static int wave5_vpu_enc_querycap(struct file *file, vo= id *fh, struct v4l2_capab return 0; } =20 -static int wave5_vpu_enc_enum_framesizes(struct file *f, void *fh, struct = v4l2_frmsizeenum *fsize) +static int wave5_vpu_enc_enum_framesizes(struct file *f, + struct video_device_state *state, + struct v4l2_frmsizeenum *fsize) { const struct vpu_format *vpu_fmt; =20 @@ -358,7 +362,9 @@ static int wave5_vpu_enc_enum_framesizes(struct file *f= , void *fh, struct v4l2_f return 0; } =20 -static int wave5_vpu_enc_enum_fmt_cap(struct file *file, void *fh, struct = v4l2_fmtdesc *f) +static int wave5_vpu_enc_enum_fmt_cap(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *f) { struct vpu_instance *inst =3D file_to_vpu_inst(file); const struct vpu_format *vpu_fmt; @@ -375,7 +381,9 @@ static int wave5_vpu_enc_enum_fmt_cap(struct file *file= , void *fh, struct v4l2_f return 0; } =20 -static int wave5_vpu_enc_try_fmt_cap(struct file *file, void *fh, struct v= 4l2_format *f) +static int wave5_vpu_enc_try_fmt_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vpu_instance *inst =3D file_to_vpu_inst(file); const struct v4l2_frmsize_stepwise *frmsize; @@ -409,7 +417,9 @@ static int wave5_vpu_enc_try_fmt_cap(struct file *file,= void *fh, struct v4l2_fo return 0; } =20 -static int wave5_vpu_enc_s_fmt_cap(struct file *file, void *fh, struct v4l= 2_format *f) +static int wave5_vpu_enc_s_fmt_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vpu_instance *inst =3D file_to_vpu_inst(file); int i, ret; @@ -418,7 +428,7 @@ static int wave5_vpu_enc_s_fmt_cap(struct file *file, v= oid *fh, struct v4l2_form __func__, f->fmt.pix_mp.pixelformat, f->fmt.pix_mp.width, f->fmt.pix_mp.= height, f->fmt.pix_mp.num_planes, f->fmt.pix_mp.field); =20 - ret =3D wave5_vpu_enc_try_fmt_cap(file, fh, f); + ret =3D wave5_vpu_enc_try_fmt_cap(file, state, f); if (ret) return ret; =20 @@ -443,7 +453,9 @@ static int wave5_vpu_enc_s_fmt_cap(struct file *file, v= oid *fh, struct v4l2_form return 0; } =20 -static int wave5_vpu_enc_g_fmt_cap(struct file *file, void *fh, struct v4l= 2_format *f) +static int wave5_vpu_enc_g_fmt_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vpu_instance *inst =3D file_to_vpu_inst(file); int i; @@ -467,7 +479,9 @@ static int wave5_vpu_enc_g_fmt_cap(struct file *file, v= oid *fh, struct v4l2_form return 0; } =20 -static int wave5_vpu_enc_enum_fmt_out(struct file *file, void *fh, struct = v4l2_fmtdesc *f) +static int wave5_vpu_enc_enum_fmt_out(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *f) { struct vpu_instance *inst =3D file_to_vpu_inst(file); const struct vpu_format *vpu_fmt; @@ -484,7 +498,9 @@ static int wave5_vpu_enc_enum_fmt_out(struct file *file= , void *fh, struct v4l2_f return 0; } =20 -static int wave5_vpu_enc_try_fmt_out(struct file *file, void *fh, struct v= 4l2_format *f) +static int wave5_vpu_enc_try_fmt_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vpu_instance *inst =3D file_to_vpu_inst(file); const struct v4l2_frmsize_stepwise *frmsize; @@ -513,7 +529,9 @@ static int wave5_vpu_enc_try_fmt_out(struct file *file,= void *fh, struct v4l2_fo return 0; } =20 -static int wave5_vpu_enc_s_fmt_out(struct file *file, void *fh, struct v4l= 2_format *f) +static int wave5_vpu_enc_s_fmt_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vpu_instance *inst =3D file_to_vpu_inst(file); const struct vpu_format *vpu_fmt; @@ -524,7 +542,7 @@ static int wave5_vpu_enc_s_fmt_out(struct file *file, v= oid *fh, struct v4l2_form __func__, f->fmt.pix_mp.pixelformat, f->fmt.pix_mp.width, f->fmt.pix_mp.= height, f->fmt.pix_mp.num_planes, f->fmt.pix_mp.field); =20 - ret =3D wave5_vpu_enc_try_fmt_out(file, fh, f); + ret =3D wave5_vpu_enc_try_fmt_out(file, state, f); if (ret) return ret; =20 @@ -574,7 +592,9 @@ static int wave5_vpu_enc_s_fmt_out(struct file *file, v= oid *fh, struct v4l2_form return 0; } =20 -static int wave5_vpu_enc_g_selection(struct file *file, void *fh, struct v= 4l2_selection *s) +static int wave5_vpu_enc_g_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *s) { struct vpu_instance *inst =3D file_to_vpu_inst(file); =20 @@ -603,7 +623,9 @@ static int wave5_vpu_enc_g_selection(struct file *file,= void *fh, struct v4l2_se return 0; } =20 -static int wave5_vpu_enc_s_selection(struct file *file, void *fh, struct v= 4l2_selection *s) +static int wave5_vpu_enc_s_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *s) { struct vpu_instance *inst =3D file_to_vpu_inst(file); =20 @@ -626,13 +648,15 @@ static int wave5_vpu_enc_s_selection(struct file *fil= e, void *fh, struct v4l2_se return 0; } =20 -static int wave5_vpu_enc_encoder_cmd(struct file *file, void *fh, struct v= 4l2_encoder_cmd *ec) +static int wave5_vpu_enc_encoder_cmd(struct file *file, + struct video_device_state *state, + struct v4l2_encoder_cmd *ec) { struct vpu_instance *inst =3D file_to_vpu_inst(file); struct v4l2_m2m_ctx *m2m_ctx =3D inst->v4l2_fh.m2m_ctx; int ret; =20 - ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, fh, ec); + ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, state, ec); if (ret) return ret; =20 @@ -659,7 +683,9 @@ static int wave5_vpu_enc_encoder_cmd(struct file *file,= void *fh, struct v4l2_en return 0; } =20 -static int wave5_vpu_enc_g_parm(struct file *file, void *fh, struct v4l2_s= treamparm *a) +static int wave5_vpu_enc_g_parm(struct file *file, + struct video_device_state *state, + struct v4l2_streamparm *a) { struct vpu_instance *inst =3D file_to_vpu_inst(file); =20 @@ -679,7 +705,9 @@ static int wave5_vpu_enc_g_parm(struct file *file, void= *fh, struct v4l2_streamp return 0; } =20 -static int wave5_vpu_enc_s_parm(struct file *file, void *fh, struct v4l2_s= treamparm *a) +static int wave5_vpu_enc_s_parm(struct file *file, + struct video_device_state *state, + struct v4l2_streamparm *a) { struct vpu_instance *inst =3D file_to_vpu_inst(file); =20 diff --git a/drivers/media/platform/imagination/e5010-jpeg-enc.c b/drivers/= media/platform/imagination/e5010-jpeg-enc.c index c4e0097cb8b7fa310c2c5519d7af4e6e3b378915..840debba40334e7946a171568f6= f2bbfcf448b80 100644 --- a/drivers/media/platform/imagination/e5010-jpeg-enc.c +++ b/drivers/media/platform/imagination/e5010-jpeg-enc.c @@ -228,7 +228,8 @@ static int e5010_set_input_subsampling(void __iomem *co= re_base, int subsampling) }; } =20 -static int e5010_querycap(struct file *file, void *priv, struct v4l2_capab= ility *cap) +static int e5010_querycap(struct file *file, struct video_device_state *st= ate, + struct v4l2_capability *cap) { strscpy(cap->driver, E5010_MODULE_NAME, sizeof(cap->driver)); strscpy(cap->card, E5010_MODULE_NAME, sizeof(cap->card)); @@ -249,7 +250,8 @@ static struct e5010_fmt *find_format(struct v4l2_format= *f) return NULL; } =20 -static int e5010_enum_fmt(struct file *file, void *priv, struct v4l2_fmtde= sc *f) +static int e5010_enum_fmt(struct file *file, struct video_device_state *st= ate, + struct v4l2_fmtdesc *f) { int i, index =3D 0; struct e5010_fmt *fmt =3D NULL; @@ -277,7 +279,8 @@ static int e5010_enum_fmt(struct file *file, void *priv= , struct v4l2_fmtdesc *f) return 0; } =20 -static int e5010_g_fmt(struct file *file, void *priv, struct v4l2_format *= f) +static int e5010_g_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct e5010_context *ctx =3D to_e5010_context(file); struct e5010_q_data *queue; @@ -378,14 +381,16 @@ static int e5010_jpeg_try_fmt(struct v4l2_format *f, = struct e5010_context *ctx) return 0; } =20 -static int e5010_try_fmt(struct file *file, void *priv, struct v4l2_format= *f) +static int e5010_try_fmt(struct file *file, struct video_device_state *sta= te, + struct v4l2_format *f) { struct e5010_context *ctx =3D to_e5010_context(file); =20 return e5010_jpeg_try_fmt(f, ctx); } =20 -static int e5010_s_fmt(struct file *file, void *priv, struct v4l2_format *= f) +static int e5010_s_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct e5010_context *ctx =3D to_e5010_context(file); struct vb2_queue *vq; @@ -434,7 +439,9 @@ static int e5010_s_fmt(struct file *file, void *priv, s= truct v4l2_format *f) return 0; } =20 -static int e5010_enum_framesizes(struct file *file, void *priv, struct v4l= 2_frmsizeenum *fsize) +static int e5010_enum_framesizes(struct file *file, + struct video_device_state *state, + struct v4l2_frmsizeenum *fsize) { struct v4l2_format f; struct e5010_fmt *fmt; @@ -460,7 +467,9 @@ static int e5010_enum_framesizes(struct file *file, voi= d *priv, struct v4l2_frms return 0; } =20 -static int e5010_g_selection(struct file *file, void *fh, struct v4l2_sele= ction *s) +static int e5010_g_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *s) { struct e5010_context *ctx =3D to_e5010_context(file); struct e5010_q_data *queue; @@ -488,7 +497,9 @@ static int e5010_g_selection(struct file *file, void *f= h, struct v4l2_selection return 0; } =20 -static int e5010_s_selection(struct file *file, void *fh, struct v4l2_sele= ction *s) +static int e5010_s_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *s) { struct e5010_context *ctx =3D to_e5010_context(file); struct e5010_q_data *queue; @@ -1258,7 +1269,8 @@ static void e5010_buf_queue(struct vb2_buffer *vb) v4l2_m2m_buf_queue(ctx->fh.m2m_ctx, vbuf); } =20 -static int e5010_encoder_cmd(struct file *file, void *priv, +static int e5010_encoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_encoder_cmd *cmd) { struct e5010_context *ctx =3D to_e5010_context(file); @@ -1267,7 +1279,7 @@ static int e5010_encoder_cmd(struct file *file, void = *priv, =20 cap_vq =3D v4l2_m2m_get_vq(ctx->fh.m2m_ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE_M= PLANE); =20 - ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, &ctx->fh, cmd); + ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, state, cmd); if (ret < 0) return ret; =20 @@ -1275,7 +1287,7 @@ static int e5010_encoder_cmd(struct file *file, void = *priv, !vb2_is_streaming(v4l2_m2m_get_dst_vq(ctx->fh.m2m_ctx))) return 0; =20 - ret =3D v4l2_m2m_ioctl_encoder_cmd(file, &ctx->fh, cmd); + ret =3D v4l2_m2m_ioctl_encoder_cmd(file, state, cmd); if (ret < 0) return ret; =20 diff --git a/drivers/media/platform/intel/pxa_camera.c b/drivers/media/plat= form/intel/pxa_camera.c index bef1e7137f23f02ef0005058c59fb712ba467cea..aa397eccd31a732da54330bb761= f1af219f75ed1 100644 --- a/drivers/media/platform/intel/pxa_camera.c +++ b/drivers/media/platform/intel/pxa_camera.c @@ -1724,7 +1724,8 @@ static int pxa_camera_check_frame(u32 width, u32 heig= ht) } =20 #ifdef CONFIG_VIDEO_ADV_DEBUG -static int pxac_vidioc_g_register(struct file *file, void *priv, +static int pxac_vidioc_g_register(struct file *file, + struct video_device_state *state, struct v4l2_dbg_register *reg) { struct pxa_camera_dev *pcdev =3D video_drvdata(file); @@ -1737,7 +1738,8 @@ static int pxac_vidioc_g_register(struct file *file, = void *priv, return 0; } =20 -static int pxac_vidioc_s_register(struct file *file, void *priv, +static int pxac_vidioc_s_register(struct file *file, + struct video_device_state *state, const struct v4l2_dbg_register *reg) { struct pxa_camera_dev *pcdev =3D video_drvdata(file); @@ -1751,7 +1753,8 @@ static int pxac_vidioc_s_register(struct file *file, = void *priv, } #endif =20 -static int pxac_vidioc_enum_fmt_vid_cap(struct file *filp, void *priv, +static int pxac_vidioc_enum_fmt_vid_cap(struct file *filp, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct pxa_camera_dev *pcdev =3D video_drvdata(filp); @@ -1767,7 +1770,8 @@ static int pxac_vidioc_enum_fmt_vid_cap(struct file *= filp, void *priv, return 0; } =20 -static int pxac_vidioc_g_fmt_vid_cap(struct file *filp, void *priv, +static int pxac_vidioc_g_fmt_vid_cap(struct file *filp, + struct video_device_state *state, struct v4l2_format *f) { struct pxa_camera_dev *pcdev =3D video_drvdata(filp); @@ -1785,7 +1789,8 @@ static int pxac_vidioc_g_fmt_vid_cap(struct file *fil= p, void *priv, return 0; } =20 -static int pxac_vidioc_try_fmt_vid_cap(struct file *filp, void *priv, +static int pxac_vidioc_try_fmt_vid_cap(struct file *filp, + struct video_device_state *state, struct v4l2_format *f) { struct pxa_camera_dev *pcdev =3D video_drvdata(filp); @@ -1852,7 +1857,8 @@ static int pxac_vidioc_try_fmt_vid_cap(struct file *f= ilp, void *priv, return 0; } =20 -static int pxac_vidioc_s_fmt_vid_cap(struct file *filp, void *priv, +static int pxac_vidioc_s_fmt_vid_cap(struct file *filp, + struct video_device_state *state, struct v4l2_format *f) { struct pxa_camera_dev *pcdev =3D video_drvdata(filp); @@ -1875,7 +1881,7 @@ static int pxac_vidioc_s_fmt_vid_cap(struct file *fil= p, void *priv, if (is_busy) return -EBUSY; =20 - ret =3D pxac_vidioc_try_fmt_vid_cap(filp, priv, f); + ret =3D pxac_vidioc_try_fmt_vid_cap(filp, state, f); if (ret) return ret; =20 @@ -1901,7 +1907,8 @@ static int pxac_vidioc_s_fmt_vid_cap(struct file *fil= p, void *priv, return ret; } =20 -static int pxac_vidioc_querycap(struct file *file, void *priv, +static int pxac_vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->bus_info, "platform:pxa-camera", sizeof(cap->bus_info)); @@ -1910,7 +1917,8 @@ static int pxac_vidioc_querycap(struct file *file, vo= id *priv, return 0; } =20 -static int pxac_vidioc_enum_input(struct file *file, void *priv, +static int pxac_vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { if (i->index > 0) @@ -1922,14 +1930,18 @@ static int pxac_vidioc_enum_input(struct file *file= , void *priv, return 0; } =20 -static int pxac_vidioc_g_input(struct file *file, void *priv, unsigned int= *i) +static int pxac_vidioc_g_input(struct file *file, + struct video_device_state *state, + unsigned int *i) { *i =3D 0; =20 return 0; } =20 -static int pxac_vidioc_s_input(struct file *file, void *priv, unsigned int= i) +static int pxac_vidioc_s_input(struct file *file, + struct video_device_state *state, + unsigned int i) { if (i > 0) return -EINVAL; diff --git a/drivers/media/platform/m2m-deinterlace.c b/drivers/media/platf= orm/m2m-deinterlace.c index e07e57d4206baa5e7a467298cb240c3a2cd57cd8..b17d153e0440af996d490bd5468= e68a019df9e30 100644 --- a/drivers/media/platform/m2m-deinterlace.c +++ b/drivers/media/platform/m2m-deinterlace.c @@ -433,7 +433,8 @@ static void deinterlace_device_run(void *priv) /* * video ioctls */ -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, MEM2MEM_NAME, sizeof(cap->driver)); @@ -471,13 +472,15 @@ static int enum_fmt(struct v4l2_fmtdesc *f, u32 type) return -EINVAL; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return enum_fmt(f, MEM2MEM_CAPTURE); } =20 -static int vidioc_enum_fmt_vid_out(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return enum_fmt(f, MEM2MEM_OUTPUT); @@ -514,13 +517,15 @@ static int vidioc_g_fmt(struct deinterlace_ctx *ctx, = struct v4l2_format *f) return 0; } =20 -static int vidioc_g_fmt_vid_out(struct file *file, void *priv, +static int vidioc_g_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { return vidioc_g_fmt(file_to_ctx(file), f); } =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { return vidioc_g_fmt(file_to_ctx(file), f); @@ -541,7 +546,8 @@ static int vidioc_try_fmt(struct v4l2_format *f, struct= deinterlace_fmt *fmt) return 0; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct deinterlace_ctx *ctx =3D file_to_ctx(file); @@ -561,7 +567,8 @@ static int vidioc_try_fmt_vid_cap(struct file *file, vo= id *priv, return vidioc_try_fmt(f, fmt); } =20 -static int vidioc_try_fmt_vid_out(struct file *file, void *priv, +static int vidioc_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct deinterlace_fmt *fmt; @@ -630,24 +637,26 @@ static int vidioc_s_fmt(struct deinterlace_ctx *ctx, = struct v4l2_format *f) return 0; } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int ret; =20 - ret =3D vidioc_try_fmt_vid_cap(file, priv, f); + ret =3D vidioc_try_fmt_vid_cap(file, state, f); if (ret) return ret; return vidioc_s_fmt(file_to_ctx(file), f); } =20 -static int vidioc_s_fmt_vid_out(struct file *file, void *priv, +static int vidioc_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct deinterlace_ctx *ctx =3D file_to_ctx(file); int ret; =20 - ret =3D vidioc_try_fmt_vid_out(file, priv, f); + ret =3D vidioc_try_fmt_vid_out(file, state, f); if (ret) return ret; =20 @@ -658,7 +667,8 @@ static int vidioc_s_fmt_vid_out(struct file *file, void= *priv, return ret; } =20 -static int vidioc_streamon(struct file *file, void *priv, +static int vidioc_streamon(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct deinterlace_ctx *ctx =3D file_to_ctx(file); diff --git a/drivers/media/platform/marvell/mcam-core.c b/drivers/media/pla= tform/marvell/mcam-core.c index b8360d37000a7d0714d28dc8c3cff0de67503fd3..927187c616364b34dc30455af1f= cbe3f19f9965e 100644 --- a/drivers/media/platform/marvell/mcam-core.c +++ b/drivers/media/platform/marvell/mcam-core.c @@ -1323,8 +1323,8 @@ static int mcam_setup_vb2(struct mcam_camera *cam) * The long list of V4L2 ioctl() operations. */ =20 -static int mcam_vidioc_querycap(struct file *file, void *priv, - struct v4l2_capability *cap) +static int mcam_vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct mcam_camera *cam =3D video_drvdata(file); =20 @@ -1336,7 +1336,7 @@ static int mcam_vidioc_querycap(struct file *file, vo= id *priv, =20 =20 static int mcam_vidioc_enum_fmt_vid_cap(struct file *filp, - void *priv, struct v4l2_fmtdesc *fmt) + struct video_device_state *state, struct v4l2_fmtdesc *fmt) { if (fmt->index >=3D N_MCAM_FMTS) return -EINVAL; @@ -1344,8 +1344,8 @@ static int mcam_vidioc_enum_fmt_vid_cap(struct file *= filp, return 0; } =20 -static int mcam_vidioc_try_fmt_vid_cap(struct file *filp, void *priv, - struct v4l2_format *fmt) +static int mcam_vidioc_try_fmt_vid_cap(struct file *filp, + struct video_device_state *state, struct v4l2_format *fmt) { struct mcam_camera *cam =3D video_drvdata(filp); struct mcam_format_struct *f; @@ -1378,8 +1378,8 @@ static int mcam_vidioc_try_fmt_vid_cap(struct file *f= ilp, void *priv, return ret; } =20 -static int mcam_vidioc_s_fmt_vid_cap(struct file *filp, void *priv, - struct v4l2_format *fmt) +static int mcam_vidioc_s_fmt_vid_cap(struct file *filp, + struct video_device_state *state, struct v4l2_format *fmt) { struct mcam_camera *cam =3D video_drvdata(filp); struct mcam_format_struct *f; @@ -1397,7 +1397,7 @@ static int mcam_vidioc_s_fmt_vid_cap(struct file *fil= p, void *priv, /* * See if the formatting works in principle. */ - ret =3D mcam_vidioc_try_fmt_vid_cap(filp, priv, fmt); + ret =3D mcam_vidioc_try_fmt_vid_cap(filp, state, fmt); if (ret) return ret; /* @@ -1425,8 +1425,8 @@ static int mcam_vidioc_s_fmt_vid_cap(struct file *fil= p, void *priv, * The V4l2 spec wants us to be smarter, and actually get this from * the camera (and not mess with it at open time). Someday. */ -static int mcam_vidioc_g_fmt_vid_cap(struct file *filp, void *priv, - struct v4l2_format *f) +static int mcam_vidioc_g_fmt_vid_cap(struct file *filp, + struct video_device_state *state, struct v4l2_format *f) { struct mcam_camera *cam =3D video_drvdata(filp); =20 @@ -1437,8 +1437,8 @@ static int mcam_vidioc_g_fmt_vid_cap(struct file *fil= p, void *priv, /* * We only have one input - the sensor - so minimize the nonsense here. */ -static int mcam_vidioc_enum_input(struct file *filp, void *priv, - struct v4l2_input *input) +static int mcam_vidioc_enum_input(struct file *filp, + struct video_device_state *state, struct v4l2_input *input) { if (input->index !=3D 0) return -EINVAL; @@ -1448,13 +1448,17 @@ static int mcam_vidioc_enum_input(struct file *filp= , void *priv, return 0; } =20 -static int mcam_vidioc_g_input(struct file *filp, void *priv, unsigned int= *i) +static int mcam_vidioc_g_input(struct file *filp, + struct video_device_state *state, + unsigned int *i) { *i =3D 0; return 0; } =20 -static int mcam_vidioc_s_input(struct file *filp, void *priv, unsigned int= i) +static int mcam_vidioc_s_input(struct file *filp, + struct video_device_state *state, + unsigned int i) { if (i !=3D 0) return -EINVAL; @@ -1465,8 +1469,8 @@ static int mcam_vidioc_s_input(struct file *filp, voi= d *priv, unsigned int i) * G/S_PARM. Most of this is done by the sensor, but we are * the level which controls the number of read buffers. */ -static int mcam_vidioc_g_parm(struct file *filp, void *priv, - struct v4l2_streamparm *a) +static int mcam_vidioc_g_parm(struct file *filp, + struct video_device_state *state, struct v4l2_streamparm *a) { struct mcam_camera *cam =3D video_drvdata(filp); int ret; @@ -1476,8 +1480,8 @@ static int mcam_vidioc_g_parm(struct file *filp, void= *priv, return ret; } =20 -static int mcam_vidioc_s_parm(struct file *filp, void *priv, - struct v4l2_streamparm *a) +static int mcam_vidioc_s_parm(struct file *filp, + struct video_device_state *state, struct v4l2_streamparm *a) { struct mcam_camera *cam =3D video_drvdata(filp); int ret; @@ -1487,7 +1491,8 @@ static int mcam_vidioc_s_parm(struct file *filp, void= *priv, return ret; } =20 -static int mcam_vidioc_enum_framesizes(struct file *filp, void *priv, +static int mcam_vidioc_enum_framesizes(struct file *filp, + struct video_device_state *state, struct v4l2_frmsizeenum *sizes) { struct mcam_camera *cam =3D video_drvdata(filp); @@ -1522,7 +1527,8 @@ static int mcam_vidioc_enum_framesizes(struct file *f= ilp, void *priv, return 0; } =20 -static int mcam_vidioc_enum_frameintervals(struct file *filp, void *priv, +static int mcam_vidioc_enum_frameintervals(struct file *filp, + struct video_device_state *state, struct v4l2_frmivalenum *interval) { struct mcam_camera *cam =3D video_drvdata(filp); @@ -1548,7 +1554,8 @@ static int mcam_vidioc_enum_frameintervals(struct fil= e *filp, void *priv, } =20 #ifdef CONFIG_VIDEO_ADV_DEBUG -static int mcam_vidioc_g_register(struct file *file, void *priv, +static int mcam_vidioc_g_register(struct file *file, + struct video_device_state *state, struct v4l2_dbg_register *reg) { struct mcam_camera *cam =3D video_drvdata(file); @@ -1560,7 +1567,8 @@ static int mcam_vidioc_g_register(struct file *file, = void *priv, return 0; } =20 -static int mcam_vidioc_s_register(struct file *file, void *priv, +static int mcam_vidioc_s_register(struct file *file, + struct video_device_state *state, const struct v4l2_dbg_register *reg) { struct mcam_camera *cam =3D video_drvdata(file); diff --git a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c b/drivers= /media/platform/mediatek/jpeg/mtk_jpeg_core.c index 6268d651bdcfd212b58bf686c55660d64b659dfe..a1c10b334535ebb02f20e4709c9= 6dd4a22fc2eaa 100644 --- a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c +++ b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c @@ -130,7 +130,8 @@ static inline struct mtk_jpeg_src_buf *mtk_jpeg_vb2_to_= srcbuf( return container_of(to_vb2_v4l2_buffer(vb), struct mtk_jpeg_src_buf, b); } =20 -static int mtk_jpeg_querycap(struct file *file, void *priv, +static int mtk_jpeg_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct mtk_jpeg_dev *jpeg =3D video_drvdata(file); @@ -209,7 +210,8 @@ static int mtk_jpeg_enum_fmt(struct mtk_jpeg_fmt *mtk_j= peg_formats, int n, return 0; } =20 -static int mtk_jpeg_enum_fmt_vid_cap(struct file *file, void *priv, +static int mtk_jpeg_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct mtk_jpeg_ctx *ctx =3D mtk_jpeg_file_to_ctx(file); @@ -220,7 +222,8 @@ static int mtk_jpeg_enum_fmt_vid_cap(struct file *file,= void *priv, MTK_JPEG_FMT_FLAG_CAPTURE); } =20 -static int mtk_jpeg_enum_fmt_vid_out(struct file *file, void *priv, +static int mtk_jpeg_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct mtk_jpeg_ctx *ctx =3D mtk_jpeg_file_to_ctx(file); @@ -299,7 +302,8 @@ static int mtk_jpeg_try_fmt_mplane(struct v4l2_pix_form= at_mplane *pix_mp, return 0; } =20 -static int mtk_jpeg_g_fmt_vid_mplane(struct file *file, void *priv, +static int mtk_jpeg_g_fmt_vid_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vb2_queue *vq; @@ -348,7 +352,8 @@ static int mtk_jpeg_g_fmt_vid_mplane(struct file *file,= void *priv, return 0; } =20 -static int mtk_jpeg_try_fmt_vid_cap_mplane(struct file *file, void *priv, +static int mtk_jpeg_try_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mtk_jpeg_ctx *ctx =3D mtk_jpeg_file_to_ctx(file); @@ -370,14 +375,15 @@ static int mtk_jpeg_try_fmt_vid_cap_mplane(struct fil= e *file, void *priv, (fmt->fourcc >> 24 & 0xff)); =20 if (ctx->state !=3D MTK_JPEG_INIT) { - mtk_jpeg_g_fmt_vid_mplane(file, priv, f); + mtk_jpeg_g_fmt_vid_mplane(file, state, f); return 0; } =20 return mtk_jpeg_try_fmt_mplane(&f->fmt.pix_mp, fmt); } =20 -static int mtk_jpeg_try_fmt_vid_out_mplane(struct file *file, void *priv, +static int mtk_jpeg_try_fmt_vid_out_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mtk_jpeg_ctx *ctx =3D mtk_jpeg_file_to_ctx(file); @@ -399,7 +405,7 @@ static int mtk_jpeg_try_fmt_vid_out_mplane(struct file = *file, void *priv, (fmt->fourcc >> 24 & 0xff)); =20 if (ctx->state !=3D MTK_JPEG_INIT) { - mtk_jpeg_g_fmt_vid_mplane(file, priv, f); + mtk_jpeg_g_fmt_vid_mplane(file, state, f); return 0; } =20 @@ -461,12 +467,13 @@ static int mtk_jpeg_s_fmt_mplane(struct mtk_jpeg_ctx = *ctx, return 0; } =20 -static int mtk_jpeg_s_fmt_vid_out_mplane(struct file *file, void *priv, +static int mtk_jpeg_s_fmt_vid_out_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int ret; =20 - ret =3D mtk_jpeg_try_fmt_vid_out_mplane(file, priv, f); + ret =3D mtk_jpeg_try_fmt_vid_out_mplane(file, state, f); if (ret) return ret; =20 @@ -474,12 +481,13 @@ static int mtk_jpeg_s_fmt_vid_out_mplane(struct file = *file, void *priv, MTK_JPEG_FMT_FLAG_OUTPUT); } =20 -static int mtk_jpeg_s_fmt_vid_cap_mplane(struct file *file, void *priv, +static int mtk_jpeg_s_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int ret; =20 - ret =3D mtk_jpeg_try_fmt_vid_cap_mplane(file, priv, f); + ret =3D mtk_jpeg_try_fmt_vid_cap_mplane(file, state, f); if (ret) return ret; =20 @@ -509,7 +517,8 @@ static int mtk_jpeg_subscribe_event(struct v4l2_fh *fh, return v4l2_ctrl_subscribe_event(fh, sub); } =20 -static int mtk_jpeg_enc_g_selection(struct file *file, void *priv, +static int mtk_jpeg_enc_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct mtk_jpeg_ctx *ctx =3D mtk_jpeg_file_to_ctx(file); @@ -534,7 +543,8 @@ static int mtk_jpeg_enc_g_selection(struct file *file, = void *priv, return 0; } =20 -static int mtk_jpeg_dec_g_selection(struct file *file, void *priv, +static int mtk_jpeg_dec_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct mtk_jpeg_ctx *ctx =3D mtk_jpeg_file_to_ctx(file); @@ -563,7 +573,8 @@ static int mtk_jpeg_dec_g_selection(struct file *file, = void *priv, return 0; } =20 -static int mtk_jpeg_enc_s_selection(struct file *file, void *priv, +static int mtk_jpeg_enc_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct mtk_jpeg_ctx *ctx =3D mtk_jpeg_file_to_ctx(file); @@ -586,7 +597,8 @@ static int mtk_jpeg_enc_s_selection(struct file *file, = void *priv, return 0; } =20 -static int mtk_jpeg_qbuf(struct file *file, void *priv, struct v4l2_buffer= *buf) +static int mtk_jpeg_qbuf(struct file *file, struct video_device_state *sta= te, + struct v4l2_buffer *buf) { struct v4l2_fh *fh =3D file_to_v4l2_fh(file); struct mtk_jpeg_ctx *ctx =3D mtk_jpeg_file_to_ctx(file); diff --git a/drivers/media/platform/mediatek/mdp/mtk_mdp_m2m.c b/drivers/me= dia/platform/mediatek/mdp/mtk_mdp_m2m.c index 03c07948dfdd07c6395c391ccad1788b08b1a867..3ca20364730e131fad4f4db54ce= a70a2ee2006c5 100644 --- a/drivers/media/platform/mediatek/mdp/mtk_mdp_m2m.c +++ b/drivers/media/platform/mediatek/mdp/mtk_mdp_m2m.c @@ -586,7 +586,8 @@ static const struct vb2_ops mtk_mdp_m2m_qops =3D { .start_streaming =3D mtk_mdp_m2m_start_streaming, }; =20 -static int mtk_mdp_m2m_querycap(struct file *file, void *fh, +static int mtk_mdp_m2m_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct mtk_mdp_ctx *ctx =3D file_to_ctx(file); @@ -612,19 +613,22 @@ static int mtk_mdp_enum_fmt(struct v4l2_fmtdesc *f, u= 32 type) return 0; } =20 -static int mtk_mdp_m2m_enum_fmt_vid_cap(struct file *file, void *priv, +static int mtk_mdp_m2m_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return mtk_mdp_enum_fmt(f, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); } =20 -static int mtk_mdp_m2m_enum_fmt_vid_out(struct file *file, void *priv, +static int mtk_mdp_m2m_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return mtk_mdp_enum_fmt(f, V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE); } =20 -static int mtk_mdp_m2m_g_fmt_mplane(struct file *file, void *fh, +static int mtk_mdp_m2m_g_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mtk_mdp_ctx *ctx =3D file_to_ctx(file); @@ -663,7 +667,8 @@ static int mtk_mdp_m2m_g_fmt_mplane(struct file *file, = void *fh, return 0; } =20 -static int mtk_mdp_m2m_try_fmt_mplane(struct file *file, void *fh, +static int mtk_mdp_m2m_try_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mtk_mdp_ctx *ctx =3D file_to_ctx(file); @@ -673,7 +678,8 @@ static int mtk_mdp_m2m_try_fmt_mplane(struct file *file= , void *fh, return 0; } =20 -static int mtk_mdp_m2m_s_fmt_mplane(struct file *file, void *fh, +static int mtk_mdp_m2m_s_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mtk_mdp_ctx *ctx =3D file_to_ctx(file); @@ -719,7 +725,8 @@ static int mtk_mdp_m2m_s_fmt_mplane(struct file *file, = void *fh, return 0; } =20 -static int mtk_mdp_m2m_reqbufs(struct file *file, void *fh, +static int mtk_mdp_m2m_reqbufs(struct file *file, + struct video_device_state *state, struct v4l2_requestbuffers *reqbufs) { struct mtk_mdp_ctx *ctx =3D file_to_ctx(file); @@ -727,7 +734,8 @@ static int mtk_mdp_m2m_reqbufs(struct file *file, void = *fh, return v4l2_m2m_reqbufs(file, ctx->m2m_ctx, reqbufs); } =20 -static int mtk_mdp_m2m_streamon(struct file *file, void *fh, +static int mtk_mdp_m2m_streamon(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct mtk_mdp_ctx *ctx =3D file_to_ctx(file); @@ -765,7 +773,8 @@ static inline bool mtk_mdp_is_target_crop(u32 target) return false; } =20 -static int mtk_mdp_m2m_g_selection(struct file *file, void *fh, +static int mtk_mdp_m2m_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct mtk_mdp_ctx *ctx =3D file_to_ctx(file); @@ -832,7 +841,8 @@ static int mtk_mdp_check_scaler_ratio(struct mtk_mdp_va= riant *var, int src_w, return 0; } =20 -static int mtk_mdp_m2m_s_selection(struct file *file, void *fh, +static int mtk_mdp_m2m_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct mtk_mdp_ctx *ctx =3D file_to_ctx(file); @@ -1111,9 +1121,9 @@ static int mtk_mdp_m2m_open(struct file *file) default_format.fmt.pix_mp.width =3D 32; default_format.fmt.pix_mp.height =3D 32; default_format.fmt.pix_mp.pixelformat =3D V4L2_PIX_FMT_YUV420M; - mtk_mdp_m2m_s_fmt_mplane(file, &ctx->fh, &default_format); + mtk_mdp_m2m_s_fmt_mplane(file, ctx->fh.state, &default_format); default_format.type =3D V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; - mtk_mdp_m2m_s_fmt_mplane(file, &ctx->fh, &default_format); + mtk_mdp_m2m_s_fmt_mplane(file, ctx->fh.state, &default_format); =20 mtk_mdp_dbg(0, "%s [%d]", dev_name(&mdp->pdev->dev), ctx->id); =20 diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c b/drivers/= media/platform/mediatek/mdp3/mtk-mdp3-m2m.c index 9ef956b565a791429a477dc96567453cb189d817..ce3806b382e34ac370099a35b30= ace72f435866b 100644 --- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c +++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c @@ -273,7 +273,8 @@ static const struct vb2_ops mdp_m2m_qops =3D { .buf_out_validate =3D mdp_m2m_buf_out_validate, }; =20 -static int mdp_m2m_querycap(struct file *file, void *fh, +static int mdp_m2m_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, MDP_MODULE_NAME, sizeof(cap->driver)); @@ -282,7 +283,8 @@ static int mdp_m2m_querycap(struct file *file, void *fh, return 0; } =20 -static int mdp_m2m_enum_fmt_mplane(struct file *file, void *fh, +static int mdp_m2m_enum_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct mdp_m2m_ctx *ctx =3D file_to_ctx(file); @@ -290,7 +292,8 @@ static int mdp_m2m_enum_fmt_mplane(struct file *file, v= oid *fh, return mdp_enum_fmt_mplane(ctx->mdp_dev, f); } =20 -static int mdp_m2m_g_fmt_mplane(struct file *file, void *fh, +static int mdp_m2m_g_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mdp_m2m_ctx *ctx =3D file_to_ctx(file); @@ -308,7 +311,8 @@ static int mdp_m2m_g_fmt_mplane(struct file *file, void= *fh, return 0; } =20 -static int mdp_m2m_s_fmt_mplane(struct file *file, void *fh, +static int mdp_m2m_s_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mdp_m2m_ctx *ctx =3D file_to_ctx(file); @@ -351,7 +355,8 @@ static int mdp_m2m_s_fmt_mplane(struct file *file, void= *fh, return 0; } =20 -static int mdp_m2m_try_fmt_mplane(struct file *file, void *fh, +static int mdp_m2m_try_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mdp_m2m_ctx *ctx =3D file_to_ctx(file); @@ -362,7 +367,8 @@ static int mdp_m2m_try_fmt_mplane(struct file *file, vo= id *fh, return 0; } =20 -static int mdp_m2m_g_selection(struct file *file, void *fh, +static int mdp_m2m_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct mdp_m2m_ctx *ctx =3D file_to_ctx(file); @@ -414,7 +420,8 @@ static int mdp_m2m_g_selection(struct file *file, void = *fh, return -EINVAL; } =20 -static int mdp_m2m_s_selection(struct file *file, void *fh, +static int mdp_m2m_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct mdp_m2m_ctx *ctx =3D file_to_ctx(file); @@ -616,9 +623,9 @@ static int mdp_m2m_open(struct file *file) default_format.fmt.pix_mp.width =3D limit->out_limit.wmin; default_format.fmt.pix_mp.height =3D limit->out_limit.hmin; default_format.fmt.pix_mp.pixelformat =3D V4L2_PIX_FMT_YUV420M; - mdp_m2m_s_fmt_mplane(file, &ctx->fh, &default_format); + mdp_m2m_s_fmt_mplane(file, NULL, &default_format); default_format.type =3D V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; - mdp_m2m_s_fmt_mplane(file, &ctx->fh, &default_format); + mdp_m2m_s_fmt_mplane(file, NULL, &default_format); =20 dev_dbg(dev, "%s:[%d]", __func__, ctx->id); =20 diff --git a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec.= c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec.c index d691bd533103b100e7d1817e834696cc5b3990ce..a69d4f4620f6d7b3a13eeaaeeda= 2bee1b9313498 100644 --- a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec.c +++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec.c @@ -156,24 +156,28 @@ static int stateless_decoder_cmd(struct file *file, v= oid *priv, struct v4l2_deco return 0; } =20 -static int vidioc_try_decoder_cmd(struct file *file, void *priv, struct v4= l2_decoder_cmd *cmd) +static int vidioc_try_decoder_cmd(struct file *file, + struct video_device_state *state, + struct v4l2_decoder_cmd *cmd) { struct mtk_vcodec_dec_ctx *ctx =3D file_to_dec_ctx(file); =20 if (ctx->dev->vdec_pdata->uses_stateless_api) - return stateless_try_decoder_cmd(file, priv, cmd); + return stateless_try_decoder_cmd(file, state, cmd); =20 - return stateful_try_decoder_cmd(file, priv, cmd); + return stateful_try_decoder_cmd(file, state, cmd); } =20 -static int vidioc_decoder_cmd(struct file *file, void *priv, struct v4l2_d= ecoder_cmd *cmd) +static int vidioc_decoder_cmd(struct file *file, + struct video_device_state *state, + struct v4l2_decoder_cmd *cmd) { struct mtk_vcodec_dec_ctx *ctx =3D file_to_dec_ctx(file); =20 if (ctx->dev->vdec_pdata->uses_stateless_api) - return stateless_decoder_cmd(file, priv, cmd); + return stateless_decoder_cmd(file, state, cmd); =20 - return stateful_decoder_cmd(file, priv, cmd); + return stateful_decoder_cmd(file, state, cmd); } =20 void mtk_vdec_unlock(struct mtk_vcodec_dec_ctx *ctx) @@ -230,7 +234,8 @@ void mtk_vcodec_dec_set_default_params(struct mtk_vcode= c_dec_ctx *ctx) q_data->bytesperline[1] =3D q_data->coded_width; } =20 -static int vidioc_vdec_qbuf(struct file *file, void *priv, +static int vidioc_vdec_qbuf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf) { struct mtk_vcodec_dec_ctx *ctx =3D file_to_dec_ctx(file); @@ -243,7 +248,8 @@ static int vidioc_vdec_qbuf(struct file *file, void *pr= iv, return v4l2_m2m_qbuf(file, ctx->m2m_ctx, buf); } =20 -static int vidioc_vdec_dqbuf(struct file *file, void *priv, +static int vidioc_vdec_dqbuf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf) { struct mtk_vcodec_dec_ctx *ctx =3D file_to_dec_ctx(file); @@ -256,7 +262,8 @@ static int vidioc_vdec_dqbuf(struct file *file, void *p= riv, return v4l2_m2m_dqbuf(file, ctx->m2m_ctx, buf); } =20 -static int vidioc_vdec_querycap(struct file *file, void *priv, +static int vidioc_vdec_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct mtk_vcodec_dec_ctx *ctx =3D file_to_dec_ctx(file); @@ -350,7 +357,8 @@ static int vidioc_try_fmt(struct mtk_vcodec_dec_ctx *ct= x, struct v4l2_format *f, return 0; } =20 -static int vidioc_try_fmt_vid_cap_mplane(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { const struct mtk_video_fmt *fmt; @@ -367,7 +375,8 @@ static int vidioc_try_fmt_vid_cap_mplane(struct file *f= ile, void *priv, return vidioc_try_fmt(ctx, f, fmt); } =20 -static int vidioc_try_fmt_vid_out_mplane(struct file *file, void *priv, +static int vidioc_try_fmt_vid_out_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct v4l2_pix_format_mplane *pix_fmt_mp =3D &f->fmt.pix_mp; @@ -390,7 +399,8 @@ static int vidioc_try_fmt_vid_out_mplane(struct file *f= ile, void *priv, return vidioc_try_fmt(ctx, f, fmt); } =20 -static int vidioc_vdec_g_selection(struct file *file, void *priv, +static int vidioc_vdec_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct mtk_vcodec_dec_ctx *ctx =3D file_to_dec_ctx(file); @@ -439,7 +449,8 @@ static int vidioc_vdec_g_selection(struct file *file, v= oid *priv, return 0; } =20 -static int vidioc_vdec_s_selection(struct file *file, void *priv, +static int vidioc_vdec_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct mtk_vcodec_dec_ctx *ctx =3D file_to_dec_ctx(file); @@ -461,7 +472,8 @@ static int vidioc_vdec_s_selection(struct file *file, v= oid *priv, return 0; } =20 -static int vidioc_vdec_s_fmt(struct file *file, void *priv, +static int vidioc_vdec_s_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mtk_vcodec_dec_ctx *ctx =3D file_to_dec_ctx(file); @@ -590,7 +602,8 @@ static int vidioc_vdec_s_fmt(struct file *file, void *p= riv, return 0; } =20 -static int vidioc_enum_framesizes(struct file *file, void *priv, +static int vidioc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { int i =3D 0; @@ -657,19 +670,22 @@ static int vidioc_enum_fmt(struct file *file, struct = v4l2_fmtdesc *f, return 0; } =20 -static int vidioc_vdec_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_vdec_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return vidioc_enum_fmt(file, f, false); } =20 -static int vidioc_vdec_enum_fmt_vid_out(struct file *file, void *priv, +static int vidioc_vdec_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return vidioc_enum_fmt(file, f, true); } =20 -static int vidioc_vdec_g_fmt(struct file *file, void *priv, +static int vidioc_vdec_g_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mtk_vcodec_dec_ctx *ctx =3D file_to_dec_ctx(file); diff --git a/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.= c b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.c index d815e962ab8981c53000851e8f2bc61faf28056d..ce4636f03e4b1963a49a03743da= e3ac55a014412 100644 --- a/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.c +++ b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.c @@ -155,7 +155,8 @@ mtk_venc_find_format(u32 fourcc, const struct mtk_vcode= c_enc_pdata *pdata) return NULL; } =20 -static int vidioc_enum_framesizes(struct file *file, void *fh, +static int vidioc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { const struct mtk_video_fmt *fmt; @@ -179,7 +180,8 @@ static int vidioc_enum_framesizes(struct file *file, vo= id *fh, return 0; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { const struct mtk_vcodec_enc_pdata *pdata =3D @@ -189,7 +191,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, v= oid *priv, pdata->num_capture_formats); } =20 -static int vidioc_enum_fmt_vid_out(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { const struct mtk_vcodec_enc_pdata *pdata =3D @@ -217,7 +220,8 @@ static int mtk_vcodec_enc_get_chip_name(struct mtk_vcod= ec_enc_ctx *ctx) return 8173; } =20 -static int vidioc_venc_querycap(struct file *file, void *priv, +static int vidioc_venc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct mtk_vcodec_enc_ctx *ctx =3D file_to_enc_ctx(file); @@ -230,7 +234,8 @@ static int vidioc_venc_querycap(struct file *file, void= *priv, return 0; } =20 -static int vidioc_venc_s_parm(struct file *file, void *priv, +static int vidioc_venc_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *a) { struct mtk_vcodec_enc_ctx *ctx =3D file_to_enc_ctx(file); @@ -253,7 +258,8 @@ static int vidioc_venc_s_parm(struct file *file, void *= priv, return 0; } =20 -static int vidioc_venc_g_parm(struct file *file, void *priv, +static int vidioc_venc_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *a) { struct mtk_vcodec_enc_ctx *ctx =3D file_to_enc_ctx(file); @@ -410,7 +416,8 @@ static void mtk_venc_set_param(struct mtk_vcodec_enc_ct= x *ctx, param->gop_size, param->intra_period); } =20 -static int vidioc_venc_s_fmt_cap(struct file *file, void *priv, +static int vidioc_venc_s_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mtk_vcodec_enc_ctx *ctx =3D file_to_enc_ctx(file); @@ -465,7 +472,8 @@ static int vidioc_venc_s_fmt_cap(struct file *file, voi= d *priv, return 0; } =20 -static int vidioc_venc_s_fmt_out(struct file *file, void *priv, +static int vidioc_venc_s_fmt_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mtk_vcodec_enc_ctx *ctx =3D file_to_enc_ctx(file); @@ -519,7 +527,8 @@ static int vidioc_venc_s_fmt_out(struct file *file, voi= d *priv, return 0; } =20 -static int vidioc_venc_g_fmt(struct file *file, void *priv, +static int vidioc_venc_g_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct v4l2_pix_format_mplane *pix =3D &f->fmt.pix_mp; @@ -552,7 +561,8 @@ static int vidioc_venc_g_fmt(struct file *file, void *p= riv, return 0; } =20 -static int vidioc_try_fmt_vid_cap_mplane(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { const struct mtk_video_fmt *fmt; @@ -574,7 +584,8 @@ static int vidioc_try_fmt_vid_cap_mplane(struct file *f= ile, void *priv, return 0; } =20 -static int vidioc_try_fmt_vid_out_mplane(struct file *file, void *priv, +static int vidioc_try_fmt_vid_out_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { const struct mtk_video_fmt *fmt; @@ -596,7 +607,8 @@ static int vidioc_try_fmt_vid_out_mplane(struct file *f= ile, void *priv, return vidioc_try_fmt_out(ctx, f, fmt); } =20 -static int vidioc_venc_g_selection(struct file *file, void *priv, +static int vidioc_venc_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct mtk_vcodec_enc_ctx *ctx =3D file_to_enc_ctx(file); @@ -626,7 +638,8 @@ static int vidioc_venc_g_selection(struct file *file, v= oid *priv, return 0; } =20 -static int vidioc_venc_s_selection(struct file *file, void *priv, +static int vidioc_venc_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct mtk_vcodec_enc_ctx *ctx =3D file_to_enc_ctx(file); @@ -651,7 +664,8 @@ static int vidioc_venc_s_selection(struct file *file, v= oid *priv, return 0; } =20 -static int vidioc_venc_qbuf(struct file *file, void *priv, +static int vidioc_venc_qbuf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf) { struct mtk_vcodec_enc_ctx *ctx =3D file_to_enc_ctx(file); @@ -665,7 +679,8 @@ static int vidioc_venc_qbuf(struct file *file, void *pr= iv, return v4l2_m2m_qbuf(file, ctx->m2m_ctx, buf); } =20 -static int vidioc_venc_dqbuf(struct file *file, void *priv, +static int vidioc_venc_dqbuf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf) { struct mtk_vcodec_enc_ctx *ctx =3D file_to_enc_ctx(file); @@ -703,7 +718,8 @@ static int vidioc_venc_dqbuf(struct file *file, void *p= riv, return 0; } =20 -static int vidioc_encoder_cmd(struct file *file, void *priv, +static int vidioc_encoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_encoder_cmd *cmd) { struct mtk_vcodec_enc_ctx *ctx =3D file_to_enc_ctx(file); @@ -716,7 +732,7 @@ static int vidioc_encoder_cmd(struct file *file, void *= priv, return -EIO; } =20 - ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, priv, cmd); + ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, state, cmd); if (ret) return ret; =20 diff --git a/drivers/media/platform/microchip/microchip-isc-base.c b/driver= s/media/platform/microchip/microchip-isc-base.c index a7cdc743fda71db0ffbf499cb4b9ca18c9e7abf2..9a1a01d231d561bd2f360f320b1= b0438a46d36f9 100644 --- a/drivers/media/platform/microchip/microchip-isc-base.c +++ b/drivers/media/platform/microchip/microchip-isc-base.c @@ -473,7 +473,8 @@ static const struct vb2_ops isc_vb2_ops =3D { .unprepare_streaming =3D isc_unprepare_streaming, }; =20 -static int isc_querycap(struct file *file, void *priv, +static int isc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, "microchip-isc", sizeof(cap->driver)); @@ -482,7 +483,8 @@ static int isc_querycap(struct file *file, void *priv, return 0; } =20 -static int isc_enum_fmt_vid_cap(struct file *file, void *priv, +static int isc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct isc_device *isc =3D video_drvdata(file); @@ -546,7 +548,8 @@ static int isc_enum_fmt_vid_cap(struct file *file, void= *priv, return -EINVAL; } =20 -static int isc_g_fmt_vid_cap(struct file *file, void *priv, +static int isc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct isc_device *isc =3D video_drvdata(file); @@ -985,7 +988,8 @@ static int isc_link_validate(struct media_link *link) return 0; } =20 -static int isc_s_fmt_vid_cap(struct file *file, void *priv, +static int isc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct isc_device *isc =3D video_drvdata(file); @@ -996,7 +1000,8 @@ static int isc_s_fmt_vid_cap(struct file *file, void *= priv, return isc_set_fmt(isc, f); } =20 -static int isc_try_fmt_vid_cap(struct file *file, void *priv, +static int isc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct isc_device *isc =3D video_drvdata(file); @@ -1004,7 +1009,8 @@ static int isc_try_fmt_vid_cap(struct file *file, voi= d *priv, return isc_try_fmt(isc, f); } =20 -static int isc_enum_input(struct file *file, void *priv, +static int isc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { if (inp->index !=3D 0) @@ -1017,14 +1023,16 @@ static int isc_enum_input(struct file *file, void *= priv, return 0; } =20 -static int isc_g_input(struct file *file, void *priv, unsigned int *i) +static int isc_g_input(struct file *file, struct video_device_state *state, + unsigned int *i) { *i =3D 0; =20 return 0; } =20 -static int isc_s_input(struct file *file, void *priv, unsigned int i) +static int isc_s_input(struct file *file, struct video_device_state *state, + unsigned int i) { if (i > 0) return -EINVAL; @@ -1032,21 +1040,24 @@ static int isc_s_input(struct file *file, void *pri= v, unsigned int i) return 0; } =20 -static int isc_g_parm(struct file *file, void *fh, struct v4l2_streamparm = *a) +static int isc_g_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *a) { struct isc_device *isc =3D video_drvdata(file); =20 return v4l2_g_parm_cap(video_devdata(file), isc->current_subdev->sd, a); } =20 -static int isc_s_parm(struct file *file, void *fh, struct v4l2_streamparm = *a) +static int isc_s_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *a) { struct isc_device *isc =3D video_drvdata(file); =20 return v4l2_s_parm_cap(video_devdata(file), isc->current_subdev->sd, a); } =20 -static int isc_enum_framesizes(struct file *file, void *fh, +static int isc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct isc_device *isc =3D video_drvdata(file); diff --git a/drivers/media/platform/nuvoton/npcm-video.c b/drivers/media/pl= atform/nuvoton/npcm-video.c index 44e904e61801e8c3b0d3bb8ca83aef0a50fc5992..9d680a60b4e08a4a7ca6cba5451= 1cbf7d3998c78 100644 --- a/drivers/media/platform/nuvoton/npcm-video.c +++ b/drivers/media/platform/nuvoton/npcm-video.c @@ -1129,7 +1129,8 @@ static irqreturn_t npcm_video_irq(int irq, void *arg) return IRQ_HANDLED; } =20 -static int npcm_video_querycap(struct file *file, void *fh, +static int npcm_video_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, DEVICE_NAME, sizeof(cap->driver)); @@ -1138,7 +1139,8 @@ static int npcm_video_querycap(struct file *file, voi= d *fh, return 0; } =20 -static int npcm_video_enum_format(struct file *file, void *fh, +static int npcm_video_enum_format(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct npcm_video *video =3D video_drvdata(file); @@ -1155,7 +1157,8 @@ static int npcm_video_enum_format(struct file *file, = void *fh, return 0; } =20 -static int npcm_video_try_format(struct file *file, void *fh, +static int npcm_video_try_format(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct npcm_video *video =3D video_drvdata(file); @@ -1178,7 +1181,8 @@ static int npcm_video_try_format(struct file *file, v= oid *fh, return 0; } =20 -static int npcm_video_get_format(struct file *file, void *fh, +static int npcm_video_get_format(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct npcm_video *video =3D video_drvdata(file); @@ -1187,13 +1191,14 @@ static int npcm_video_get_format(struct file *file,= void *fh, return 0; } =20 -static int npcm_video_set_format(struct file *file, void *fh, +static int npcm_video_set_format(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct npcm_video *video =3D video_drvdata(file); int ret; =20 - ret =3D npcm_video_try_format(file, fh, f); + ret =3D npcm_video_try_format(file, state, f); if (ret) return ret; =20 @@ -1206,7 +1211,8 @@ static int npcm_video_set_format(struct file *file, v= oid *fh, return 0; } =20 -static int npcm_video_enum_input(struct file *file, void *fh, +static int npcm_video_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { struct npcm_video *video =3D video_drvdata(file); @@ -1222,14 +1228,18 @@ static int npcm_video_enum_input(struct file *file,= void *fh, return 0; } =20 -static int npcm_video_get_input(struct file *file, void *fh, unsigned int = *i) +static int npcm_video_get_input(struct file *file, + struct video_device_state *state, + unsigned int *i) { *i =3D 0; =20 return 0; } =20 -static int npcm_video_set_input(struct file *file, void *fh, unsigned int = i) +static int npcm_video_set_input(struct file *file, + struct video_device_state *state, + unsigned int i) { if (i) return -EINVAL; @@ -1237,7 +1247,8 @@ static int npcm_video_set_input(struct file *file, vo= id *fh, unsigned int i) return 0; } =20 -static int npcm_video_set_dv_timings(struct file *file, void *fh, +static int npcm_video_set_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct npcm_video *video =3D video_drvdata(file); @@ -1261,7 +1272,8 @@ static int npcm_video_set_dv_timings(struct file *fil= e, void *fh, return 0; } =20 -static int npcm_video_get_dv_timings(struct file *file, void *fh, +static int npcm_video_get_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct npcm_video *video =3D video_drvdata(file); @@ -1272,7 +1284,8 @@ static int npcm_video_get_dv_timings(struct file *fil= e, void *fh, return 0; } =20 -static int npcm_video_query_dv_timings(struct file *file, void *fh, +static int npcm_video_query_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct npcm_video *video =3D video_drvdata(file); @@ -1284,14 +1297,16 @@ static int npcm_video_query_dv_timings(struct file = *file, void *fh, return video->v4l2_input_status ? -ENOLINK : 0; } =20 -static int npcm_video_enum_dv_timings(struct file *file, void *fh, +static int npcm_video_enum_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_enum_dv_timings *timings) { return v4l2_enum_dv_timings_cap(timings, &npcm_video_timings_cap, NULL, NULL); } =20 -static int npcm_video_dv_timings_cap(struct file *file, void *fh, +static int npcm_video_dv_timings_cap(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings_cap *cap) { *cap =3D npcm_video_timings_cap; diff --git a/drivers/media/platform/nvidia/tegra-vde/v4l2.c b/drivers/media= /platform/nvidia/tegra-vde/v4l2.c index d94978ae2baf3394206ad7c3eb7a400aeee47cf7..7e96043f0a8043872c72f77cce0= 955622e0b8e0f 100644 --- a/drivers/media/platform/nvidia/tegra-vde/v4l2.c +++ b/drivers/media/platform/nvidia/tegra-vde/v4l2.c @@ -493,7 +493,8 @@ static void tegra_decode_complete(struct work_struct *w= ork) tegra_job_finish(ctx, VB2_BUF_STATE_DONE); } =20 -static int tegra_querycap(struct file *file, void *priv, +static int tegra_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->bus_info, "platform:tegra-vde", sizeof(cap->bus_info)); @@ -503,7 +504,8 @@ static int tegra_querycap(struct file *file, void *priv, return 0; } =20 -static int tegra_enum_decoded_fmt(struct file *file, void *priv, +static int tegra_enum_decoded_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct tegra_ctx *ctx =3D file_to_tegra_ctx(file); @@ -519,7 +521,8 @@ static int tegra_enum_decoded_fmt(struct file *file, vo= id *priv, return 0; } =20 -static int tegra_g_decoded_fmt(struct file *file, void *priv, +static int tegra_g_decoded_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct tegra_ctx *ctx =3D file_to_tegra_ctx(file); @@ -528,7 +531,8 @@ static int tegra_g_decoded_fmt(struct file *file, void = *priv, return 0; } =20 -static int tegra_try_decoded_fmt(struct file *file, void *priv, +static int tegra_try_decoded_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct tegra_ctx *ctx =3D file_to_tegra_ctx(file); @@ -568,7 +572,8 @@ static int tegra_try_decoded_fmt(struct file *file, voi= d *priv, return 0; } =20 -static int tegra_s_decoded_fmt(struct file *file, void *priv, +static int tegra_s_decoded_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct tegra_ctx *ctx =3D file_to_tegra_ctx(file); @@ -581,7 +586,7 @@ static int tegra_s_decoded_fmt(struct file *file, void = *priv, if (vb2_is_busy(vq)) return -EBUSY; =20 - err =3D tegra_try_decoded_fmt(file, priv, f); + err =3D tegra_try_decoded_fmt(file, state, f); if (err) return err; =20 @@ -590,7 +595,8 @@ static int tegra_s_decoded_fmt(struct file *file, void = *priv, return 0; } =20 -static int tegra_enum_coded_fmt(struct file *file, void *priv, +static int tegra_enum_coded_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct tegra_ctx *ctx =3D file_to_tegra_ctx(file); @@ -604,7 +610,8 @@ static int tegra_enum_coded_fmt(struct file *file, void= *priv, return 0; } =20 -static int tegra_g_coded_fmt(struct file *file, void *priv, +static int tegra_g_coded_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct tegra_ctx *ctx =3D file_to_tegra_ctx(file); @@ -627,7 +634,8 @@ tegra_find_coded_fmt_desc(struct tegra_ctx *ctx, u32 fo= urcc) return NULL; } =20 -static int tegra_try_coded_fmt(struct file *file, void *priv, +static int tegra_try_coded_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct v4l2_pix_format_mplane *pix_mp =3D &f->fmt.pix_mp; @@ -653,7 +661,8 @@ static int tegra_try_coded_fmt(struct file *file, void = *priv, return 0; } =20 -static int tegra_s_coded_fmt(struct file *file, void *priv, +static int tegra_s_coded_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct tegra_ctx *ctx =3D file_to_tegra_ctx(file); @@ -683,7 +692,7 @@ static int tegra_s_coded_fmt(struct file *file, void *p= riv, if (vb2_is_busy(peer_vq)) return -EBUSY; =20 - err =3D tegra_try_coded_fmt(file, priv, f); + err =3D tegra_try_coded_fmt(file, state, f); if (err) return err; =20 @@ -715,7 +724,8 @@ static int tegra_s_coded_fmt(struct file *file, void *p= riv, return 0; } =20 -static int tegra_enum_framesizes(struct file *file, void *priv, +static int tegra_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct tegra_ctx *ctx =3D file_to_tegra_ctx(file); @@ -835,10 +845,10 @@ static int tegra_open(struct file *file) v4l2_fh_add(&ctx->fh, file); =20 tegra_reset_coded_fmt(ctx); - tegra_try_coded_fmt(file, &ctx->fh, &ctx->coded_fmt); + tegra_try_coded_fmt(file, ctx->fh.state, &ctx->coded_fmt); =20 tegra_reset_decoded_fmt(ctx); - tegra_try_decoded_fmt(file, &ctx->fh, &ctx->decoded_fmt); + tegra_try_decoded_fmt(file, ctx->fh.state, &ctx->decoded_fmt); =20 return 0; =20 diff --git a/drivers/media/platform/nxp/dw100/dw100.c b/drivers/media/platf= orm/nxp/dw100/dw100.c index 97744c7b7c034cadfdd3f6d76165b4da85fa3d16..7f127f0dbe16227994998d355a2= 2125d58e139c8 100644 --- a/drivers/media/platform/nxp/dw100/dw100.c +++ b/drivers/media/platform/nxp/dw100/dw100.c @@ -686,7 +686,8 @@ static const struct v4l2_file_operations dw100_fops =3D= { .mmap =3D v4l2_m2m_fop_mmap, }; =20 -static int dw100_querycap(struct file *file, void *priv, +static int dw100_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, DRV_NAME, sizeof(cap->driver)); @@ -695,7 +696,8 @@ static int dw100_querycap(struct file *file, void *priv, return 0; } =20 -static int dw100_enum_fmt_vid(struct file *file, void *priv, +static int dw100_enum_fmt_vid(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { int i, num =3D 0; @@ -713,7 +715,8 @@ static int dw100_enum_fmt_vid(struct file *file, void *= priv, return -EINVAL; } =20 -static int dw100_enum_framesizes(struct file *file, void *priv, +static int dw100_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { const struct dw100_fmt *fmt; @@ -732,7 +735,9 @@ static int dw100_enum_framesizes(struct file *file, voi= d *priv, return 0; } =20 -static int dw100_g_fmt_vid(struct file *file, void *priv, struct v4l2_form= at *f) +static int dw100_g_fmt_vid(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct dw100_ctx *ctx =3D dw100_file2ctx(file); struct vb2_queue *vq; @@ -861,7 +866,8 @@ static int dw100_s_fmt(struct dw100_ctx *ctx, struct v4= l2_format *f) return 0; } =20 -static int dw100_try_fmt_vid_cap(struct file *file, void *priv, +static int dw100_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { if (f->type !=3D V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) @@ -870,13 +876,14 @@ static int dw100_try_fmt_vid_cap(struct file *file, v= oid *priv, return dw100_try_fmt(file, f); } =20 -static int dw100_s_fmt_vid_cap(struct file *file, void *priv, +static int dw100_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct dw100_ctx *ctx =3D dw100_file2ctx(file); int ret; =20 - ret =3D dw100_try_fmt_vid_cap(file, priv, f); + ret =3D dw100_try_fmt_vid_cap(file, state, f); if (ret) return ret; =20 @@ -887,7 +894,8 @@ static int dw100_s_fmt_vid_cap(struct file *file, void = *priv, return 0; } =20 -static int dw100_try_fmt_vid_out(struct file *file, void *priv, +static int dw100_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { if (f->type !=3D V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) @@ -896,13 +904,14 @@ static int dw100_try_fmt_vid_out(struct file *file, v= oid *priv, return dw100_try_fmt(file, f); } =20 -static int dw100_s_fmt_vid_out(struct file *file, void *priv, +static int dw100_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct dw100_ctx *ctx =3D dw100_file2ctx(file); int ret; =20 - ret =3D dw100_try_fmt_vid_out(file, priv, f); + ret =3D dw100_try_fmt_vid_out(file, state, f); if (ret) return ret; =20 @@ -913,7 +922,8 @@ static int dw100_s_fmt_vid_out(struct file *file, void = *priv, return 0; } =20 -static int dw100_g_selection(struct file *file, void *fh, +static int dw100_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct dw100_ctx *ctx =3D dw100_file2ctx(file); @@ -945,7 +955,8 @@ static int dw100_g_selection(struct file *file, void *f= h, return 0; } =20 -static int dw100_s_selection(struct file *file, void *fh, +static int dw100_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct dw100_ctx *ctx =3D dw100_file2ctx(file); diff --git a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c b/drivers/media= /platform/nxp/imx-jpeg/mxc-jpeg.c index df3ccdf767baf0bf6687808e2c017063181a7220..c4cca1f9dabd03ac34a935b1bc8= b5bc9b7b1f490 100644 --- a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c +++ b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c @@ -1601,7 +1601,8 @@ static void mxc_jpeg_device_run(void *priv) spin_unlock_irqrestore(&ctx->mxc_jpeg->hw_lock, flags); } =20 -static int mxc_jpeg_decoder_cmd(struct file *file, void *priv, +static int mxc_jpeg_decoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_decoder_cmd *cmd) { struct v4l2_fh *fh =3D file_to_v4l2_fh(file); @@ -1609,7 +1610,7 @@ static int mxc_jpeg_decoder_cmd(struct file *file, vo= id *priv, unsigned long flags; int ret; =20 - ret =3D v4l2_m2m_ioctl_try_decoder_cmd(file, fh, cmd); + ret =3D v4l2_m2m_ioctl_try_decoder_cmd(file, state, cmd); if (ret < 0) return ret; =20 @@ -1617,7 +1618,7 @@ static int mxc_jpeg_decoder_cmd(struct file *file, vo= id *priv, return 0; =20 spin_lock_irqsave(&ctx->mxc_jpeg->hw_lock, flags); - ret =3D v4l2_m2m_ioctl_decoder_cmd(file, priv, cmd); + ret =3D v4l2_m2m_ioctl_decoder_cmd(file, state, cmd); spin_unlock_irqrestore(&ctx->mxc_jpeg->hw_lock, flags); if (ret < 0) return ret; @@ -1634,7 +1635,8 @@ static int mxc_jpeg_decoder_cmd(struct file *file, vo= id *priv, return 0; } =20 -static int mxc_jpeg_encoder_cmd(struct file *file, void *priv, +static int mxc_jpeg_encoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_encoder_cmd *cmd) { struct v4l2_fh *fh =3D file_to_v4l2_fh(file); @@ -1642,7 +1644,7 @@ static int mxc_jpeg_encoder_cmd(struct file *file, vo= id *priv, unsigned long flags; int ret; =20 - ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, fh, cmd); + ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, state, cmd); if (ret < 0) return ret; =20 @@ -1651,7 +1653,7 @@ static int mxc_jpeg_encoder_cmd(struct file *file, vo= id *priv, return 0; =20 spin_lock_irqsave(&ctx->mxc_jpeg->hw_lock, flags); - ret =3D v4l2_m2m_ioctl_encoder_cmd(file, fh, cmd); + ret =3D v4l2_m2m_ioctl_encoder_cmd(file, state, cmd); spin_unlock_irqrestore(&ctx->mxc_jpeg->hw_lock, flags); if (ret < 0) return 0; @@ -2241,7 +2243,8 @@ static int mxc_jpeg_open(struct file *file) return ret; } =20 -static int mxc_jpeg_querycap(struct file *file, void *priv, +static int mxc_jpeg_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, MXC_JPEG_NAME " codec", sizeof(cap->driver)); @@ -2252,7 +2255,8 @@ static int mxc_jpeg_querycap(struct file *file, void = *priv, return 0; } =20 -static int mxc_jpeg_enum_fmt_vid_cap(struct file *file, void *priv, +static int mxc_jpeg_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct mxc_jpeg_ctx *ctx =3D mxc_jpeg_file_to_ctx(file); @@ -2292,7 +2296,8 @@ static int mxc_jpeg_enum_fmt_vid_cap(struct file *fil= e, void *priv, } } =20 -static int mxc_jpeg_enum_fmt_vid_out(struct file *file, void *priv, +static int mxc_jpeg_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct mxc_jpeg_ctx *ctx =3D mxc_jpeg_file_to_ctx(file); @@ -2433,7 +2438,8 @@ static int mxc_jpeg_try_fmt(struct v4l2_format *f, return 0; } =20 -static int mxc_jpeg_try_fmt_vid_cap(struct file *file, void *priv, +static int mxc_jpeg_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mxc_jpeg_ctx *ctx =3D mxc_jpeg_file_to_ctx(file); @@ -2452,7 +2458,8 @@ static int mxc_jpeg_try_fmt_vid_cap(struct file *file= , void *priv, return mxc_jpeg_try_fmt(f, ctx, &tmp_q); } =20 -static int mxc_jpeg_try_fmt_vid_out(struct file *file, void *priv, +static int mxc_jpeg_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mxc_jpeg_ctx *ctx =3D mxc_jpeg_file_to_ctx(file); @@ -2504,13 +2511,15 @@ static int mxc_jpeg_s_fmt(struct mxc_jpeg_ctx *ctx, return mxc_jpeg_try_fmt(f, ctx, mxc_jpeg_get_q_data(ctx, f->type)); } =20 -static int mxc_jpeg_s_fmt_vid_cap(struct file *file, void *priv, +static int mxc_jpeg_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { return mxc_jpeg_s_fmt(mxc_jpeg_file_to_ctx(file), f); } =20 -static int mxc_jpeg_s_fmt_vid_out(struct file *file, void *priv, +static int mxc_jpeg_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int ret; @@ -2543,10 +2552,11 @@ static int mxc_jpeg_s_fmt_vid_out(struct file *file= , void *priv, fc.fmt.pix_mp.width =3D f->fmt.pix_mp.width; fc.fmt.pix_mp.height =3D f->fmt.pix_mp.height; =20 - return mxc_jpeg_s_fmt_vid_cap(file, priv, &fc); + return mxc_jpeg_s_fmt_vid_cap(file, state, &fc); } =20 -static int mxc_jpeg_g_fmt_vid(struct file *file, void *priv, +static int mxc_jpeg_g_fmt_vid(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mxc_jpeg_ctx *ctx =3D mxc_jpeg_file_to_ctx(file); @@ -2642,17 +2652,21 @@ static int mxc_jpeg_enc_g_selection(struct file *fi= le, void *fh, struct v4l2_sel return 0; } =20 -static int mxc_jpeg_g_selection(struct file *file, void *fh, struct v4l2_s= election *s) +static int mxc_jpeg_g_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *s) { struct mxc_jpeg_ctx *ctx =3D mxc_jpeg_file_to_ctx(file); =20 if (ctx->mxc_jpeg->mode =3D=3D MXC_JPEG_DECODE) - return mxc_jpeg_dec_g_selection(file, fh, s); + return mxc_jpeg_dec_g_selection(file, state, s); else - return mxc_jpeg_enc_g_selection(file, fh, s); + return mxc_jpeg_enc_g_selection(file, state, s); } =20 -static int mxc_jpeg_s_selection(struct file *file, void *fh, struct v4l2_s= election *s) +static int mxc_jpeg_s_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *s) { struct mxc_jpeg_ctx *ctx =3D mxc_jpeg_file_to_ctx(file); struct mxc_jpeg_q_data *q_data_out; diff --git a/drivers/media/platform/nxp/imx-pxp.c b/drivers/media/platform/= nxp/imx-pxp.c index 6cc9b07ea53a002c2eda0fd6062096f5527ad62c..ed480a63eae071addfa14f510b8= 67cea9d058396 100644 --- a/drivers/media/platform/nxp/imx-pxp.c +++ b/drivers/media/platform/nxp/imx-pxp.c @@ -1127,7 +1127,8 @@ static irqreturn_t pxp_irq_handler(int irq, void *dev= _id) /* * video ioctls */ -static int pxp_querycap(struct file *file, void *priv, +static int pxp_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, MEM2MEM_NAME, sizeof(cap->driver)); @@ -1166,13 +1167,15 @@ static int pxp_enum_fmt(struct v4l2_fmtdesc *f, u32= type) return -EINVAL; } =20 -static int pxp_enum_fmt_vid_cap(struct file *file, void *priv, +static int pxp_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return pxp_enum_fmt(f, MEM2MEM_CAPTURE); } =20 -static int pxp_enum_fmt_vid_out(struct file *file, void *priv, +static int pxp_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return pxp_enum_fmt(f, MEM2MEM_OUTPUT); @@ -1203,13 +1206,15 @@ static int pxp_g_fmt(struct pxp_ctx *ctx, struct v4= l2_format *f) return 0; } =20 -static int pxp_g_fmt_vid_out(struct file *file, void *priv, +static int pxp_g_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { return pxp_g_fmt(file2ctx(file), f); } =20 -static int pxp_g_fmt_vid_cap(struct file *file, void *priv, +static int pxp_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { return pxp_g_fmt(file2ctx(file), f); @@ -1271,7 +1276,8 @@ pxp_fixup_colorimetry_cap(struct pxp_ctx *ctx, u32 ds= t_fourcc, } } =20 -static int pxp_try_fmt_vid_cap(struct file *file, void *priv, +static int pxp_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct pxp_fmt *fmt; @@ -1299,7 +1305,8 @@ static int pxp_try_fmt_vid_cap(struct file *file, voi= d *priv, return pxp_try_fmt(f, fmt); } =20 -static int pxp_try_fmt_vid_out(struct file *file, void *priv, +static int pxp_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct pxp_fmt *fmt; @@ -1354,13 +1361,14 @@ static int pxp_s_fmt(struct pxp_ctx *ctx, struct v4= l2_format *f) return 0; } =20 -static int pxp_s_fmt_vid_cap(struct file *file, void *priv, +static int pxp_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct pxp_ctx *ctx =3D file2ctx(file); int ret; =20 - ret =3D pxp_try_fmt_vid_cap(file, priv, f); + ret =3D pxp_try_fmt_vid_cap(file, state, f); if (ret) return ret; =20 @@ -1374,13 +1382,14 @@ static int pxp_s_fmt_vid_cap(struct file *file, voi= d *priv, return 0; } =20 -static int pxp_s_fmt_vid_out(struct file *file, void *priv, +static int pxp_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct pxp_ctx *ctx =3D file2ctx(file); int ret; =20 - ret =3D pxp_try_fmt_vid_out(file, priv, f); + ret =3D pxp_try_fmt_vid_out(file, state, f); if (ret) return ret; =20 @@ -1400,7 +1409,8 @@ static int pxp_s_fmt_vid_out(struct file *file, void = *priv, return 0; } =20 -static int pxp_enum_framesizes(struct file *file, void *fh, +static int pxp_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { if (fsize->index > 0) diff --git a/drivers/media/platform/nxp/imx7-media-csi.c b/drivers/media/pl= atform/nxp/imx7-media-csi.c index 34a92642bbfe7b7ce9c85fbaf346c6f595425cc9..44664c48d770601a8bed4a76a54= 7ac377e336067 100644 --- a/drivers/media/platform/nxp/imx7-media-csi.c +++ b/drivers/media/platform/nxp/imx7-media-csi.c @@ -1035,7 +1035,8 @@ static int imx7_csi_enum_mbus_formats(u32 *code, u32 = index) * Video Capture Device - IOCTLs */ =20 -static int imx7_csi_video_querycap(struct file *file, void *fh, +static int imx7_csi_video_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct imx7_csi *csi =3D video_drvdata(file); @@ -1048,7 +1049,8 @@ static int imx7_csi_video_querycap(struct file *file,= void *fh, return 0; } =20 -static int imx7_csi_video_enum_fmt_vid_cap(struct file *file, void *fh, +static int imx7_csi_video_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { unsigned int index =3D f->index; @@ -1087,7 +1089,8 @@ static int imx7_csi_video_enum_fmt_vid_cap(struct fil= e *file, void *fh, return -EINVAL; } =20 -static int imx7_csi_video_enum_framesizes(struct file *file, void *fh, +static int imx7_csi_video_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { const struct imx7_csi_pixfmt *cc; @@ -1117,7 +1120,8 @@ static int imx7_csi_video_enum_framesizes(struct file= *file, void *fh, return 0; } =20 -static int imx7_csi_video_g_fmt_vid_cap(struct file *file, void *fh, +static int imx7_csi_video_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct imx7_csi *csi =3D video_drvdata(file); @@ -1167,14 +1171,16 @@ __imx7_csi_video_try_fmt(struct v4l2_pix_format *pi= xfmt, return cc; } =20 -static int imx7_csi_video_try_fmt_vid_cap(struct file *file, void *fh, +static int imx7_csi_video_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { __imx7_csi_video_try_fmt(&f->fmt.pix, NULL); return 0; } =20 -static int imx7_csi_video_s_fmt_vid_cap(struct file *file, void *fh, +static int imx7_csi_video_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct imx7_csi *csi =3D video_drvdata(file); @@ -1193,7 +1199,8 @@ static int imx7_csi_video_s_fmt_vid_cap(struct file *= file, void *fh, return 0; } =20 -static int imx7_csi_video_g_selection(struct file *file, void *fh, +static int imx7_csi_video_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct imx7_csi *csi =3D video_drvdata(file); diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c b/drivers/m= edia/platform/nxp/imx8-isi/imx8-isi-m2m.c index 00afcbfbdde4840145a2cec8acbafea604ce2f0e..d447b752d6f18d41602b22806a1= 7c67366ae346b 100644 --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c @@ -473,7 +473,8 @@ static void mxc_isi_m2m_ctx_ctrls_delete(struct mxc_isi= _m2m_ctx *ctx) * V4L2 ioctls */ =20 -static int mxc_isi_m2m_querycap(struct file *file, void *fh, +static int mxc_isi_m2m_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, MXC_ISI_DRIVER_NAME, sizeof(cap->driver)); @@ -484,7 +485,8 @@ static int mxc_isi_m2m_querycap(struct file *file, void= *fh, return 0; } =20 -static int mxc_isi_m2m_enum_fmt_vid(struct file *file, void *fh, +static int mxc_isi_m2m_enum_fmt_vid(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { const enum mxc_isi_video_type type =3D @@ -517,7 +519,8 @@ __mxc_isi_m2m_try_fmt_vid(struct mxc_isi_m2m_ctx *ctx, return mxc_isi_format_try(ctx->m2m->pipe, pix, type); } =20 -static int mxc_isi_m2m_try_fmt_vid(struct file *file, void *fh, +static int mxc_isi_m2m_try_fmt_vid(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { const enum mxc_isi_video_type type =3D @@ -530,7 +533,8 @@ static int mxc_isi_m2m_try_fmt_vid(struct file *file, v= oid *fh, return 0; } =20 -static int mxc_isi_m2m_g_fmt_vid(struct file *file, void *fh, +static int mxc_isi_m2m_g_fmt_vid(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mxc_isi_m2m_ctx *ctx =3D file_to_isi_m2m_ctx(file); @@ -542,7 +546,8 @@ static int mxc_isi_m2m_g_fmt_vid(struct file *file, voi= d *fh, return 0; } =20 -static int mxc_isi_m2m_s_fmt_vid(struct file *file, void *fh, +static int mxc_isi_m2m_s_fmt_vid(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { const enum mxc_isi_video_type type =3D diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c b/drivers= /media/platform/nxp/imx8-isi/imx8-isi-video.c index 13682bf6e9f8895bb9eb1f92d5f74b0d5968544e..e8fafd15930564c0d81d579674c= 87ff38bc8edbb 100644 --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c @@ -1114,7 +1114,8 @@ static void mxc_isi_video_ctrls_delete(struct mxc_isi= _video *video) * V4L2 ioctls */ =20 -static int mxc_isi_video_querycap(struct file *file, void *priv, +static int mxc_isi_video_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, MXC_ISI_DRIVER_NAME, sizeof(cap->driver)); @@ -1123,7 +1124,8 @@ static int mxc_isi_video_querycap(struct file *file, = void *priv, return 0; } =20 -static int mxc_isi_video_enum_fmt(struct file *file, void *priv, +static int mxc_isi_video_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { const struct mxc_isi_format_info *fmt; @@ -1163,7 +1165,8 @@ static int mxc_isi_video_enum_fmt(struct file *file, = void *priv, return 0; } =20 -static int mxc_isi_video_g_fmt(struct file *file, void *fh, +static int mxc_isi_video_g_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mxc_isi_video *video =3D video_drvdata(file); @@ -1173,7 +1176,8 @@ static int mxc_isi_video_g_fmt(struct file *file, voi= d *fh, return 0; } =20 -static int mxc_isi_video_try_fmt(struct file *file, void *fh, +static int mxc_isi_video_try_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mxc_isi_video *video =3D video_drvdata(file); @@ -1182,7 +1186,8 @@ static int mxc_isi_video_try_fmt(struct file *file, v= oid *fh, return 0; } =20 -static int mxc_isi_video_s_fmt(struct file *file, void *priv, +static int mxc_isi_video_s_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct mxc_isi_video *video =3D video_drvdata(file); @@ -1197,7 +1202,8 @@ static int mxc_isi_video_s_fmt(struct file *file, voi= d *priv, return 0; } =20 -static int mxc_isi_video_enum_framesizes(struct file *file, void *priv, +static int mxc_isi_video_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct mxc_isi_video *video =3D video_drvdata(file); diff --git a/drivers/media/platform/nxp/mx2_emmaprp.c b/drivers/media/platf= orm/nxp/mx2_emmaprp.c index 3aae8c0b690c0b1b0dd4f05a1c9184b089719a20..9fec60210a088110147246865fe= 9d844c7cb5d44 100644 --- a/drivers/media/platform/nxp/mx2_emmaprp.c +++ b/drivers/media/platform/nxp/mx2_emmaprp.c @@ -380,7 +380,8 @@ static irqreturn_t emmaprp_irq(int irq_emma, void *data) /* * video ioctls */ -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, MEM2MEM_NAME, sizeof(cap->driver)); @@ -417,13 +418,15 @@ static int enum_fmt(struct v4l2_fmtdesc *f, u32 type) return -EINVAL; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return enum_fmt(f, MEM2MEM_CAPTURE); } =20 -static int vidioc_enum_fmt_vid_out(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return enum_fmt(f, MEM2MEM_OUTPUT); @@ -453,13 +456,15 @@ static int vidioc_g_fmt(struct emmaprp_ctx *ctx, stru= ct v4l2_format *f) return 0; } =20 -static int vidioc_g_fmt_vid_out(struct file *file, void *priv, +static int vidioc_g_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { return vidioc_g_fmt(file_to_emmaprp_ctx(file), f); } =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { return vidioc_g_fmt(file_to_emmaprp_ctx(file), f); @@ -499,7 +504,8 @@ static int vidioc_try_fmt(struct v4l2_format *f) return 0; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct emmaprp_ctx *ctx =3D file_to_emmaprp_ctx(file); @@ -516,7 +522,8 @@ static int vidioc_try_fmt_vid_cap(struct file *file, vo= id *priv, return vidioc_try_fmt(f); } =20 -static int vidioc_try_fmt_vid_out(struct file *file, void *priv, +static int vidioc_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct emmaprp_ctx *ctx =3D file_to_emmaprp_ctx(file); @@ -571,24 +578,26 @@ static int vidioc_s_fmt(struct emmaprp_ctx *ctx, stru= ct v4l2_format *f) return 0; } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int ret; =20 - ret =3D vidioc_try_fmt_vid_cap(file, priv, f); + ret =3D vidioc_try_fmt_vid_cap(file, state, f); if (ret) return ret; =20 return vidioc_s_fmt(file_to_emmaprp_ctx(file), f); } =20 -static int vidioc_s_fmt_vid_out(struct file *file, void *priv, +static int vidioc_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int ret; =20 - ret =3D vidioc_try_fmt_vid_out(file, priv, f); + ret =3D vidioc_try_fmt_vid_out(file, state, f); if (ret) return ret; =20 diff --git a/drivers/media/platform/qcom/camss/camss-video.c b/drivers/medi= a/platform/qcom/camss/camss-video.c index 831486e14754ab3a24b077e21be14ea3169220a4..e5315df8929da41c9c952adbb8f= 1465691a763e3 100644 --- a/drivers/media/platform/qcom/camss/camss-video.c +++ b/drivers/media/platform/qcom/camss/camss-video.c @@ -346,7 +346,8 @@ static const struct vb2_ops msm_video_vb2_q_ops =3D { * V4L2 ioctls */ =20 -static int video_querycap(struct file *file, void *fh, +static int video_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, "qcom-camss", sizeof(cap->driver)); @@ -355,7 +356,8 @@ static int video_querycap(struct file *file, void *fh, return 0; } =20 -static int video_enum_fmt(struct file *file, void *fh, struct v4l2_fmtdesc= *f) +static int video_enum_fmt(struct file *file, struct video_device_state *st= ate, + struct v4l2_fmtdesc *f) { struct camss_video *video =3D video_drvdata(file); int i, j, k; @@ -412,7 +414,8 @@ static int video_enum_fmt(struct file *file, void *fh, = struct v4l2_fmtdesc *f) return 0; } =20 -static int video_enum_framesizes(struct file *file, void *fh, +static int video_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct camss_video *video =3D video_drvdata(file); @@ -442,7 +445,8 @@ static int video_enum_framesizes(struct file *file, voi= d *fh, return 0; } =20 -static int video_g_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int video_g_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct camss_video *video =3D video_drvdata(file); =20 @@ -531,14 +535,16 @@ static int __video_try_fmt(struct camss_video *video,= struct v4l2_format *f) return 0; } =20 -static int video_try_fmt(struct file *file, void *fh, struct v4l2_format *= f) +static int video_try_fmt(struct file *file, struct video_device_state *sta= te, + struct v4l2_format *f) { struct camss_video *video =3D video_drvdata(file); =20 return __video_try_fmt(video, f); } =20 -static int video_s_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int video_s_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct camss_video *video =3D video_drvdata(file); int ret; @@ -555,7 +561,8 @@ static int video_s_fmt(struct file *file, void *fh, str= uct v4l2_format *f) return 0; } =20 -static int video_enum_input(struct file *file, void *fh, +static int video_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *input) { if (input->index > 0) @@ -567,14 +574,16 @@ static int video_enum_input(struct file *file, void *= fh, return 0; } =20 -static int video_g_input(struct file *file, void *fh, unsigned int *input) +static int video_g_input(struct file *file, struct video_device_state *sta= te, + unsigned int *input) { *input =3D 0; =20 return 0; } =20 -static int video_s_input(struct file *file, void *fh, unsigned int input) +static int video_s_input(struct file *file, struct video_device_state *sta= te, + unsigned int input) { return input =3D=3D 0 ? 0 : -EINVAL; } diff --git a/drivers/media/platform/qcom/iris/iris_vidc.c b/drivers/media/p= latform/qcom/iris/iris_vidc.c index d38d0f6961cd5cb9929e2aecbec7353dcc2d4a7d..9f541ad219700356846e693fd84= 8714df6c6dac1 100644 --- a/drivers/media/platform/qcom/iris/iris_vidc.c +++ b/drivers/media/platform/qcom/iris/iris_vidc.c @@ -308,7 +308,8 @@ int iris_close(struct file *filp) return 0; } =20 -static int iris_enum_fmt(struct file *filp, void *fh, struct v4l2_fmtdesc = *f) +static int iris_enum_fmt(struct file *filp, struct video_device_state *sta= te, + struct v4l2_fmtdesc *f) { struct iris_inst *inst =3D iris_get_inst(filp); =20 @@ -320,7 +321,9 @@ static int iris_enum_fmt(struct file *filp, void *fh, s= truct v4l2_fmtdesc *f) return -EINVAL; } =20 -static int iris_try_fmt_vid_mplane(struct file *filp, void *fh, struct v4l= 2_format *f) +static int iris_try_fmt_vid_mplane(struct file *filp, + struct video_device_state *state, + struct v4l2_format *f) { struct iris_inst *inst =3D iris_get_inst(filp); int ret =3D 0; @@ -337,7 +340,9 @@ static int iris_try_fmt_vid_mplane(struct file *filp, v= oid *fh, struct v4l2_form return ret; } =20 -static int iris_s_fmt_vid_mplane(struct file *filp, void *fh, struct v4l2_= format *f) +static int iris_s_fmt_vid_mplane(struct file *filp, + struct video_device_state *state, + struct v4l2_format *f) { struct iris_inst *inst =3D iris_get_inst(filp); int ret =3D 0; @@ -354,7 +359,9 @@ static int iris_s_fmt_vid_mplane(struct file *filp, voi= d *fh, struct v4l2_format return ret; } =20 -static int iris_g_fmt_vid_mplane(struct file *filp, void *fh, struct v4l2_= format *f) +static int iris_g_fmt_vid_mplane(struct file *filp, + struct video_device_state *state, + struct v4l2_format *f) { struct iris_inst *inst =3D iris_get_inst(filp); int ret =3D 0; @@ -372,7 +379,8 @@ static int iris_g_fmt_vid_mplane(struct file *filp, voi= d *fh, struct v4l2_format return ret; } =20 -static int iris_enum_framesizes(struct file *filp, void *fh, +static int iris_enum_framesizes(struct file *filp, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct iris_inst *inst =3D iris_get_inst(filp); @@ -403,7 +411,8 @@ static int iris_enum_framesizes(struct file *filp, void= *fh, return ret; } =20 -static int iris_enum_frameintervals(struct file *filp, void *fh, +static int iris_enum_frameintervals(struct file *filp, + struct video_device_state *state, struct v4l2_frmivalenum *fival) =20 { @@ -448,7 +457,8 @@ static int iris_enum_frameintervals(struct file *filp, = void *fh, return 0; } =20 -static int iris_querycap(struct file *filp, void *fh, struct v4l2_capabili= ty *cap) +static int iris_querycap(struct file *filp, struct video_device_state *sta= te, + struct v4l2_capability *cap) { struct iris_inst *inst =3D iris_get_inst(filp); =20 @@ -462,7 +472,9 @@ static int iris_querycap(struct file *filp, void *fh, s= truct v4l2_capability *ca return 0; } =20 -static int iris_g_selection(struct file *filp, void *fh, struct v4l2_selec= tion *s) +static int iris_g_selection(struct file *filp, + struct video_device_state *state, + struct v4l2_selection *s) { struct iris_inst *inst =3D iris_get_inst(filp); =20 @@ -512,7 +524,9 @@ static int iris_g_selection(struct file *filp, void *fh= , struct v4l2_selection * return 0; } =20 -static int iris_s_selection(struct file *filp, void *fh, struct v4l2_selec= tion *s) +static int iris_s_selection(struct file *filp, + struct video_device_state *state, + struct v4l2_selection *s) { struct iris_inst *inst =3D iris_get_inst(filp); =20 @@ -536,7 +550,8 @@ static int iris_subscribe_event(struct v4l2_fh *fh, con= st struct v4l2_event_subs return -EINVAL; } =20 -static int iris_s_parm(struct file *filp, void *fh, struct v4l2_streamparm= *a) +static int iris_s_parm(struct file *filp, struct video_device_state *state, + struct v4l2_streamparm *a) { struct iris_inst *inst =3D iris_get_inst(filp); =20 @@ -550,7 +565,8 @@ static int iris_s_parm(struct file *filp, void *fh, str= uct v4l2_streamparm *a) return -EINVAL; } =20 -static int iris_g_parm(struct file *filp, void *fh, struct v4l2_streamparm= *a) +static int iris_g_parm(struct file *filp, struct video_device_state *state, + struct v4l2_streamparm *a) { struct iris_inst *inst =3D iris_get_inst(filp); =20 @@ -564,7 +580,8 @@ static int iris_g_parm(struct file *filp, void *fh, str= uct v4l2_streamparm *a) return -EINVAL; } =20 -static int iris_dec_cmd(struct file *filp, void *fh, +static int iris_dec_cmd(struct file *filp, + struct video_device_state *state, struct v4l2_decoder_cmd *dec) { struct iris_inst *inst =3D iris_get_inst(filp); @@ -572,7 +589,7 @@ static int iris_dec_cmd(struct file *filp, void *fh, =20 mutex_lock(&inst->lock); =20 - ret =3D v4l2_m2m_ioctl_decoder_cmd(filp, fh, dec); + ret =3D v4l2_m2m_ioctl_decoder_cmd(filp, state, dec); if (ret) goto unlock; =20 @@ -597,7 +614,8 @@ static int iris_dec_cmd(struct file *filp, void *fh, return ret; } =20 -static int iris_enc_cmd(struct file *filp, void *fh, +static int iris_enc_cmd(struct file *filp, + struct video_device_state *state, struct v4l2_encoder_cmd *enc) { struct iris_inst *inst =3D iris_get_inst(filp); @@ -605,7 +623,7 @@ static int iris_enc_cmd(struct file *filp, void *fh, =20 mutex_lock(&inst->lock); =20 - ret =3D v4l2_m2m_ioctl_encoder_cmd(filp, fh, enc); + ret =3D v4l2_m2m_ioctl_encoder_cmd(filp, state, enc); if (ret) goto unlock; =20 diff --git a/drivers/media/platform/qcom/venus/vdec.c b/drivers/media/platf= orm/qcom/venus/vdec.c index 55c27345b7d89bf400e216ed9aa59a871e501a44..4c440bf2f52bdd61909ea3e364e= ccb0865072feb 100644 --- a/drivers/media/platform/qcom/venus/vdec.c +++ b/drivers/media/platform/qcom/venus/vdec.c @@ -238,7 +238,8 @@ vdec_try_fmt_common(struct venus_inst *inst, struct v4l= 2_format *f) return fmt; } =20 -static int vdec_try_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int vdec_try_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct venus_inst *inst =3D to_inst(file); =20 @@ -281,7 +282,8 @@ static int vdec_check_src_change(struct venus_inst *ins= t) return 0; } =20 -static int vdec_g_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int vdec_g_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct venus_inst *inst =3D to_inst(file); const struct venus_format *fmt =3D NULL; @@ -318,7 +320,8 @@ static int vdec_g_fmt(struct file *file, void *fh, stru= ct v4l2_format *f) return 0; } =20 -static int vdec_s_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int vdec_s_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct venus_inst *inst =3D to_inst(file); struct v4l2_pix_format_mplane *pixmp =3D &f->fmt.pix_mp; @@ -392,7 +395,8 @@ static int vdec_s_fmt(struct file *file, void *fh, stru= ct v4l2_format *f) } =20 static int -vdec_g_selection(struct file *file, void *fh, struct v4l2_selection *s) +vdec_g_selection(struct file *file, struct video_device_state *state, + struct v4l2_selection *s) { struct venus_inst *inst =3D to_inst(file); =20 @@ -433,7 +437,8 @@ vdec_g_selection(struct file *file, void *fh, struct v4= l2_selection *s) } =20 static int -vdec_querycap(struct file *file, void *fh, struct v4l2_capability *cap) +vdec_querycap(struct file *file, struct video_device_state *state, + struct v4l2_capability *cap) { strscpy(cap->driver, "qcom-venus", sizeof(cap->driver)); strscpy(cap->card, "Qualcomm Venus video decoder", sizeof(cap->card)); @@ -442,7 +447,8 @@ vdec_querycap(struct file *file, void *fh, struct v4l2_= capability *cap) return 0; } =20 -static int vdec_enum_fmt(struct file *file, void *fh, struct v4l2_fmtdesc = *f) +static int vdec_enum_fmt(struct file *file, struct video_device_state *sta= te, + struct v4l2_fmtdesc *f) { struct venus_inst *inst =3D to_inst(file); const struct venus_format *fmt; @@ -459,7 +465,8 @@ static int vdec_enum_fmt(struct file *file, void *fh, s= truct v4l2_fmtdesc *f) return 0; } =20 -static int vdec_s_parm(struct file *file, void *fh, struct v4l2_streamparm= *a) +static int vdec_s_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *a) { struct venus_inst *inst =3D to_inst(file); struct v4l2_captureparm *cap =3D &a->parm.capture; @@ -491,7 +498,8 @@ static int vdec_s_parm(struct file *file, void *fh, str= uct v4l2_streamparm *a) return 0; } =20 -static int vdec_enum_framesizes(struct file *file, void *fh, +static int vdec_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct venus_inst *inst =3D to_inst(file); @@ -544,14 +552,15 @@ static int vdec_subscribe_event(struct v4l2_fh *fh, } =20 static int -vdec_decoder_cmd(struct file *file, void *fh, struct v4l2_decoder_cmd *cmd) +vdec_decoder_cmd(struct file *file, struct video_device_state *state, + struct v4l2_decoder_cmd *cmd) { struct venus_inst *inst =3D to_inst(file); struct vb2_queue *dst_vq; struct hfi_frame_data fdata =3D {0}; int ret; =20 - ret =3D v4l2_m2m_ioctl_try_decoder_cmd(file, fh, cmd); + ret =3D v4l2_m2m_ioctl_try_decoder_cmd(file, state, cmd); if (ret) return ret; =20 diff --git a/drivers/media/platform/qcom/venus/venc.c b/drivers/media/platf= orm/qcom/venus/venc.c index fba07557a3996a55fcd6a4f65376c418ec0c92a7..8fe86139a5d6e0b1e896a4bcd61= 9aa450ca2fd27 100644 --- a/drivers/media/platform/qcom/venus/venc.c +++ b/drivers/media/platform/qcom/venus/venc.c @@ -142,7 +142,8 @@ static int venc_v4l2_to_hfi(int id, int value) } =20 static int -venc_querycap(struct file *file, void *fh, struct v4l2_capability *cap) +venc_querycap(struct file *file, struct video_device_state *state, + struct v4l2_capability *cap) { strscpy(cap->driver, "qcom-venus", sizeof(cap->driver)); strscpy(cap->card, "Qualcomm Venus video encoder", sizeof(cap->card)); @@ -151,7 +152,8 @@ venc_querycap(struct file *file, void *fh, struct v4l2_= capability *cap) return 0; } =20 -static int venc_enum_fmt(struct file *file, void *fh, struct v4l2_fmtdesc = *f) +static int venc_enum_fmt(struct file *file, struct video_device_state *sta= te, + struct v4l2_fmtdesc *f) { struct venus_inst *inst =3D to_inst(file); const struct venus_format *fmt; @@ -221,7 +223,8 @@ venc_try_fmt_common(struct venus_inst *inst, struct v4l= 2_format *f) return fmt; } =20 -static int venc_try_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int venc_try_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct venus_inst *inst =3D to_inst(file); =20 @@ -230,7 +233,8 @@ static int venc_try_fmt(struct file *file, void *fh, st= ruct v4l2_format *f) return 0; } =20 -static int venc_s_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int venc_s_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct venus_inst *inst =3D to_inst(file); struct v4l2_pix_format_mplane *pixmp =3D &f->fmt.pix_mp; @@ -299,7 +303,8 @@ static int venc_s_fmt(struct file *file, void *fh, stru= ct v4l2_format *f) return 0; } =20 -static int venc_g_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int venc_g_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct v4l2_pix_format_mplane *pixmp =3D &f->fmt.pix_mp; struct venus_inst *inst =3D to_inst(file); @@ -332,7 +337,8 @@ static int venc_g_fmt(struct file *file, void *fh, stru= ct v4l2_format *f) } =20 static int -venc_g_selection(struct file *file, void *fh, struct v4l2_selection *s) +venc_g_selection(struct file *file, struct video_device_state *state, + struct v4l2_selection *s) { struct venus_inst *inst =3D to_inst(file); =20 @@ -360,7 +366,8 @@ venc_g_selection(struct file *file, void *fh, struct v4= l2_selection *s) } =20 static int -venc_s_selection(struct file *file, void *fh, struct v4l2_selection *s) +venc_s_selection(struct file *file, struct video_device_state *state, + struct v4l2_selection *s) { struct venus_inst *inst =3D to_inst(file); =20 @@ -388,7 +395,8 @@ venc_s_selection(struct file *file, void *fh, struct v4= l2_selection *s) return 0; } =20 -static int venc_s_parm(struct file *file, void *fh, struct v4l2_streamparm= *a) +static int venc_s_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *a) { struct venus_inst *inst =3D to_inst(file); struct v4l2_outputparm *out =3D &a->parm.output; @@ -421,7 +429,8 @@ static int venc_s_parm(struct file *file, void *fh, str= uct v4l2_streamparm *a) return 0; } =20 -static int venc_g_parm(struct file *file, void *fh, struct v4l2_streamparm= *a) +static int venc_g_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *a) { struct venus_inst *inst =3D to_inst(file); =20 @@ -435,7 +444,8 @@ static int venc_g_parm(struct file *file, void *fh, str= uct v4l2_streamparm *a) return 0; } =20 -static int venc_enum_framesizes(struct file *file, void *fh, +static int venc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct venus_inst *inst =3D to_inst(file); @@ -465,7 +475,8 @@ static int venc_enum_framesizes(struct file *file, void= *fh, return 0; } =20 -static int venc_enum_frameintervals(struct file *file, void *fh, +static int venc_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *fival) { struct venus_inst *inst =3D to_inst(file); @@ -524,13 +535,14 @@ static int venc_subscribe_event(struct v4l2_fh *fh, } =20 static int -venc_encoder_cmd(struct file *file, void *fh, struct v4l2_encoder_cmd *cmd) +venc_encoder_cmd(struct file *file, struct video_device_state *state, + struct v4l2_encoder_cmd *cmd) { struct venus_inst *inst =3D to_inst(file); struct hfi_frame_data fdata =3D {0}; int ret =3D 0; =20 - ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, fh, cmd); + ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, state, cmd); if (ret) return ret; =20 diff --git a/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c b/drivers= /media/platform/raspberrypi/pisp_be/pisp_be.c index b30891718d8df9c48ce1b83ad9fcafb201105625..8f0d82d070bbc7b490183f3a665= c9646158e5503 100644 --- a/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c +++ b/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c @@ -974,7 +974,8 @@ static const struct v4l2_file_operations pispbe_fops = =3D { .mmap =3D vb2_fop_mmap }; =20 -static int pispbe_node_querycap(struct file *file, void *priv, +static int pispbe_node_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct pispbe_node *node =3D video_drvdata(file); @@ -990,7 +991,8 @@ static int pispbe_node_querycap(struct file *file, void= *priv, return 0; } =20 -static int pispbe_node_g_fmt_vid_cap(struct file *file, void *priv, +static int pispbe_node_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct pispbe_node *node =3D video_drvdata(file); @@ -1010,7 +1012,8 @@ static int pispbe_node_g_fmt_vid_cap(struct file *fil= e, void *priv, return 0; } =20 -static int pispbe_node_g_fmt_vid_out(struct file *file, void *priv, +static int pispbe_node_g_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct pispbe_node *node =3D video_drvdata(file); @@ -1030,7 +1033,8 @@ static int pispbe_node_g_fmt_vid_out(struct file *fil= e, void *priv, return 0; } =20 -static int pispbe_node_g_fmt_meta_out(struct file *file, void *priv, +static int pispbe_node_g_fmt_meta_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct pispbe_node *node =3D video_drvdata(file); @@ -1153,7 +1157,8 @@ static void pispbe_try_format(struct v4l2_format *f, = struct pispbe_node *node) } } =20 -static int pispbe_node_try_fmt_vid_cap(struct file *file, void *priv, +static int pispbe_node_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct pispbe_node *node =3D video_drvdata(file); @@ -1171,7 +1176,8 @@ static int pispbe_node_try_fmt_vid_cap(struct file *f= ile, void *priv, return 0; } =20 -static int pispbe_node_try_fmt_vid_out(struct file *file, void *priv, +static int pispbe_node_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct pispbe_node *node =3D video_drvdata(file); @@ -1189,7 +1195,8 @@ static int pispbe_node_try_fmt_vid_out(struct file *f= ile, void *priv, return 0; } =20 -static int pispbe_node_try_fmt_meta_out(struct file *file, void *priv, +static int pispbe_node_try_fmt_meta_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct pispbe_node *node =3D video_drvdata(file); @@ -1208,14 +1215,15 @@ static int pispbe_node_try_fmt_meta_out(struct file= *file, void *priv, return 0; } =20 -static int pispbe_node_s_fmt_vid_cap(struct file *file, void *priv, +static int pispbe_node_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct pispbe_node *node =3D video_drvdata(file); struct pispbe_dev *pispbe =3D node->pispbe; int ret; =20 - ret =3D pispbe_node_try_fmt_vid_cap(file, priv, f); + ret =3D pispbe_node_try_fmt_vid_cap(file, state, f); if (ret < 0) return ret; =20 @@ -1231,14 +1239,15 @@ static int pispbe_node_s_fmt_vid_cap(struct file *f= ile, void *priv, return 0; } =20 -static int pispbe_node_s_fmt_vid_out(struct file *file, void *priv, +static int pispbe_node_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct pispbe_node *node =3D video_drvdata(file); struct pispbe_dev *pispbe =3D node->pispbe; int ret; =20 - ret =3D pispbe_node_try_fmt_vid_out(file, priv, f); + ret =3D pispbe_node_try_fmt_vid_out(file, state, f); if (ret < 0) return ret; =20 @@ -1254,14 +1263,15 @@ static int pispbe_node_s_fmt_vid_out(struct file *f= ile, void *priv, return 0; } =20 -static int pispbe_node_s_fmt_meta_out(struct file *file, void *priv, +static int pispbe_node_s_fmt_meta_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct pispbe_node *node =3D video_drvdata(file); struct pispbe_dev *pispbe =3D node->pispbe; int ret; =20 - ret =3D pispbe_node_try_fmt_meta_out(file, priv, f); + ret =3D pispbe_node_try_fmt_meta_out(file, state, f); if (ret < 0) return ret; =20 @@ -1277,7 +1287,8 @@ static int pispbe_node_s_fmt_meta_out(struct file *fi= le, void *priv, return 0; } =20 -static int pispbe_node_enum_fmt(struct file *file, void *priv, +static int pispbe_node_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct pispbe_node *node =3D video_drvdata(file); @@ -1303,7 +1314,8 @@ static int pispbe_node_enum_fmt(struct file *file, vo= id *priv, return 0; } =20 -static int pispbe_enum_framesizes(struct file *file, void *priv, +static int pispbe_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct pispbe_node *node =3D video_drvdata(file); diff --git a/drivers/media/platform/raspberrypi/rp1-cfe/cfe.c b/drivers/med= ia/platform/raspberrypi/rp1-cfe/cfe.c index 62dca76b468d1be4efa6fd4e68a89b9be0cc454b..9f4dd658ec2f1c55f61c686b84b= 9870666d8512f 100644 --- a/drivers/media/platform/raspberrypi/rp1-cfe/cfe.c +++ b/drivers/media/platform/raspberrypi/rp1-cfe/cfe.c @@ -1324,7 +1324,8 @@ static const struct vb2_ops cfe_video_qops =3D { * v4l2 ioctl ops */ =20 -static int cfe_querycap(struct file *file, void *priv, +static int cfe_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, CFE_MODULE_NAME, sizeof(cap->driver)); @@ -1336,7 +1337,8 @@ static int cfe_querycap(struct file *file, void *priv, return 0; } =20 -static int cfe_enum_fmt_vid_cap(struct file *file, void *priv, +static int cfe_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct cfe_node *node =3D video_drvdata(file); @@ -1371,7 +1373,8 @@ static int cfe_enum_fmt_vid_cap(struct file *file, vo= id *priv, return -EINVAL; } =20 -static int cfe_g_fmt(struct file *file, void *priv, struct v4l2_format *f) +static int cfe_g_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct cfe_node *node =3D video_drvdata(file); =20 @@ -1417,7 +1420,8 @@ static int cfe_validate_fmt_vid_cap(struct cfe_node *= node, return 0; } =20 -static int cfe_s_fmt_vid_cap(struct file *file, void *priv, +static int cfe_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cfe_node *node =3D video_drvdata(file); @@ -1441,7 +1445,8 @@ static int cfe_s_fmt_vid_cap(struct file *file, void = *priv, return 0; } =20 -static int cfe_try_fmt_vid_cap(struct file *file, void *priv, +static int cfe_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cfe_node *node =3D video_drvdata(file); @@ -1452,7 +1457,8 @@ static int cfe_try_fmt_vid_cap(struct file *file, voi= d *priv, return cfe_validate_fmt_vid_cap(node, f); } =20 -static int cfe_enum_fmt_meta(struct file *file, void *priv, +static int cfe_enum_fmt_meta(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct cfe_node *node =3D video_drvdata(file); @@ -1547,7 +1553,8 @@ static int cfe_validate_fmt_meta(struct cfe_node *nod= e, struct v4l2_format *f) } } =20 -static int cfe_g_fmt_meta(struct file *file, void *priv, struct v4l2_forma= t *f) +static int cfe_g_fmt_meta(struct file *file, struct video_device_state *st= ate, + struct v4l2_format *f) { struct cfe_node *node =3D video_drvdata(file); struct cfe_device *cfe =3D node->cfe; @@ -1562,7 +1569,8 @@ static int cfe_g_fmt_meta(struct file *file, void *pr= iv, struct v4l2_format *f) return 0; } =20 -static int cfe_s_fmt_meta(struct file *file, void *priv, struct v4l2_forma= t *f) +static int cfe_s_fmt_meta(struct file *file, struct video_device_state *st= ate, + struct v4l2_format *f) { struct cfe_node *node =3D video_drvdata(file); struct cfe_device *cfe =3D node->cfe; @@ -1589,7 +1597,8 @@ static int cfe_s_fmt_meta(struct file *file, void *pr= iv, struct v4l2_format *f) return 0; } =20 -static int cfe_try_fmt_meta(struct file *file, void *priv, +static int cfe_try_fmt_meta(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cfe_node *node =3D video_drvdata(file); @@ -1599,7 +1608,8 @@ static int cfe_try_fmt_meta(struct file *file, void *= priv, return cfe_validate_fmt_meta(node, f); } =20 -static int cfe_enum_framesizes(struct file *file, void *priv, +static int cfe_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct cfe_node *node =3D video_drvdata(file); @@ -1631,7 +1641,8 @@ static int cfe_enum_framesizes(struct file *file, voi= d *priv, return 0; } =20 -static int cfe_vb2_ioctl_reqbufs(struct file *file, void *priv, +static int cfe_vb2_ioctl_reqbufs(struct file *file, + struct video_device_state *state, struct v4l2_requestbuffers *p) { struct video_device *vdev =3D video_devdata(file); @@ -1651,10 +1662,11 @@ static int cfe_vb2_ioctl_reqbufs(struct file *file,= void *priv, if (ret) return ret; =20 - return vb2_ioctl_reqbufs(file, priv, p); + return vb2_ioctl_reqbufs(file, state, p); } =20 -static int cfe_vb2_ioctl_create_bufs(struct file *file, void *priv, +static int cfe_vb2_ioctl_create_bufs(struct file *file, + struct video_device_state *state, struct v4l2_create_buffers *p) { struct video_device *vdev =3D video_devdata(file); @@ -1674,7 +1686,7 @@ static int cfe_vb2_ioctl_create_bufs(struct file *fil= e, void *priv, if (ret) return ret; =20 - return vb2_ioctl_create_bufs(file, priv, p); + return vb2_ioctl_create_bufs(file, state, p); } =20 static int cfe_subscribe_event(struct v4l2_fh *fh, diff --git a/drivers/media/platform/renesas/rcar-vin/rcar-v4l2.c b/drivers/= media/platform/renesas/rcar-vin/rcar-v4l2.c index 079dbaf016c25139e2ac82be63d8fce0d11fd208..5f5dc1c9904e65a23dadb181caf= da7db178486e0 100644 --- a/drivers/media/platform/renesas/rcar-vin/rcar-v4l2.c +++ b/drivers/media/platform/renesas/rcar-vin/rcar-v4l2.c @@ -229,7 +229,8 @@ static void rvin_format_align(struct rvin_dev *vin, str= uct v4l2_pix_format *pix) * V4L2 */ =20 -static int rvin_querycap(struct file *file, void *priv, +static int rvin_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, KBUILD_MODNAME, sizeof(cap->driver)); @@ -237,7 +238,8 @@ static int rvin_querycap(struct file *file, void *priv, return 0; } =20 -static int rvin_g_fmt_vid_cap(struct file *file, void *priv, +static int rvin_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rvin_dev *vin =3D video_drvdata(file); @@ -247,7 +249,8 @@ static int rvin_g_fmt_vid_cap(struct file *file, void *= priv, return 0; } =20 -static int rvin_enum_fmt_vid_cap(struct file *file, void *priv, +static int rvin_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct rvin_dev *vin =3D video_drvdata(file); @@ -369,7 +372,8 @@ static int rvin_remote_rectangle(struct rvin_dev *vin, = struct v4l2_rect *rect) return 0; } =20 -static int rvin_g_selection(struct file *file, void *fh, +static int rvin_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct rvin_dev *vin =3D video_drvdata(file); @@ -408,7 +412,8 @@ static int rvin_g_selection(struct file *file, void *fh, return 0; } =20 -static int rvin_s_selection(struct file *file, void *fh, +static int rvin_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct rvin_dev *vin =3D video_drvdata(file); @@ -515,7 +520,8 @@ static void rvin_mc_try_format(struct rvin_dev *vin, rvin_format_align(vin, pix); } =20 -static int rvin_mc_try_fmt_vid_cap(struct file *file, void *priv, +static int rvin_mc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rvin_dev *vin =3D video_drvdata(file); @@ -525,7 +531,8 @@ static int rvin_mc_try_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int rvin_mc_s_fmt_vid_cap(struct file *file, void *priv, +static int rvin_mc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rvin_dev *vin =3D video_drvdata(file); diff --git a/drivers/media/platform/renesas/rcar_drif.c b/drivers/media/pla= tform/renesas/rcar_drif.c index 11bf47fb8266dc45df40cac003f039582251b945..79d3af9c7b0da9e9b59c4f3e8e5= 535c4e3f73b48 100644 --- a/drivers/media/platform/renesas/rcar_drif.c +++ b/drivers/media/platform/renesas/rcar_drif.c @@ -863,7 +863,8 @@ static const struct vb2_ops rcar_drif_vb2_ops =3D { .stop_streaming =3D rcar_drif_stop_streaming, }; =20 -static int rcar_drif_querycap(struct file *file, void *fh, +static int rcar_drif_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct rcar_drif_sdr *sdr =3D video_drvdata(file); @@ -893,7 +894,8 @@ static int rcar_drif_set_default_format(struct rcar_dri= f_sdr *sdr) return -EINVAL; } =20 -static int rcar_drif_enum_fmt_sdr_cap(struct file *file, void *priv, +static int rcar_drif_enum_fmt_sdr_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index >=3D ARRAY_SIZE(formats)) @@ -904,7 +906,8 @@ static int rcar_drif_enum_fmt_sdr_cap(struct file *file= , void *priv, return 0; } =20 -static int rcar_drif_g_fmt_sdr_cap(struct file *file, void *priv, +static int rcar_drif_g_fmt_sdr_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rcar_drif_sdr *sdr =3D video_drvdata(file); @@ -915,7 +918,8 @@ static int rcar_drif_g_fmt_sdr_cap(struct file *file, v= oid *priv, return 0; } =20 -static int rcar_drif_s_fmt_sdr_cap(struct file *file, void *priv, +static int rcar_drif_s_fmt_sdr_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rcar_drif_sdr *sdr =3D video_drvdata(file); @@ -956,7 +960,8 @@ static int rcar_drif_s_fmt_sdr_cap(struct file *file, v= oid *priv, return 0; } =20 -static int rcar_drif_try_fmt_sdr_cap(struct file *file, void *priv, +static int rcar_drif_try_fmt_sdr_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { unsigned int i; @@ -976,7 +981,8 @@ static int rcar_drif_try_fmt_sdr_cap(struct file *file,= void *priv, } =20 /* Tuner subdev ioctls */ -static int rcar_drif_enum_freq_bands(struct file *file, void *priv, +static int rcar_drif_enum_freq_bands(struct file *file, + struct video_device_state *state, struct v4l2_frequency_band *band) { struct rcar_drif_sdr *sdr =3D video_drvdata(file); @@ -984,7 +990,8 @@ static int rcar_drif_enum_freq_bands(struct file *file,= void *priv, return v4l2_subdev_call(sdr->ep.subdev, tuner, enum_freq_bands, band); } =20 -static int rcar_drif_g_frequency(struct file *file, void *priv, +static int rcar_drif_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct rcar_drif_sdr *sdr =3D video_drvdata(file); @@ -992,7 +999,8 @@ static int rcar_drif_g_frequency(struct file *file, voi= d *priv, return v4l2_subdev_call(sdr->ep.subdev, tuner, g_frequency, f); } =20 -static int rcar_drif_s_frequency(struct file *file, void *priv, +static int rcar_drif_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct rcar_drif_sdr *sdr =3D video_drvdata(file); @@ -1000,7 +1008,8 @@ static int rcar_drif_s_frequency(struct file *file, v= oid *priv, return v4l2_subdev_call(sdr->ep.subdev, tuner, s_frequency, f); } =20 -static int rcar_drif_g_tuner(struct file *file, void *priv, +static int rcar_drif_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *vt) { struct rcar_drif_sdr *sdr =3D video_drvdata(file); @@ -1008,7 +1017,8 @@ static int rcar_drif_g_tuner(struct file *file, void = *priv, return v4l2_subdev_call(sdr->ep.subdev, tuner, g_tuner, vt); } =20 -static int rcar_drif_s_tuner(struct file *file, void *priv, +static int rcar_drif_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *vt) { struct rcar_drif_sdr *sdr =3D video_drvdata(file); diff --git a/drivers/media/platform/renesas/rcar_fdp1.c b/drivers/media/pla= tform/renesas/rcar_fdp1.c index e615c56083f13b183be5b44764f24894f7539838..ef8054dbd40c79f583f1d7795f9= 54d816dc3696b 100644 --- a/drivers/media/platform/renesas/rcar_fdp1.c +++ b/drivers/media/platform/renesas/rcar_fdp1.c @@ -1358,7 +1358,8 @@ static void device_frame_end(struct fdp1_dev *fdp1, /* * video ioctls */ -static int fdp1_vidioc_querycap(struct file *file, void *priv, +static int fdp1_vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, DRIVER_NAME, sizeof(cap->driver)); @@ -1392,19 +1393,22 @@ static int fdp1_enum_fmt(struct v4l2_fmtdesc *f, u3= 2 type) return 0; } =20 -static int fdp1_enum_fmt_vid_cap(struct file *file, void *priv, +static int fdp1_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return fdp1_enum_fmt(f, FDP1_CAPTURE); } =20 -static int fdp1_enum_fmt_vid_out(struct file *file, void *priv, +static int fdp1_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return fdp1_enum_fmt(f, FDP1_OUTPUT); } =20 -static int fdp1_g_fmt(struct file *file, void *priv, struct v4l2_format *f) +static int fdp1_g_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct fdp1_ctx *ctx =3D file_to_ctx(file); struct fdp1_q_data *q_data; @@ -1582,7 +1586,8 @@ static void fdp1_try_fmt_capture(struct fdp1_ctx *ctx, fdp1_compute_stride(pix, fmt); } =20 -static int fdp1_try_fmt(struct file *file, void *priv, struct v4l2_format = *f) +static int fdp1_try_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct fdp1_ctx *ctx =3D file_to_ctx(file); =20 @@ -1653,7 +1658,8 @@ static void fdp1_set_format(struct fdp1_ctx *ctx, } } =20 -static int fdp1_s_fmt(struct file *file, void *priv, struct v4l2_format *f) +static int fdp1_s_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct fdp1_ctx *ctx =3D file_to_ctx(file); struct v4l2_m2m_ctx *m2m_ctx =3D ctx->fh.m2m_ctx; diff --git a/drivers/media/platform/renesas/rcar_jpu.c b/drivers/media/plat= form/renesas/rcar_jpu.c index 46ea259a2bb9d3088a977f1140f48959fcde4518..244533a48878976fd850835c47a= dd97b58827978 100644 --- a/drivers/media/platform/renesas/rcar_jpu.c +++ b/drivers/media/platform/renesas/rcar_jpu.c @@ -653,7 +653,8 @@ static u8 jpu_parse_hdr(void *buffer, unsigned long siz= e, unsigned int *width, return 0; } =20 -static int jpu_querycap(struct file *file, void *priv, +static int jpu_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct jpu_ctx *ctx =3D file_to_ctx(file); @@ -711,7 +712,8 @@ static int jpu_enum_fmt(struct v4l2_fmtdesc *f, u32 typ= e) return 0; } =20 -static int jpu_enum_fmt_cap(struct file *file, void *priv, +static int jpu_enum_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct jpu_ctx *ctx =3D file_to_ctx(file); @@ -720,7 +722,8 @@ static int jpu_enum_fmt_cap(struct file *file, void *pr= iv, JPU_DEC_CAPTURE); } =20 -static int jpu_enum_fmt_out(struct file *file, void *priv, +static int jpu_enum_fmt_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct jpu_ctx *ctx =3D file_to_ctx(file); @@ -821,7 +824,8 @@ static int __jpu_try_fmt(struct jpu_ctx *ctx, struct jp= u_fmt **fmtinfo, return 0; } =20 -static int jpu_try_fmt(struct file *file, void *priv, struct v4l2_format *= f) +static int jpu_try_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct jpu_ctx *ctx =3D file_to_ctx(file); =20 @@ -831,7 +835,8 @@ static int jpu_try_fmt(struct file *file, void *priv, s= truct v4l2_format *f) return __jpu_try_fmt(ctx, NULL, &f->fmt.pix_mp, f->type); } =20 -static int jpu_s_fmt(struct file *file, void *priv, struct v4l2_format *f) +static int jpu_s_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct vb2_queue *vq; struct jpu_ctx *ctx =3D file_to_ctx(file); @@ -861,7 +866,8 @@ static int jpu_s_fmt(struct file *file, void *priv, str= uct v4l2_format *f) return 0; } =20 -static int jpu_g_fmt(struct file *file, void *priv, struct v4l2_format *f) +static int jpu_g_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct jpu_ctx *ctx =3D file_to_ctx(file); struct jpu_q_data *q_data; @@ -895,7 +901,8 @@ static const struct v4l2_ctrl_ops jpu_ctrl_ops =3D { .s_ctrl =3D jpu_s_ctrl, }; =20 -static int jpu_streamon(struct file *file, void *priv, enum v4l2_buf_type = type) +static int jpu_streamon(struct file *file, struct video_device_state *stat= e, + enum v4l2_buf_type type) { struct jpu_q_data *src_q_data, *dst_q_data, *orig, adj, *ref; struct jpu_ctx *ctx =3D file_to_ctx(file); diff --git a/drivers/media/platform/renesas/renesas-ceu.c b/drivers/media/p= latform/renesas/renesas-ceu.c index deed49d0fb10e0d7834a30293f6c1ede7055409a..b21cdc118dc70654cf8f87a1ad0= 0228697aefe69 100644 --- a/drivers/media/platform/renesas/renesas-ceu.c +++ b/drivers/media/platform/renesas/renesas-ceu.c @@ -1121,7 +1121,8 @@ static const struct v4l2_file_operations ceu_fops =3D= { =20 /* --- Video Device IOCTLs --- */ =20 -static int ceu_querycap(struct file *file, void *priv, +static int ceu_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct ceu_device *ceudev =3D video_drvdata(file); @@ -1134,7 +1135,8 @@ static int ceu_querycap(struct file *file, void *priv, return 0; } =20 -static int ceu_enum_fmt_vid_cap(struct file *file, void *priv, +static int ceu_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { const struct ceu_fmt *fmt; @@ -1148,7 +1150,8 @@ static int ceu_enum_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int ceu_try_fmt_vid_cap(struct file *file, void *priv, +static int ceu_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ceu_device *ceudev =3D video_drvdata(file); @@ -1156,7 +1159,8 @@ static int ceu_try_fmt_vid_cap(struct file *file, voi= d *priv, return ceu_try_fmt(ceudev, f); } =20 -static int ceu_s_fmt_vid_cap(struct file *file, void *priv, +static int ceu_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ceu_device *ceudev =3D video_drvdata(file); @@ -1167,7 +1171,8 @@ static int ceu_s_fmt_vid_cap(struct file *file, void = *priv, return ceu_set_fmt(ceudev, f); } =20 -static int ceu_g_fmt_vid_cap(struct file *file, void *priv, +static int ceu_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ceu_device *ceudev =3D video_drvdata(file); @@ -1177,7 +1182,8 @@ static int ceu_g_fmt_vid_cap(struct file *file, void = *priv, return 0; } =20 -static int ceu_enum_input(struct file *file, void *priv, +static int ceu_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { struct ceu_device *ceudev =3D video_drvdata(file); @@ -1192,7 +1198,8 @@ static int ceu_enum_input(struct file *file, void *pr= iv, return 0; } =20 -static int ceu_g_input(struct file *file, void *priv, unsigned int *i) +static int ceu_g_input(struct file *file, struct video_device_state *state, + unsigned int *i) { struct ceu_device *ceudev =3D video_drvdata(file); =20 @@ -1201,7 +1208,8 @@ static int ceu_g_input(struct file *file, void *priv,= unsigned int *i) return 0; } =20 -static int ceu_s_input(struct file *file, void *priv, unsigned int i) +static int ceu_s_input(struct file *file, struct video_device_state *state, + unsigned int i) { struct ceu_device *ceudev =3D video_drvdata(file); struct ceu_subdev *ceu_sd_old; @@ -1244,21 +1252,24 @@ static int ceu_s_input(struct file *file, void *pri= v, unsigned int i) return 0; } =20 -static int ceu_g_parm(struct file *file, void *fh, struct v4l2_streamparm = *a) +static int ceu_g_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *a) { struct ceu_device *ceudev =3D video_drvdata(file); =20 return v4l2_g_parm_cap(video_devdata(file), ceudev->sd->v4l2_sd, a); } =20 -static int ceu_s_parm(struct file *file, void *fh, struct v4l2_streamparm = *a) +static int ceu_s_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *a) { struct ceu_device *ceudev =3D video_drvdata(file); =20 return v4l2_s_parm_cap(video_devdata(file), ceudev->sd->v4l2_sd, a); } =20 -static int ceu_enum_framesizes(struct file *file, void *fh, +static int ceu_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct ceu_device *ceudev =3D video_drvdata(file); @@ -1290,7 +1301,8 @@ static int ceu_enum_framesizes(struct file *file, voi= d *fh, return 0; } =20 -static int ceu_enum_frameintervals(struct file *file, void *fh, +static int ceu_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *fival) { struct ceu_device *ceudev =3D video_drvdata(file); diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drive= rs/media/platform/renesas/rzg2l-cru/rzg2l-video.c index 162e2ace6931840ee052e1565587d021fc87307f..4f2e5a99c5cd142b21a2cf29a79= dbf73463061b6 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -951,7 +951,8 @@ static void rzg2l_cru_try_format(struct rzg2l_cru_dev *= cru, rzg2l_cru_format_align(cru, pix); } =20 -static int rzg2l_cru_querycap(struct file *file, void *priv, +static int rzg2l_cru_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, KBUILD_MODNAME, sizeof(cap->driver)); @@ -960,7 +961,8 @@ static int rzg2l_cru_querycap(struct file *file, void *= priv, return 0; } =20 -static int rzg2l_cru_try_fmt_vid_cap(struct file *file, void *priv, +static int rzg2l_cru_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rzg2l_cru_dev *cru =3D video_drvdata(file); @@ -970,7 +972,8 @@ static int rzg2l_cru_try_fmt_vid_cap(struct file *file,= void *priv, return 0; } =20 -static int rzg2l_cru_s_fmt_vid_cap(struct file *file, void *priv, +static int rzg2l_cru_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rzg2l_cru_dev *cru =3D video_drvdata(file); @@ -985,7 +988,8 @@ static int rzg2l_cru_s_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int rzg2l_cru_g_fmt_vid_cap(struct file *file, void *priv, +static int rzg2l_cru_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rzg2l_cru_dev *cru =3D video_drvdata(file); @@ -995,7 +999,8 @@ static int rzg2l_cru_g_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int rzg2l_cru_enum_fmt_vid_cap(struct file *file, void *priv, +static int rzg2l_cru_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { const struct rzg2l_cru_ip_format *fmt; @@ -1009,7 +1014,8 @@ static int rzg2l_cru_enum_fmt_vid_cap(struct file *fi= le, void *priv, return 0; } =20 -static int rzg2l_cru_enum_framesizes(struct file *file, void *fh, +static int rzg2l_cru_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct rzg2l_cru_dev *cru =3D video_drvdata(file); diff --git a/drivers/media/platform/renesas/sh_vou.c b/drivers/media/platfo= rm/renesas/sh_vou.c index 4ad7ae188d5b25ab383d664898f855a4819c1a85..5f4efa852269a4054d8f0c91a41= 94509e1966a81 100644 --- a/drivers/media/platform/renesas/sh_vou.c +++ b/drivers/media/platform/renesas/sh_vou.c @@ -363,7 +363,8 @@ static const struct vb2_ops sh_vou_qops =3D { }; =20 /* Video IOCTLs */ -static int sh_vou_querycap(struct file *file, void *priv, +static int sh_vou_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct sh_vou_device *vou_dev =3D video_drvdata(file); @@ -377,7 +378,8 @@ static int sh_vou_querycap(struct file *file, void *pr= iv, } =20 /* Enumerate formats, that the device can accept from the user */ -static int sh_vou_enum_fmt_vid_out(struct file *file, void *priv, +static int sh_vou_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *fmt) { struct sh_vou_device *vou_dev =3D video_drvdata(file); @@ -392,7 +394,8 @@ static int sh_vou_enum_fmt_vid_out(struct file *file, v= oid *priv, return 0; } =20 -static int sh_vou_g_fmt_vid_out(struct file *file, void *priv, +static int sh_vou_g_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct sh_vou_device *vou_dev =3D video_drvdata(file); @@ -646,7 +649,8 @@ static void vou_adjust_output(struct sh_vou_geometry *g= eo, v4l2_std_id std) vou_scale_v_num[idx_v], vou_scale_v_den[idx_v], best); } =20 -static int sh_vou_try_fmt_vid_out(struct file *file, void *priv, +static int sh_vou_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct sh_vou_device *vou_dev =3D video_drvdata(file); @@ -759,18 +763,20 @@ static int sh_vou_set_fmt_vid_out(struct sh_vou_devic= e *vou_dev, return 0; } =20 -static int sh_vou_s_fmt_vid_out(struct file *file, void *priv, +static int sh_vou_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct sh_vou_device *vou_dev =3D video_drvdata(file); - int ret =3D sh_vou_try_fmt_vid_out(file, priv, fmt); + int ret =3D sh_vou_try_fmt_vid_out(file, state, fmt); =20 if (ret) return ret; return sh_vou_set_fmt_vid_out(vou_dev, &fmt->fmt.pix); } =20 -static int sh_vou_enum_output(struct file *file, void *fh, +static int sh_vou_enum_output(struct file *file, + struct video_device_state *state, struct v4l2_output *a) { struct sh_vou_device *vou_dev =3D video_drvdata(file); @@ -783,13 +789,15 @@ static int sh_vou_enum_output(struct file *file, void= *fh, return 0; } =20 -static int sh_vou_g_output(struct file *file, void *fh, unsigned int *i) +static int sh_vou_g_output(struct file *file, + struct video_device_state *state, unsigned int *i) { *i =3D 0; return 0; } =20 -static int sh_vou_s_output(struct file *file, void *fh, unsigned int i) +static int sh_vou_s_output(struct file *file, + struct video_device_state *state, unsigned int i) { return i ? -EINVAL : 0; } @@ -810,7 +818,8 @@ static u32 sh_vou_ntsc_mode(enum sh_vou_bus_fmt bus_fmt) } } =20 -static int sh_vou_s_std(struct file *file, void *priv, v4l2_std_id std_id) +static int sh_vou_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id std_id) { struct sh_vou_device *vou_dev =3D video_drvdata(file); int ret; @@ -852,7 +861,8 @@ static int sh_vou_s_std(struct file *file, void *priv, = v4l2_std_id std_id) return 0; } =20 -static int sh_vou_g_std(struct file *file, void *priv, v4l2_std_id *std) +static int sh_vou_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *std) { struct sh_vou_device *vou_dev =3D video_drvdata(file); =20 @@ -863,7 +873,8 @@ static int sh_vou_g_std(struct file *file, void *priv, = v4l2_std_id *std) return 0; } =20 -static int sh_vou_log_status(struct file *file, void *priv) +static int sh_vou_log_status(struct file *file, + struct video_device_state *state) { struct sh_vou_device *vou_dev =3D video_drvdata(file); =20 @@ -890,7 +901,8 @@ static int sh_vou_log_status(struct file *file, void *p= riv) return 0; } =20 -static int sh_vou_g_selection(struct file *file, void *fh, +static int sh_vou_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct sh_vou_device *vou_dev =3D video_drvdata(file); @@ -918,7 +930,8 @@ static int sh_vou_g_selection(struct file *file, void *= fh, } =20 /* Assume a dull encoder, do all the work ourselves. */ -static int sh_vou_s_selection(struct file *file, void *fh, +static int sh_vou_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct v4l2_rect *rect =3D &sel->r; diff --git a/drivers/media/platform/renesas/vsp1/vsp1_histo.c b/drivers/med= ia/platform/renesas/vsp1/vsp1_histo.c index 390ea50f1595ad7702bec46e9b9f3e237c73a622..69091fa5a7cd46f23ccb4f50a55= 901b12b6e13cb 100644 --- a/drivers/media/platform/renesas/vsp1/vsp1_histo.c +++ b/drivers/media/platform/renesas/vsp1/vsp1_histo.c @@ -389,7 +389,8 @@ static const struct v4l2_subdev_ops histo_ops =3D { * V4L2 ioctls */ =20 -static int histo_v4l2_querycap(struct file *file, void *fh, +static int histo_v4l2_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); @@ -406,7 +407,8 @@ static int histo_v4l2_querycap(struct file *file, void = *fh, return 0; } =20 -static int histo_v4l2_enum_format(struct file *file, void *fh, +static int histo_v4l2_enum_format(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); @@ -420,7 +422,8 @@ static int histo_v4l2_enum_format(struct file *file, vo= id *fh, return 0; } =20 -static int histo_v4l2_get_format(struct file *file, void *fh, +static int histo_v4l2_get_format(struct file *file, + struct video_device_state *state, struct v4l2_format *format) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); diff --git a/drivers/media/platform/renesas/vsp1/vsp1_video.c b/drivers/med= ia/platform/renesas/vsp1/vsp1_video.c index 75f9a1a85d558ff0afa2fdaf8c43a22ddbd694a8..9130f46e433a79c1ac2848fc347= 067f6c3f41c28 100644 --- a/drivers/media/platform/renesas/vsp1/vsp1_video.c +++ b/drivers/media/platform/renesas/vsp1/vsp1_video.c @@ -894,7 +894,8 @@ static const struct vb2_ops vsp1_video_queue_qops =3D { */ =20 static int -vsp1_video_querycap(struct file *file, void *fh, struct v4l2_capability *c= ap) +vsp1_video_querycap(struct file *file, struct video_device_state *state, + struct v4l2_capability *cap) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); struct vsp1_video *video =3D to_vsp1_video(vfh->vdev); @@ -909,7 +910,8 @@ vsp1_video_querycap(struct file *file, void *fh, struct= v4l2_capability *cap) return 0; } =20 -static int vsp1_video_enum_format(struct file *file, void *fh, +static int vsp1_video_enum_format(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); @@ -931,7 +933,8 @@ static int vsp1_video_enum_format(struct file *file, vo= id *fh, } =20 static int -vsp1_video_get_format(struct file *file, void *fh, struct v4l2_format *for= mat) +vsp1_video_get_format(struct file *file, struct video_device_state *state, + struct v4l2_format *format) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); struct vsp1_video *video =3D to_vsp1_video(vfh->vdev); @@ -947,7 +950,8 @@ vsp1_video_get_format(struct file *file, void *fh, stru= ct v4l2_format *format) } =20 static int -vsp1_video_try_format(struct file *file, void *fh, struct v4l2_format *for= mat) +vsp1_video_try_format(struct file *file, struct video_device_state *state, + struct v4l2_format *format) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); struct vsp1_video *video =3D to_vsp1_video(vfh->vdev); @@ -959,7 +963,8 @@ vsp1_video_try_format(struct file *file, void *fh, stru= ct v4l2_format *format) } =20 static int -vsp1_video_set_format(struct file *file, void *fh, struct v4l2_format *for= mat) +vsp1_video_set_format(struct file *file, struct video_device_state *state, + struct v4l2_format *format) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); struct vsp1_video *video =3D to_vsp1_video(vfh->vdev); @@ -989,7 +994,8 @@ vsp1_video_set_format(struct file *file, void *fh, stru= ct v4l2_format *format) } =20 static int -vsp1_video_streamon(struct file *file, void *fh, enum v4l2_buf_type type) +vsp1_video_streamon(struct file *file, struct video_device_state *state, + enum v4l2_buf_type type) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); struct vsp1_video *video =3D to_vsp1_video(vfh->vdev); diff --git a/drivers/media/platform/rockchip/rga/rga.c b/drivers/media/plat= form/rockchip/rga/rga.c index 776046de979aa0ded6734216bf179c32ae8fe5a9..87d01ed5c3ddcf3d12b09021bd4= 3c2cfc68f8eef 100644 --- a/drivers/media/platform/rockchip/rga/rga.c +++ b/drivers/media/platform/rockchip/rga/rga.c @@ -437,7 +437,8 @@ static const struct v4l2_file_operations rga_fops =3D { }; =20 static int -vidioc_querycap(struct file *file, void *priv, struct v4l2_capability *cap) +vidioc_querycap(struct file *file, struct video_device_state *state, + struct v4l2_capability *cap) { strscpy(cap->driver, RGA_NAME, sizeof(cap->driver)); strscpy(cap->card, "rockchip-rga", sizeof(cap->card)); @@ -446,7 +447,9 @@ vidioc_querycap(struct file *file, void *priv, struct v= 4l2_capability *cap) return 0; } =20 -static int vidioc_enum_fmt(struct file *file, void *priv, struct v4l2_fmtd= esc *f) +static int vidioc_enum_fmt(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *f) { struct rga_fmt *fmt; =20 @@ -459,7 +462,8 @@ static int vidioc_enum_fmt(struct file *file, void *pri= v, struct v4l2_fmtdesc *f return 0; } =20 -static int vidioc_g_fmt(struct file *file, void *priv, struct v4l2_format = *f) +static int vidioc_g_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct v4l2_pix_format_mplane *pix_fmt =3D &f->fmt.pix_mp; struct rga_ctx *ctx =3D file_to_rga_ctx(file); @@ -481,7 +485,8 @@ static int vidioc_g_fmt(struct file *file, void *priv, = struct v4l2_format *f) return 0; } =20 -static int vidioc_try_fmt(struct file *file, void *priv, struct v4l2_forma= t *f) +static int vidioc_try_fmt(struct file *file, struct video_device_state *st= ate, + struct v4l2_format *f) { struct v4l2_pix_format_mplane *pix_fmt =3D &f->fmt.pix_mp; struct rga_fmt *fmt; @@ -501,7 +506,8 @@ static int vidioc_try_fmt(struct file *file, void *priv= , struct v4l2_format *f) return 0; } =20 -static int vidioc_s_fmt(struct file *file, void *priv, struct v4l2_format = *f) +static int vidioc_s_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct v4l2_pix_format_mplane *pix_fmt =3D &f->fmt.pix_mp; struct rga_ctx *ctx =3D file_to_rga_ctx(file); @@ -514,7 +520,7 @@ static int vidioc_s_fmt(struct file *file, void *priv, = struct v4l2_format *f) /* Adjust all values accordingly to the hardware capabilities * and chosen format. */ - ret =3D vidioc_try_fmt(file, priv, f); + ret =3D vidioc_try_fmt(file, state, f); if (ret) return ret; vq =3D v4l2_m2m_get_vq(ctx->fh.m2m_ctx, f->type); @@ -558,7 +564,8 @@ static int vidioc_s_fmt(struct file *file, void *priv, = struct v4l2_format *f) return 0; } =20 -static int vidioc_g_selection(struct file *file, void *priv, +static int vidioc_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct rga_ctx *ctx =3D file_to_rga_ctx(file); @@ -606,7 +613,8 @@ static int vidioc_g_selection(struct file *file, void *= priv, return 0; } =20 -static int vidioc_s_selection(struct file *file, void *priv, +static int vidioc_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct rga_ctx *ctx =3D file_to_rga_ctx(file); diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c b/driv= ers/media/platform/rockchip/rkisp1/rkisp1-capture.c index 6dcefd144d5abe358323e37ac6133c6134ac636e..38541f482b2d0dcf23546a0b9f8= 93fb8544bcc40 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c @@ -1326,7 +1326,8 @@ static void rkisp1_set_fmt(struct rkisp1_capture *cap, cap->stride =3D pixm->plane_fmt[0].bytesperline / cap->pix.info->bpp[0]; } =20 -static int rkisp1_try_fmt_vid_cap_mplane(struct file *file, void *fh, +static int rkisp1_try_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rkisp1_capture *cap =3D video_drvdata(file); @@ -1336,7 +1337,8 @@ static int rkisp1_try_fmt_vid_cap_mplane(struct file = *file, void *fh, return 0; } =20 -static int rkisp1_enum_fmt_vid_cap_mplane(struct file *file, void *priv, +static int rkisp1_enum_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct rkisp1_capture *cap =3D video_drvdata(file); @@ -1370,7 +1372,8 @@ static int rkisp1_enum_fmt_vid_cap_mplane(struct file= *file, void *priv, return -EINVAL; } =20 -static int rkisp1_enum_framesizes(struct file *file, void *fh, +static int rkisp1_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { static const unsigned int max_widths[] =3D { @@ -1400,7 +1403,8 @@ static int rkisp1_enum_framesizes(struct file *file, = void *fh, } =20 static int rkisp1_s_fmt_vid_cap_mplane(struct file *file, - void *priv, struct v4l2_format *f) + struct video_device_state *state, + struct v4l2_format *f) { struct rkisp1_capture *cap =3D video_drvdata(file); struct rkisp1_vdev_node *node =3D @@ -1414,7 +1418,8 @@ static int rkisp1_s_fmt_vid_cap_mplane(struct file *f= ile, return 0; } =20 -static int rkisp1_g_fmt_vid_cap_mplane(struct file *file, void *fh, +static int rkisp1_g_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rkisp1_capture *cap =3D video_drvdata(file); @@ -1425,7 +1430,8 @@ static int rkisp1_g_fmt_vid_cap_mplane(struct file *f= ile, void *fh, } =20 static int -rkisp1_querycap(struct file *file, void *priv, struct v4l2_capability *cap) +rkisp1_querycap(struct file *file, struct video_device_state *state, + struct v4l2_capability *cap) { strscpy(cap->driver, RKISP1_DRIVER_NAME, sizeof(cap->driver)); strscpy(cap->card, RKISP1_DRIVER_NAME, sizeof(cap->card)); diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c b/drive= rs/media/platform/rockchip/rkisp1/rkisp1-params.c index f1585f8fa0f478304f74317fd9dd09199c94ec82..83dae25e3c10a0df437b5052cca= e64221f460899 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c @@ -2493,7 +2493,8 @@ static const struct rkisp1_params_ops rkisp1_v12_para= ms_ops =3D { .afm_config =3D rkisp1_afm_config_v12, }; =20 -static int rkisp1_params_enum_fmt_meta_out(struct file *file, void *priv, +static int rkisp1_params_enum_fmt_meta_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct video_device *video =3D video_devdata(file); @@ -2507,7 +2508,8 @@ static int rkisp1_params_enum_fmt_meta_out(struct fil= e *file, void *priv, return 0; } =20 -static int rkisp1_params_g_fmt_meta_out(struct file *file, void *fh, +static int rkisp1_params_g_fmt_meta_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct video_device *video =3D video_devdata(file); @@ -2522,7 +2524,8 @@ static int rkisp1_params_g_fmt_meta_out(struct file *= file, void *fh, return 0; } =20 -static int rkisp1_params_try_fmt_meta_out(struct file *file, void *fh, +static int rkisp1_params_try_fmt_meta_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct video_device *video =3D video_devdata(file); @@ -2536,7 +2539,8 @@ static int rkisp1_params_try_fmt_meta_out(struct file= *file, void *fh, return 0; } =20 -static int rkisp1_params_s_fmt_meta_out(struct file *file, void *fh, +static int rkisp1_params_s_fmt_meta_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct video_device *video =3D video_devdata(file); @@ -2556,7 +2560,8 @@ static int rkisp1_params_s_fmt_meta_out(struct file *= file, void *fh, } =20 static int rkisp1_params_querycap(struct file *file, - void *priv, struct v4l2_capability *cap) + struct video_device_state *state, + struct v4l2_capability *cap) { struct video_device *vdev =3D video_devdata(file); =20 diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-stats.c b/driver= s/media/platform/rockchip/rkisp1/rkisp1-stats.c index d5fdb8f82dc78b0143f71d76f36817db389921b7..043f23ed9cbd12816f3355e54de= 830a1e7429aa9 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-stats.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-stats.c @@ -18,7 +18,8 @@ #define RKISP1_ISP_STATS_REQ_BUFS_MIN 2 #define RKISP1_ISP_STATS_REQ_BUFS_MAX 8 =20 -static int rkisp1_stats_enum_fmt_meta_cap(struct file *file, void *priv, +static int rkisp1_stats_enum_fmt_meta_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct video_device *video =3D video_devdata(file); @@ -31,7 +32,8 @@ static int rkisp1_stats_enum_fmt_meta_cap(struct file *fi= le, void *priv, return 0; } =20 -static int rkisp1_stats_g_fmt_meta_cap(struct file *file, void *priv, +static int rkisp1_stats_g_fmt_meta_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct video_device *video =3D video_devdata(file); @@ -49,7 +51,8 @@ static int rkisp1_stats_g_fmt_meta_cap(struct file *file,= void *priv, } =20 static int rkisp1_stats_querycap(struct file *file, - void *priv, struct v4l2_capability *cap) + struct video_device_state *state, + struct v4l2_capability *cap) { struct video_device *vdev =3D video_devdata(file); =20 diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec.c b/drivers/medi= a/platform/rockchip/rkvdec/rkvdec.c index 9fa80ab3c62b7753e6c992aefd106ee99ed375e4..c87e206a65f0b33c10bf71b3d64= c46bdb62ebd40 100644 --- a/drivers/media/platform/rockchip/rkvdec/rkvdec.c +++ b/drivers/media/platform/rockchip/rkvdec/rkvdec.c @@ -313,7 +313,8 @@ static void rkvdec_reset_coded_fmt(struct rkvdec_ctx *c= tx) ctx->coded_fmt_desc->ops->adjust_fmt(ctx, f); } =20 -static int rkvdec_enum_framesizes(struct file *file, void *priv, +static int rkvdec_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { const struct rkvdec_coded_fmt_desc *fmt; @@ -336,7 +337,8 @@ static int rkvdec_enum_framesizes(struct file *file, vo= id *priv, return 0; } =20 -static int rkvdec_querycap(struct file *file, void *priv, +static int rkvdec_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct rkvdec_dev *rkvdec =3D video_drvdata(file); @@ -350,7 +352,8 @@ static int rkvdec_querycap(struct file *file, void *pri= v, return 0; } =20 -static int rkvdec_try_capture_fmt(struct file *file, void *priv, +static int rkvdec_try_capture_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct v4l2_pix_format_mplane *pix_mp =3D &f->fmt.pix_mp; @@ -383,7 +386,8 @@ static int rkvdec_try_capture_fmt(struct file *file, vo= id *priv, return 0; } =20 -static int rkvdec_try_output_fmt(struct file *file, void *priv, +static int rkvdec_try_output_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct v4l2_pix_format_mplane *pix_mp =3D &f->fmt.pix_mp; @@ -415,7 +419,8 @@ static int rkvdec_try_output_fmt(struct file *file, voi= d *priv, return 0; } =20 -static int rkvdec_s_capture_fmt(struct file *file, void *priv, +static int rkvdec_s_capture_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rkvdec_ctx *ctx =3D file_to_rkvdec_ctx(file); @@ -428,7 +433,7 @@ static int rkvdec_s_capture_fmt(struct file *file, void= *priv, if (vb2_is_busy(vq)) return -EBUSY; =20 - ret =3D rkvdec_try_capture_fmt(file, priv, f); + ret =3D rkvdec_try_capture_fmt(file, state, f); if (ret) return ret; =20 @@ -436,7 +441,8 @@ static int rkvdec_s_capture_fmt(struct file *file, void= *priv, return 0; } =20 -static int rkvdec_s_output_fmt(struct file *file, void *priv, +static int rkvdec_s_output_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rkvdec_ctx *ctx =3D file_to_rkvdec_ctx(file); @@ -466,7 +472,7 @@ static int rkvdec_s_output_fmt(struct file *file, void = *priv, if (vb2_is_busy(peer_vq)) return -EBUSY; =20 - ret =3D rkvdec_try_output_fmt(file, priv, f); + ret =3D rkvdec_try_output_fmt(file, state, f); if (ret) return ret; =20 @@ -501,7 +507,8 @@ static int rkvdec_s_output_fmt(struct file *file, void = *priv, return 0; } =20 -static int rkvdec_g_output_fmt(struct file *file, void *priv, +static int rkvdec_g_output_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rkvdec_ctx *ctx =3D file_to_rkvdec_ctx(file); @@ -510,7 +517,8 @@ static int rkvdec_g_output_fmt(struct file *file, void = *priv, return 0; } =20 -static int rkvdec_g_capture_fmt(struct file *file, void *priv, +static int rkvdec_g_capture_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rkvdec_ctx *ctx =3D file_to_rkvdec_ctx(file); @@ -519,7 +527,8 @@ static int rkvdec_g_capture_fmt(struct file *file, void= *priv, return 0; } =20 -static int rkvdec_enum_output_fmt(struct file *file, void *priv, +static int rkvdec_enum_output_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index >=3D ARRAY_SIZE(rkvdec_coded_fmts)) @@ -529,7 +538,8 @@ static int rkvdec_enum_output_fmt(struct file *file, vo= id *priv, return 0; } =20 -static int rkvdec_enum_capture_fmt(struct file *file, void *priv, +static int rkvdec_enum_capture_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct rkvdec_ctx *ctx =3D file_to_rkvdec_ctx(file); diff --git a/drivers/media/platform/samsung/exynos-gsc/gsc-m2m.c b/drivers/= media/platform/samsung/exynos-gsc/gsc-m2m.c index 722e2531e23f1bc01f5e9a9c08dfe4745cc2aa4f..964c0121aee162b2fc2b6b6b2fb= e8e21ccc9da4e 100644 --- a/drivers/media/platform/samsung/exynos-gsc/gsc-m2m.c +++ b/drivers/media/platform/samsung/exynos-gsc/gsc-m2m.c @@ -280,7 +280,8 @@ static const struct vb2_ops gsc_m2m_qops =3D { .start_streaming =3D gsc_m2m_start_streaming, }; =20 -static int gsc_m2m_querycap(struct file *file, void *fh, +static int gsc_m2m_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, GSC_MODULE_NAME, sizeof(cap->driver)); @@ -288,13 +289,15 @@ static int gsc_m2m_querycap(struct file *file, void *= fh, return 0; } =20 -static int gsc_m2m_enum_fmt(struct file *file, void *priv, +static int gsc_m2m_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return gsc_enum_fmt(f); } =20 -static int gsc_m2m_g_fmt_mplane(struct file *file, void *fh, +static int gsc_m2m_g_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct gsc_ctx *ctx =3D file_to_ctx(file); @@ -302,7 +305,8 @@ static int gsc_m2m_g_fmt_mplane(struct file *file, void= *fh, return gsc_g_fmt_mplane(ctx, f); } =20 -static int gsc_m2m_try_fmt_mplane(struct file *file, void *fh, +static int gsc_m2m_try_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct gsc_ctx *ctx =3D file_to_ctx(file); @@ -310,7 +314,8 @@ static int gsc_m2m_try_fmt_mplane(struct file *file, vo= id *fh, return gsc_try_fmt_mplane(ctx, f); } =20 -static int gsc_m2m_s_fmt_mplane(struct file *file, void *fh, +static int gsc_m2m_s_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct gsc_ctx *ctx =3D file_to_ctx(file); @@ -319,7 +324,7 @@ static int gsc_m2m_s_fmt_mplane(struct file *file, void= *fh, struct v4l2_pix_format_mplane *pix; int i, ret =3D 0; =20 - ret =3D gsc_m2m_try_fmt_mplane(file, fh, f); + ret =3D gsc_m2m_try_fmt_mplane(file, state, f); if (ret) return ret; =20 @@ -356,7 +361,8 @@ static int gsc_m2m_s_fmt_mplane(struct file *file, void= *fh, return 0; } =20 -static int gsc_m2m_reqbufs(struct file *file, void *fh, +static int gsc_m2m_reqbufs(struct file *file, + struct video_device_state *state, struct v4l2_requestbuffers *reqbufs) { struct gsc_ctx *ctx =3D file_to_ctx(file); @@ -371,35 +377,40 @@ static int gsc_m2m_reqbufs(struct file *file, void *f= h, return v4l2_m2m_reqbufs(file, ctx->m2m_ctx, reqbufs); } =20 -static int gsc_m2m_expbuf(struct file *file, void *fh, +static int gsc_m2m_expbuf(struct file *file, + struct video_device_state *state, struct v4l2_exportbuffer *eb) { struct gsc_ctx *ctx =3D file_to_ctx(file); return v4l2_m2m_expbuf(file, ctx->m2m_ctx, eb); } =20 -static int gsc_m2m_querybuf(struct file *file, void *fh, +static int gsc_m2m_querybuf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf) { struct gsc_ctx *ctx =3D file_to_ctx(file); return v4l2_m2m_querybuf(file, ctx->m2m_ctx, buf); } =20 -static int gsc_m2m_qbuf(struct file *file, void *fh, +static int gsc_m2m_qbuf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf) { struct gsc_ctx *ctx =3D file_to_ctx(file); return v4l2_m2m_qbuf(file, ctx->m2m_ctx, buf); } =20 -static int gsc_m2m_dqbuf(struct file *file, void *fh, +static int gsc_m2m_dqbuf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf) { struct gsc_ctx *ctx =3D file_to_ctx(file); return v4l2_m2m_dqbuf(file, ctx->m2m_ctx, buf); } =20 -static int gsc_m2m_streamon(struct file *file, void *fh, +static int gsc_m2m_streamon(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct gsc_ctx *ctx =3D file_to_ctx(file); @@ -415,7 +426,8 @@ static int gsc_m2m_streamon(struct file *file, void *fh, return v4l2_m2m_streamon(file, ctx->m2m_ctx, type); } =20 -static int gsc_m2m_streamoff(struct file *file, void *fh, +static int gsc_m2m_streamoff(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct gsc_ctx *ctx =3D file_to_ctx(file); @@ -437,7 +449,8 @@ static int is_rectangle_enclosed(struct v4l2_rect *a, s= truct v4l2_rect *b) return 1; } =20 -static int gsc_m2m_g_selection(struct file *file, void *fh, +static int gsc_m2m_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct gsc_ctx *ctx =3D file_to_ctx(file); @@ -474,7 +487,8 @@ static int gsc_m2m_g_selection(struct file *file, void = *fh, return -EINVAL; } =20 -static int gsc_m2m_s_selection(struct file *file, void *fh, +static int gsc_m2m_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct gsc_frame *frame; diff --git a/drivers/media/platform/samsung/exynos4-is/fimc-capture.c b/dri= vers/media/platform/samsung/exynos4-is/fimc-capture.c index 5b412afd7d6052f7491ccf596121025a4fc49f41..1e08ce33856d38ad51e540d654b= eeb06419cb49d 100644 --- a/drivers/media/platform/samsung/exynos4-is/fimc-capture.c +++ b/drivers/media/platform/samsung/exynos4-is/fimc-capture.c @@ -708,7 +708,8 @@ static void fimc_capture_try_selection(struct fimc_ctx = *ctx, /* * The video node ioctl operations */ -static int fimc_cap_querycap(struct file *file, void *priv, +static int fimc_cap_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct fimc_dev *fimc =3D video_drvdata(file); @@ -717,7 +718,8 @@ static int fimc_cap_querycap(struct file *file, void *p= riv, return 0; } =20 -static int fimc_cap_enum_fmt(struct file *file, void *priv, +static int fimc_cap_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { const struct fimc_fmt *fmt; @@ -885,7 +887,8 @@ static int fimc_get_sensor_frame_desc(struct v4l2_subde= v *sensor, return 0; } =20 -static int fimc_cap_g_fmt_mplane(struct file *file, void *fh, +static int fimc_cap_g_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct fimc_dev *fimc =3D video_drvdata(file); @@ -980,7 +983,8 @@ static int __video_try_or_set_format(struct fimc_dev *f= imc, return ret; } =20 -static int fimc_cap_try_fmt_mplane(struct file *file, void *fh, +static int fimc_cap_try_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct fimc_dev *fimc =3D video_drvdata(file); @@ -1045,7 +1049,8 @@ static int __fimc_capture_set_format(struct fimc_dev = *fimc, return ret; } =20 -static int fimc_cap_s_fmt_mplane(struct file *file, void *priv, +static int fimc_cap_s_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct fimc_dev *fimc =3D video_drvdata(file); @@ -1053,7 +1058,8 @@ static int fimc_cap_s_fmt_mplane(struct file *file, v= oid *priv, return __fimc_capture_set_format(fimc, f); } =20 -static int fimc_cap_enum_input(struct file *file, void *priv, +static int fimc_cap_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { struct fimc_dev *fimc =3D video_drvdata(file); @@ -1074,12 +1080,14 @@ static int fimc_cap_enum_input(struct file *file, v= oid *priv, return 0; } =20 -static int fimc_cap_s_input(struct file *file, void *priv, unsigned int i) +static int fimc_cap_s_input(struct file *file, + struct video_device_state *state, unsigned int i) { return i =3D=3D 0 ? i : -EINVAL; } =20 -static int fimc_cap_g_input(struct file *file, void *priv, unsigned int *i) +static int fimc_cap_g_input(struct file *file, + struct video_device_state *state, unsigned int *i) { *i =3D 0; return 0; @@ -1173,7 +1181,8 @@ static int fimc_pipeline_validate(struct fimc_dev *fi= mc) return 0; } =20 -static int fimc_cap_streamon(struct file *file, void *priv, +static int fimc_cap_streamon(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct fimc_dev *fimc =3D video_drvdata(file); @@ -1212,7 +1221,7 @@ static int fimc_cap_streamon(struct file *file, void = *priv, goto err_p_stop; } =20 - ret =3D vb2_ioctl_streamon(file, priv, type); + ret =3D vb2_ioctl_streamon(file, state, type); if (!ret) { vc->streaming =3D true; return ret; @@ -1223,14 +1232,15 @@ static int fimc_cap_streamon(struct file *file, voi= d *priv, return ret; } =20 -static int fimc_cap_streamoff(struct file *file, void *priv, +static int fimc_cap_streamoff(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct fimc_dev *fimc =3D video_drvdata(file); struct fimc_vid_cap *vc =3D &fimc->vid_cap; int ret; =20 - ret =3D vb2_ioctl_streamoff(file, priv, type); + ret =3D vb2_ioctl_streamoff(file, state, type); if (ret < 0) return ret; =20 @@ -1242,13 +1252,14 @@ static int fimc_cap_streamoff(struct file *file, vo= id *priv, return 0; } =20 -static int fimc_cap_reqbufs(struct file *file, void *priv, +static int fimc_cap_reqbufs(struct file *file, + struct video_device_state *state, struct v4l2_requestbuffers *reqbufs) { struct fimc_dev *fimc =3D video_drvdata(file); int ret; =20 - ret =3D vb2_ioctl_reqbufs(file, priv, reqbufs); + ret =3D vb2_ioctl_reqbufs(file, state, reqbufs); =20 if (!ret) fimc->vid_cap.reqbufs_count =3D reqbufs->count; @@ -1256,7 +1267,8 @@ static int fimc_cap_reqbufs(struct file *file, void *= priv, return ret; } =20 -static int fimc_cap_g_selection(struct file *file, void *fh, +static int fimc_cap_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct fimc_dev *fimc =3D video_drvdata(file); @@ -1293,7 +1305,8 @@ static int fimc_cap_g_selection(struct file *file, vo= id *fh, return -EINVAL; } =20 -static int fimc_cap_s_selection(struct file *file, void *fh, +static int fimc_cap_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct fimc_dev *fimc =3D video_drvdata(file); diff --git a/drivers/media/platform/samsung/exynos4-is/fimc-isp-video.c b/d= rivers/media/platform/samsung/exynos4-is/fimc-isp-video.c index ad219ac1b95137a703ea709d12139cca6b2e2332..1a985a9b6c56e4f03977df27732= 8961c62854703 100644 --- a/drivers/media/platform/samsung/exynos4-is/fimc-isp-video.c +++ b/drivers/media/platform/samsung/exynos4-is/fimc-isp-video.c @@ -342,7 +342,8 @@ static const struct v4l2_file_operations isp_video_fops= =3D { /* * Video node ioctl operations */ -static int isp_video_querycap(struct file *file, void *priv, +static int isp_video_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct fimc_isp *isp =3D video_drvdata(file); @@ -351,7 +352,8 @@ static int isp_video_querycap(struct file *file, void *= priv, return 0; } =20 -static int isp_video_enum_fmt(struct file *file, void *priv, +static int isp_video_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { const struct fimc_fmt *fmt; @@ -368,7 +370,8 @@ static int isp_video_enum_fmt(struct file *file, void *= priv, return 0; } =20 -static int isp_video_g_fmt_mplane(struct file *file, void *fh, +static int isp_video_g_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct fimc_isp *isp =3D video_drvdata(file); @@ -402,7 +405,8 @@ static void __isp_video_try_fmt(struct fimc_isp *isp, FIMC_ISP_SOURCE_HEIGHT_MAX, 0, 0); } =20 -static int isp_video_try_fmt_mplane(struct file *file, void *fh, +static int isp_video_try_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct fimc_isp *isp =3D video_drvdata(file); @@ -411,7 +415,8 @@ static int isp_video_try_fmt_mplane(struct file *file, = void *fh, return 0; } =20 -static int isp_video_s_fmt_mplane(struct file *file, void *priv, +static int isp_video_s_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct fimc_isp *isp =3D video_drvdata(file); @@ -487,7 +492,8 @@ static int isp_video_pipeline_validate(struct fimc_isp = *isp) return 0; } =20 -static int isp_video_streamon(struct file *file, void *priv, +static int isp_video_streamon(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct fimc_isp *isp =3D video_drvdata(file); @@ -502,7 +508,7 @@ static int isp_video_streamon(struct file *file, void *= priv, if (ret < 0) goto p_stop; =20 - ret =3D vb2_ioctl_streamon(file, priv, type); + ret =3D vb2_ioctl_streamon(file, state, type); if (ret < 0) goto p_stop; =20 @@ -513,14 +519,15 @@ static int isp_video_streamon(struct file *file, void= *priv, return ret; } =20 -static int isp_video_streamoff(struct file *file, void *priv, +static int isp_video_streamoff(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct fimc_isp *isp =3D video_drvdata(file); struct fimc_is_video *video =3D &isp->video_capture; int ret; =20 - ret =3D vb2_ioctl_streamoff(file, priv, type); + ret =3D vb2_ioctl_streamoff(file, state, type); if (ret < 0) return ret; =20 @@ -529,19 +536,20 @@ static int isp_video_streamoff(struct file *file, voi= d *priv, return 0; } =20 -static int isp_video_reqbufs(struct file *file, void *priv, +static int isp_video_reqbufs(struct file *file, + struct video_device_state *state, struct v4l2_requestbuffers *rb) { struct fimc_isp *isp =3D video_drvdata(file); int ret; =20 - ret =3D vb2_ioctl_reqbufs(file, priv, rb); + ret =3D vb2_ioctl_reqbufs(file, state, rb); if (ret < 0) return ret; =20 if (rb->count && rb->count < FIMC_ISP_REQ_BUFS_MIN) { rb->count =3D 0; - vb2_ioctl_reqbufs(file, priv, rb); + vb2_ioctl_reqbufs(file, state, rb); ret =3D -ENOMEM; } =20 diff --git a/drivers/media/platform/samsung/exynos4-is/fimc-lite.c b/driver= s/media/platform/samsung/exynos4-is/fimc-lite.c index 0ce293b0718b6a496b06275ebe778f118951d7bf..8b22b68b00b05f336c788127636= 3a594105b73cd 100644 --- a/drivers/media/platform/samsung/exynos4-is/fimc-lite.c +++ b/drivers/media/platform/samsung/exynos4-is/fimc-lite.c @@ -639,7 +639,8 @@ static void fimc_lite_try_compose(struct fimc_lite *fim= c, struct v4l2_rect *r) /* * Video node ioctl operations */ -static int fimc_lite_querycap(struct file *file, void *priv, +static int fimc_lite_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, FIMC_LITE_DRV_NAME, sizeof(cap->driver)); @@ -647,7 +648,8 @@ static int fimc_lite_querycap(struct file *file, void *= priv, return 0; } =20 -static int fimc_lite_enum_fmt(struct file *file, void *priv, +static int fimc_lite_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { const struct fimc_fmt *fmt; @@ -661,7 +663,8 @@ static int fimc_lite_enum_fmt(struct file *file, void *= priv, return 0; } =20 -static int fimc_lite_g_fmt_mplane(struct file *file, void *fh, +static int fimc_lite_g_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct fimc_lite *fimc =3D video_drvdata(file); @@ -726,14 +729,16 @@ static int fimc_lite_try_fmt(struct fimc_lite *fimc, return 0; } =20 -static int fimc_lite_try_fmt_mplane(struct file *file, void *fh, +static int fimc_lite_try_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct fimc_lite *fimc =3D video_drvdata(file); return fimc_lite_try_fmt(fimc, &f->fmt.pix_mp, NULL); } =20 -static int fimc_lite_s_fmt_mplane(struct file *file, void *priv, +static int fimc_lite_s_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { const struct v4l2_pix_format_mplane *pixm =3D &f->fmt.pix_mp; @@ -807,7 +812,8 @@ static int fimc_pipeline_validate(struct fimc_lite *fim= c) return 0; } =20 -static int fimc_lite_streamon(struct file *file, void *priv, +static int fimc_lite_streamon(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct fimc_lite *fimc =3D video_drvdata(file); @@ -826,7 +832,7 @@ static int fimc_lite_streamon(struct file *file, void *= priv, =20 fimc->sensor =3D fimc_find_remote_sensor(&fimc->subdev.entity); =20 - ret =3D vb2_ioctl_streamon(file, priv, type); + ret =3D vb2_ioctl_streamon(file, state, type); if (!ret) { fimc->streaming =3D true; return ret; @@ -837,13 +843,14 @@ static int fimc_lite_streamon(struct file *file, void= *priv, return 0; } =20 -static int fimc_lite_streamoff(struct file *file, void *priv, +static int fimc_lite_streamoff(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct fimc_lite *fimc =3D video_drvdata(file); int ret; =20 - ret =3D vb2_ioctl_streamoff(file, priv, type); + ret =3D vb2_ioctl_streamoff(file, state, type); if (ret < 0) return ret; =20 @@ -852,21 +859,23 @@ static int fimc_lite_streamoff(struct file *file, voi= d *priv, return 0; } =20 -static int fimc_lite_reqbufs(struct file *file, void *priv, +static int fimc_lite_reqbufs(struct file *file, + struct video_device_state *state, struct v4l2_requestbuffers *reqbufs) { struct fimc_lite *fimc =3D video_drvdata(file); int ret; =20 reqbufs->count =3D max_t(u32, FLITE_REQ_BUFS_MIN, reqbufs->count); - ret =3D vb2_ioctl_reqbufs(file, priv, reqbufs); + ret =3D vb2_ioctl_reqbufs(file, state, reqbufs); if (!ret) fimc->reqbufs_count =3D reqbufs->count; =20 return ret; } =20 -static int fimc_lite_g_selection(struct file *file, void *fh, +static int fimc_lite_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct fimc_lite *fimc =3D video_drvdata(file); @@ -892,7 +901,8 @@ static int fimc_lite_g_selection(struct file *file, voi= d *fh, return -EINVAL; } =20 -static int fimc_lite_s_selection(struct file *file, void *fh, +static int fimc_lite_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct fimc_lite *fimc =3D video_drvdata(file); diff --git a/drivers/media/platform/samsung/exynos4-is/fimc-m2m.c b/drivers= /media/platform/samsung/exynos4-is/fimc-m2m.c index 562c57f186c61546175b4f902f1da18fbb2f25fe..4efa54f1e7a671741b5c16c9a95= 4af572150dfd8 100644 --- a/drivers/media/platform/samsung/exynos4-is/fimc-m2m.c +++ b/drivers/media/platform/samsung/exynos4-is/fimc-m2m.c @@ -223,7 +223,8 @@ static const struct vb2_ops fimc_qops =3D { /* * V4L2 ioctl handlers */ -static int fimc_m2m_querycap(struct file *file, void *fh, +static int fimc_m2m_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct fimc_dev *fimc =3D video_drvdata(file); @@ -232,7 +233,8 @@ static int fimc_m2m_querycap(struct file *file, void *f= h, return 0; } =20 -static int fimc_m2m_enum_fmt(struct file *file, void *priv, +static int fimc_m2m_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { const struct fimc_fmt *fmt; @@ -246,7 +248,8 @@ static int fimc_m2m_enum_fmt(struct file *file, void *p= riv, return 0; } =20 -static int fimc_m2m_g_fmt_mplane(struct file *file, void *fh, +static int fimc_m2m_g_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct fimc_ctx *ctx =3D file_to_ctx(file); @@ -305,7 +308,8 @@ static int fimc_try_fmt_mplane(struct fimc_ctx *ctx, st= ruct v4l2_format *f) return 0; } =20 -static int fimc_m2m_try_fmt_mplane(struct file *file, void *fh, +static int fimc_m2m_try_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct fimc_ctx *ctx =3D file_to_ctx(file); @@ -334,7 +338,8 @@ static void __set_frame_format(struct fimc_frame *frame, frame->fmt =3D fmt; } =20 -static int fimc_m2m_s_fmt_mplane(struct file *file, void *fh, +static int fimc_m2m_s_fmt_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct fimc_ctx *ctx =3D file_to_ctx(file); @@ -373,7 +378,8 @@ static int fimc_m2m_s_fmt_mplane(struct file *file, voi= d *fh, return 0; } =20 -static int fimc_m2m_g_selection(struct file *file, void *fh, +static int fimc_m2m_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct fimc_ctx *ctx =3D file_to_ctx(file); @@ -481,7 +487,8 @@ static int fimc_m2m_try_selection(struct fimc_ctx *ctx, return 0; } =20 -static int fimc_m2m_s_selection(struct file *file, void *fh, +static int fimc_m2m_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct fimc_ctx *ctx =3D file_to_ctx(file); diff --git a/drivers/media/platform/samsung/s3c-camif/camif-capture.c b/dri= vers/media/platform/samsung/s3c-camif/camif-capture.c index ed1a1d693293b33d8da3190ac8ee6dd212a64b88..735e9b643b474dc20da03fe82d6= 73c59f41492f2 100644 --- a/drivers/media/platform/samsung/s3c-camif/camif-capture.c +++ b/drivers/media/platform/samsung/s3c-camif/camif-capture.c @@ -630,7 +630,8 @@ static const struct v4l2_file_operations s3c_camif_fops= =3D { * Video node IOCTLs */ =20 -static int s3c_camif_vidioc_querycap(struct file *file, void *priv, +static int s3c_camif_vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct camif_vp *vp =3D video_drvdata(file); @@ -642,7 +643,8 @@ static int s3c_camif_vidioc_querycap(struct file *file,= void *priv, return 0; } =20 -static int s3c_camif_vidioc_enum_input(struct file *file, void *priv, +static int s3c_camif_vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *input) { struct camif_vp *vp =3D video_drvdata(file); @@ -656,20 +658,23 @@ static int s3c_camif_vidioc_enum_input(struct file *f= ile, void *priv, return 0; } =20 -static int s3c_camif_vidioc_s_input(struct file *file, void *priv, +static int s3c_camif_vidioc_s_input(struct file *file, + struct video_device_state *state, unsigned int i) { return i =3D=3D 0 ? 0 : -EINVAL; } =20 -static int s3c_camif_vidioc_g_input(struct file *file, void *priv, +static int s3c_camif_vidioc_g_input(struct file *file, + struct video_device_state *state, unsigned int *i) { *i =3D 0; return 0; } =20 -static int s3c_camif_vidioc_enum_fmt(struct file *file, void *priv, +static int s3c_camif_vidioc_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct camif_vp *vp =3D video_drvdata(file); @@ -683,7 +688,8 @@ static int s3c_camif_vidioc_enum_fmt(struct file *file,= void *priv, return 0; } =20 -static int s3c_camif_vidioc_g_fmt(struct file *file, void *priv, +static int s3c_camif_vidioc_g_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct camif_vp *vp =3D video_drvdata(file); @@ -754,14 +760,16 @@ static int __camif_video_try_format(struct camif_vp *= vp, return 0; } =20 -static int s3c_camif_vidioc_try_fmt(struct file *file, void *priv, +static int s3c_camif_vidioc_try_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct camif_vp *vp =3D video_drvdata(file); return __camif_video_try_format(vp, &f->fmt.pix, NULL); } =20 -static int s3c_camif_vidioc_s_fmt(struct file *file, void *priv, +static int s3c_camif_vidioc_s_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct v4l2_pix_format *pix =3D &f->fmt.pix; @@ -828,7 +836,8 @@ static int camif_pipeline_validate(struct camif_dev *ca= mif) return 0; } =20 -static int s3c_camif_streamon(struct file *file, void *priv, +static int s3c_camif_streamon(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct camif_vp *vp =3D video_drvdata(file); @@ -860,7 +869,8 @@ static int s3c_camif_streamon(struct file *file, void *= priv, return vb2_streamon(&vp->vb_queue, type); } =20 -static int s3c_camif_streamoff(struct file *file, void *priv, +static int s3c_camif_streamoff(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct camif_vp *vp =3D video_drvdata(file); @@ -881,7 +891,8 @@ static int s3c_camif_streamoff(struct file *file, void = *priv, return ret; } =20 -static int s3c_camif_reqbufs(struct file *file, void *priv, +static int s3c_camif_reqbufs(struct file *file, + struct video_device_state *state, struct v4l2_requestbuffers *rb) { struct camif_vp *vp =3D video_drvdata(file); @@ -915,14 +926,16 @@ static int s3c_camif_reqbufs(struct file *file, void = *priv, return ret; } =20 -static int s3c_camif_querybuf(struct file *file, void *priv, +static int s3c_camif_querybuf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf) { struct camif_vp *vp =3D video_drvdata(file); return vb2_querybuf(&vp->vb_queue, buf); } =20 -static int s3c_camif_qbuf(struct file *file, void *priv, +static int s3c_camif_qbuf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf) { struct camif_vp *vp =3D video_drvdata(file); @@ -935,7 +948,8 @@ static int s3c_camif_qbuf(struct file *file, void *priv, return vb2_qbuf(&vp->vb_queue, vp->vdev.v4l2_dev->mdev, buf); } =20 -static int s3c_camif_dqbuf(struct file *file, void *priv, +static int s3c_camif_dqbuf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf) { struct camif_vp *vp =3D video_drvdata(file); @@ -948,7 +962,8 @@ static int s3c_camif_dqbuf(struct file *file, void *pri= v, return vb2_dqbuf(&vp->vb_queue, buf, file->f_flags & O_NONBLOCK); } =20 -static int s3c_camif_create_bufs(struct file *file, void *priv, +static int s3c_camif_create_bufs(struct file *file, + struct video_device_state *state, struct v4l2_create_buffers *create) { struct camif_vp *vp =3D video_drvdata(file); @@ -966,14 +981,16 @@ static int s3c_camif_create_bufs(struct file *file, v= oid *priv, return ret; } =20 -static int s3c_camif_prepare_buf(struct file *file, void *priv, +static int s3c_camif_prepare_buf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *b) { struct camif_vp *vp =3D video_drvdata(file); return vb2_prepare_buf(&vp->vb_queue, vp->vdev.v4l2_dev->mdev, b); } =20 -static int s3c_camif_g_selection(struct file *file, void *priv, +static int s3c_camif_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct camif_vp *vp =3D video_drvdata(file); @@ -1010,7 +1027,8 @@ static void __camif_try_compose(struct camif_dev *cam= if, struct camif_vp *vp, /* TODO: s3c64xx */ } =20 -static int s3c_camif_s_selection(struct file *file, void *priv, +static int s3c_camif_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct camif_vp *vp =3D video_drvdata(file); diff --git a/drivers/media/platform/samsung/s5p-g2d/g2d.c b/drivers/media/p= latform/samsung/s5p-g2d/g2d.c index ffb9bee6cb9d4759647925d791a13e1f0ce3f299..e7bf9bc50c3435ca190a194aef9= bef0d1f5374c0 100644 --- a/drivers/media/platform/samsung/s5p-g2d/g2d.c +++ b/drivers/media/platform/samsung/s5p-g2d/g2d.c @@ -288,7 +288,8 @@ static int g2d_release(struct file *file) } =20 =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, G2D_NAME, sizeof(cap->driver)); @@ -297,7 +298,9 @@ static int vidioc_querycap(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_enum_fmt(struct file *file, void *priv, struct v4l2_fmtd= esc *f) +static int vidioc_enum_fmt(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *f) { if (f->index >=3D NUM_FORMATS) return -EINVAL; @@ -305,7 +308,8 @@ static int vidioc_enum_fmt(struct file *file, void *pri= v, struct v4l2_fmtdesc *f return 0; } =20 -static int vidioc_g_fmt(struct file *file, void *priv, struct v4l2_format = *f) +static int vidioc_g_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct g2d_ctx *ctx =3D file2ctx(file); struct vb2_queue *vq; @@ -327,7 +331,8 @@ static int vidioc_g_fmt(struct file *file, void *priv, = struct v4l2_format *f) return 0; } =20 -static int vidioc_try_fmt(struct file *file, void *priv, struct v4l2_forma= t *f) +static int vidioc_try_fmt(struct file *file, struct video_device_state *st= ate, + struct v4l2_format *f) { struct g2d_fmt *fmt; enum v4l2_field *field; @@ -357,7 +362,8 @@ static int vidioc_try_fmt(struct file *file, void *priv= , struct v4l2_format *f) return 0; } =20 -static int vidioc_s_fmt(struct file *file, void *priv, struct v4l2_format = *f) +static int vidioc_s_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct g2d_ctx *ctx =3D file2ctx(file); struct g2d_dev *dev =3D ctx->dev; @@ -368,7 +374,7 @@ static int vidioc_s_fmt(struct file *file, void *priv, = struct v4l2_format *f) =20 /* Adjust all values accordingly to the hardware capabilities * and chosen format. */ - ret =3D vidioc_try_fmt(file, priv, f); + ret =3D vidioc_try_fmt(file, state, f); if (ret) return ret; vq =3D v4l2_m2m_get_vq(ctx->fh.m2m_ctx, f->type); @@ -397,7 +403,8 @@ static int vidioc_s_fmt(struct file *file, void *priv, = struct v4l2_format *f) return 0; } =20 -static int vidioc_g_selection(struct file *file, void *priv, +static int vidioc_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct g2d_ctx *ctx =3D file2ctx(file); @@ -475,14 +482,15 @@ static int vidioc_try_selection(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_s_selection(struct file *file, void *priv, +static int vidioc_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct g2d_ctx *ctx =3D file2ctx(file); struct g2d_frame *f; int ret; =20 - ret =3D vidioc_try_selection(file, priv, s); + ret =3D vidioc_try_selection(file, state, s); if (ret) return ret; f =3D get_frame(ctx, s->type); diff --git a/drivers/media/platform/samsung/s5p-jpeg/jpeg-core.c b/drivers/= media/platform/samsung/s5p-jpeg/jpeg-core.c index 81792f7f8b1671dba2023f99b2779784d9a14b8c..5a5b24fd312c8f96b684e533b21= cc4724f8f2a0b 100644 --- a/drivers/media/platform/samsung/s5p-jpeg/jpeg-core.c +++ b/drivers/media/platform/samsung/s5p-jpeg/jpeg-core.c @@ -1245,7 +1245,8 @@ static bool s5p_jpeg_parse_hdr(struct s5p_jpeg_q_data= *result, return true; } =20 -static int s5p_jpeg_querycap(struct file *file, void *priv, +static int s5p_jpeg_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct s5p_jpeg_ctx *ctx =3D file_to_ctx(file); @@ -1293,7 +1294,8 @@ static int enum_fmt(struct s5p_jpeg_ctx *ctx, return 0; } =20 -static int s5p_jpeg_enum_fmt_vid_cap(struct file *file, void *priv, +static int s5p_jpeg_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct s5p_jpeg_ctx *ctx =3D file_to_ctx(file); @@ -1306,7 +1308,8 @@ static int s5p_jpeg_enum_fmt_vid_cap(struct file *fil= e, void *priv, SJPEG_FMT_FLAG_DEC_CAPTURE); } =20 -static int s5p_jpeg_enum_fmt_vid_out(struct file *file, void *priv, +static int s5p_jpeg_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct s5p_jpeg_ctx *ctx =3D file_to_ctx(file); @@ -1330,7 +1333,8 @@ static struct s5p_jpeg_q_data *get_q_data(struct s5p_= jpeg_ctx *ctx, return NULL; } =20 -static int s5p_jpeg_g_fmt(struct file *file, void *priv, struct v4l2_forma= t *f) +static int s5p_jpeg_g_fmt(struct file *file, struct video_device_state *st= ate, + struct v4l2_format *f) { struct vb2_queue *vq; struct s5p_jpeg_q_data *q_data =3D NULL; @@ -1472,7 +1476,8 @@ static int vidioc_try_fmt(struct v4l2_format *f, stru= ct s5p_jpeg_fmt *fmt, return 0; } =20 -static int s5p_jpeg_try_fmt_vid_cap(struct file *file, void *priv, +static int s5p_jpeg_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct s5p_jpeg_ctx *ctx =3D file_to_ctx(file); @@ -1531,7 +1536,8 @@ static int s5p_jpeg_try_fmt_vid_cap(struct file *file= , void *priv, return vidioc_try_fmt(f, fmt, ctx, FMT_TYPE_CAPTURE); } =20 -static int s5p_jpeg_try_fmt_vid_out(struct file *file, void *priv, +static int s5p_jpeg_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct s5p_jpeg_ctx *ctx =3D file_to_ctx(file); @@ -1672,24 +1678,26 @@ static int s5p_jpeg_s_fmt(struct s5p_jpeg_ctx *ct, = struct v4l2_format *f) return 0; } =20 -static int s5p_jpeg_s_fmt_vid_cap(struct file *file, void *priv, +static int s5p_jpeg_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int ret; =20 - ret =3D s5p_jpeg_try_fmt_vid_cap(file, priv, f); + ret =3D s5p_jpeg_try_fmt_vid_cap(file, state, f); if (ret) return ret; =20 return s5p_jpeg_s_fmt(file_to_ctx(file), f); } =20 -static int s5p_jpeg_s_fmt_vid_out(struct file *file, void *priv, +static int s5p_jpeg_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int ret; =20 - ret =3D s5p_jpeg_try_fmt_vid_out(file, priv, f); + ret =3D s5p_jpeg_try_fmt_vid_out(file, state, f); if (ret) return ret; =20 @@ -1787,7 +1795,8 @@ static int exynos3250_jpeg_try_crop(struct s5p_jpeg_c= tx *ctx, * V4L2 controls */ =20 -static int s5p_jpeg_g_selection(struct file *file, void *priv, +static int s5p_jpeg_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct s5p_jpeg_ctx *ctx =3D file_to_ctx(file); @@ -1824,7 +1833,8 @@ static int s5p_jpeg_g_selection(struct file *file, vo= id *priv, /* * V4L2 controls */ -static int s5p_jpeg_s_selection(struct file *file, void *fh, +static int s5p_jpeg_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct s5p_jpeg_ctx *ctx =3D file_to_ctx(file); diff --git a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_dec.c b/drivers= /media/platform/samsung/s5p-mfc/s5p_mfc_dec.c index afd28beabfdee3a52ffceb467d6d875f4dc428ac..b38d43497e7c274c8bd5311372b= fa15aafa10a51 100644 --- a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_dec.c +++ b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_dec.c @@ -295,7 +295,8 @@ static const struct s5p_mfc_codec_ops decoder_codec_ops= =3D { }; =20 /* Query capabilities of the device */ -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct s5p_mfc_dev *dev =3D video_drvdata(file); @@ -330,20 +331,23 @@ static int vidioc_enum_fmt(struct file *file, struct = v4l2_fmtdesc *f, return 0; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return vidioc_enum_fmt(file, f, false); } =20 -static int vidioc_enum_fmt_vid_out(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return vidioc_enum_fmt(file, f, true); } =20 /* Get format */ -static int vidioc_g_fmt(struct file *file, void *priv, struct v4l2_format = *f) +static int vidioc_g_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); struct v4l2_pix_format_mplane *pix_mp; @@ -403,7 +407,8 @@ static int vidioc_g_fmt(struct file *file, void *priv, = struct v4l2_format *f) } =20 /* Try format */ -static int vidioc_try_fmt(struct file *file, void *priv, struct v4l2_forma= t *f) +static int vidioc_try_fmt(struct file *file, struct video_device_state *st= ate, + struct v4l2_format *f) { struct s5p_mfc_dev *dev =3D video_drvdata(file); const struct s5p_mfc_fmt *fmt; @@ -439,7 +444,8 @@ static int vidioc_try_fmt(struct file *file, void *priv= , struct v4l2_format *f) } =20 /* Set format */ -static int vidioc_s_fmt(struct file *file, void *priv, struct v4l2_format = *f) +static int vidioc_s_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct s5p_mfc_dev *dev =3D video_drvdata(file); struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); @@ -448,7 +454,7 @@ static int vidioc_s_fmt(struct file *file, void *priv, = struct v4l2_format *f) const struct s5p_mfc_buf_size *buf_size =3D dev->variant->buf_size; =20 mfc_debug_enter(); - ret =3D vidioc_try_fmt(file, priv, f); + ret =3D vidioc_try_fmt(file, state, f); pix_mp =3D &f->fmt.pix_mp; if (ret) return ret; @@ -594,7 +600,8 @@ static int reqbufs_capture(struct s5p_mfc_dev *dev, str= uct s5p_mfc_ctx *ctx, } =20 /* Request buffers */ -static int vidioc_reqbufs(struct file *file, void *priv, +static int vidioc_reqbufs(struct file *file, + struct video_device_state *state, struct v4l2_requestbuffers *reqbufs) { struct s5p_mfc_dev *dev =3D video_drvdata(file); @@ -616,7 +623,8 @@ static int vidioc_reqbufs(struct file *file, void *priv, } =20 /* Query buffer */ -static int vidioc_querybuf(struct file *file, void *priv, +static int vidioc_querybuf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); @@ -645,7 +653,8 @@ static int vidioc_querybuf(struct file *file, void *pri= v, } =20 /* Queue a buffer */ -static int vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *= buf) +static int vidioc_qbuf(struct file *file, struct video_device_state *state, + struct v4l2_buffer *buf) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); =20 @@ -661,7 +670,8 @@ static int vidioc_qbuf(struct file *file, void *priv, s= truct v4l2_buffer *buf) } =20 /* Dequeue a buffer */ -static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer = *buf) +static int vidioc_dqbuf(struct file *file, struct video_device_state *stat= e, + struct v4l2_buffer *buf) { const struct v4l2_event ev =3D { .type =3D V4L2_EVENT_EOS @@ -692,8 +702,8 @@ static int vidioc_dqbuf(struct file *file, void *priv, = struct v4l2_buffer *buf) } =20 /* Export DMA buffer */ -static int vidioc_expbuf(struct file *file, void *priv, - struct v4l2_exportbuffer *eb) +static int vidioc_expbuf(struct file *file, + struct video_device_state *state, struct v4l2_exportbuffer *eb) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); =20 @@ -705,7 +715,8 @@ static int vidioc_expbuf(struct file *file, void *priv, } =20 /* Stream on */ -static int vidioc_streamon(struct file *file, void *priv, +static int vidioc_streamon(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); @@ -721,7 +732,8 @@ static int vidioc_streamon(struct file *file, void *pri= v, } =20 /* Stream off, which equals to a pause */ -static int vidioc_streamoff(struct file *file, void *priv, +static int vidioc_streamoff(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); @@ -798,7 +810,8 @@ static const struct v4l2_ctrl_ops s5p_mfc_dec_ctrl_ops = =3D { }; =20 /* Get compose information */ -static int vidioc_g_selection(struct file *file, void *priv, +static int vidioc_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); @@ -853,7 +866,8 @@ static int vidioc_g_selection(struct file *file, void *= priv, return 0; } =20 -static int vidioc_decoder_cmd(struct file *file, void *priv, +static int vidioc_decoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_decoder_cmd *cmd) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); diff --git a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_enc.c b/drivers= /media/platform/samsung/s5p-mfc/s5p_mfc_enc.c index 3f8701e5614f21a8289df02ba8d8b1b876acf81d..6d689bdf1a15c1eea44bac28218= 5d29b2e576a3b 100644 --- a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_enc.c +++ b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_enc.c @@ -1342,7 +1342,8 @@ static const struct s5p_mfc_codec_ops encoder_codec_o= ps =3D { }; =20 /* Query capabilities of the device */ -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct s5p_mfc_dev *dev =3D video_drvdata(file); @@ -1375,19 +1376,22 @@ static int vidioc_enum_fmt(struct file *file, struc= t v4l2_fmtdesc *f, return -EINVAL; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return vidioc_enum_fmt(file, f, false); } =20 -static int vidioc_enum_fmt_vid_out(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return vidioc_enum_fmt(file, f, true); } =20 -static int vidioc_g_fmt(struct file *file, void *priv, struct v4l2_format = *f) +static int vidioc_g_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct v4l2_pix_format_mplane *pix_fmt_mp =3D &f->fmt.pix_mp; struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); @@ -1428,7 +1432,8 @@ static int vidioc_g_fmt(struct file *file, void *priv= , struct v4l2_format *f) return 0; } =20 -static int vidioc_try_fmt(struct file *file, void *priv, struct v4l2_forma= t *f) +static int vidioc_try_fmt(struct file *file, struct video_device_state *st= ate, + struct v4l2_format *f) { struct s5p_mfc_dev *dev =3D video_drvdata(file); const struct s5p_mfc_fmt *fmt; @@ -1470,14 +1475,15 @@ static int vidioc_try_fmt(struct file *file, void *= priv, struct v4l2_format *f) return 0; } =20 -static int vidioc_s_fmt(struct file *file, void *priv, struct v4l2_format = *f) +static int vidioc_s_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); struct s5p_mfc_dev *dev =3D video_drvdata(file); struct v4l2_pix_format_mplane *pix_fmt_mp =3D &f->fmt.pix_mp; int ret =3D 0; =20 - ret =3D vidioc_try_fmt(file, priv, f); + ret =3D vidioc_try_fmt(file, state, f); if (ret) return ret; if (ctx->vq_src.streaming || ctx->vq_dst.streaming) { @@ -1527,7 +1533,8 @@ static int vidioc_s_fmt(struct file *file, void *priv= , struct v4l2_format *f) return ret; } =20 -static int vidioc_reqbufs(struct file *file, void *priv, +static int vidioc_reqbufs(struct file *file, + struct video_device_state *state, struct v4l2_requestbuffers *reqbufs) { struct s5p_mfc_dev *dev =3D video_drvdata(file); @@ -1598,7 +1605,8 @@ static int vidioc_reqbufs(struct file *file, void *pr= iv, return ret; } =20 -static int vidioc_querybuf(struct file *file, void *priv, +static int vidioc_querybuf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); @@ -1634,7 +1642,8 @@ static int vidioc_querybuf(struct file *file, void *p= riv, } =20 /* Queue a buffer */ -static int vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *= buf) +static int vidioc_qbuf(struct file *file, struct video_device_state *state, + struct v4l2_buffer *buf) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); =20 @@ -1655,7 +1664,8 @@ static int vidioc_qbuf(struct file *file, void *priv,= struct v4l2_buffer *buf) } =20 /* Dequeue a buffer */ -static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer = *buf) +static int vidioc_dqbuf(struct file *file, struct video_device_state *stat= e, + struct v4l2_buffer *buf) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); const struct v4l2_event ev =3D { @@ -1682,8 +1692,8 @@ static int vidioc_dqbuf(struct file *file, void *priv= , struct v4l2_buffer *buf) } =20 /* Export DMA buffer */ -static int vidioc_expbuf(struct file *file, void *priv, - struct v4l2_exportbuffer *eb) +static int vidioc_expbuf(struct file *file, + struct video_device_state *state, struct v4l2_exportbuffer *eb) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); =20 @@ -1695,7 +1705,8 @@ static int vidioc_expbuf(struct file *file, void *pri= v, } =20 /* Stream on */ -static int vidioc_streamon(struct file *file, void *priv, +static int vidioc_streamon(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); @@ -1708,7 +1719,8 @@ static int vidioc_streamon(struct file *file, void *p= riv, } =20 /* Stream off, which equals to a pause */ -static int vidioc_streamoff(struct file *file, void *priv, +static int vidioc_streamoff(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); @@ -2281,7 +2293,8 @@ static const struct v4l2_ctrl_ops s5p_mfc_enc_ctrl_op= s =3D { .g_volatile_ctrl =3D s5p_mfc_enc_g_v_ctrl, }; =20 -static int vidioc_s_parm(struct file *file, void *priv, +static int vidioc_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *a) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); @@ -2298,7 +2311,8 @@ static int vidioc_s_parm(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_g_parm(struct file *file, void *priv, +static int vidioc_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *a) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); @@ -2315,7 +2329,8 @@ static int vidioc_g_parm(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_encoder_cmd(struct file *file, void *priv, +static int vidioc_encoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_encoder_cmd *cmd) { struct s5p_mfc_ctx *ctx =3D file_to_ctx(file); diff --git a/drivers/media/platform/st/sti/bdisp/bdisp-v4l2.c b/drivers/med= ia/platform/st/sti/bdisp/bdisp-v4l2.c index 56169b70652d3aaf7c3c395a630a29023cbd9722..dc8305d5d445633dbd01d0a2d21= 4bbd30e804334 100644 --- a/drivers/media/platform/st/sti/bdisp/bdisp-v4l2.c +++ b/drivers/media/platform/st/sti/bdisp/bdisp-v4l2.c @@ -681,7 +681,8 @@ static const struct v4l2_file_operations bdisp_fops =3D= { .mmap =3D v4l2_m2m_fop_mmap, }; =20 -static int bdisp_querycap(struct file *file, void *fh, +static int bdisp_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct bdisp_ctx *ctx =3D file_to_ctx(file); @@ -694,7 +695,8 @@ static int bdisp_querycap(struct file *file, void *fh, return 0; } =20 -static int bdisp_enum_fmt(struct file *file, void *fh, struct v4l2_fmtdesc= *f) +static int bdisp_enum_fmt(struct file *file, struct video_device_state *st= ate, + struct v4l2_fmtdesc *f) { struct bdisp_ctx *ctx =3D file_to_ctx(file); const struct bdisp_fmt *fmt; @@ -714,7 +716,8 @@ static int bdisp_enum_fmt(struct file *file, void *fh, = struct v4l2_fmtdesc *f) return 0; } =20 -static int bdisp_g_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int bdisp_g_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct bdisp_ctx *ctx =3D file_to_ctx(file); struct v4l2_pix_format *pix; @@ -738,7 +741,8 @@ static int bdisp_g_fmt(struct file *file, void *fh, str= uct v4l2_format *f) return 0; } =20 -static int bdisp_try_fmt(struct file *file, void *fh, struct v4l2_format *= f) +static int bdisp_try_fmt(struct file *file, struct video_device_state *sta= te, + struct v4l2_format *f) { struct bdisp_ctx *ctx =3D file_to_ctx(file); struct v4l2_pix_format *pix =3D &f->fmt.pix; @@ -788,7 +792,8 @@ static int bdisp_try_fmt(struct file *file, void *fh, s= truct v4l2_format *f) return 0; } =20 -static int bdisp_s_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int bdisp_s_fmt(struct file *file, struct video_device_state *vstat= e, + struct v4l2_format *f) { struct bdisp_ctx *ctx =3D file_to_ctx(file); struct vb2_queue *vq; @@ -797,7 +802,7 @@ static int bdisp_s_fmt(struct file *file, void *fh, str= uct v4l2_format *f) int ret; u32 state; =20 - ret =3D bdisp_try_fmt(file, fh, f); + ret =3D bdisp_try_fmt(file, vstate, f); if (ret) { dev_err(ctx->bdisp_dev->dev, "Cannot set format\n"); return ret; @@ -840,7 +845,8 @@ static int bdisp_s_fmt(struct file *file, void *fh, str= uct v4l2_format *f) return 0; } =20 -static int bdisp_g_selection(struct file *file, void *fh, +static int bdisp_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct bdisp_ctx *ctx =3D file_to_ctx(file); @@ -918,7 +924,8 @@ static int is_rect_enclosed(struct v4l2_rect *a, struct= v4l2_rect *b) return 1; } =20 -static int bdisp_s_selection(struct file *file, void *fh, +static int bdisp_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct bdisp_ctx *ctx =3D file_to_ctx(file); @@ -997,7 +1004,8 @@ static int bdisp_s_selection(struct file *file, void *= fh, return 0; } =20 -static int bdisp_streamon(struct file *file, void *fh, enum v4l2_buf_type = type) +static int bdisp_streamon(struct file *file, struct video_device_state *st= ate, + enum v4l2_buf_type type) { struct bdisp_ctx *ctx =3D file_to_ctx(file); =20 diff --git a/drivers/media/platform/st/sti/delta/delta-v4l2.c b/drivers/med= ia/platform/st/sti/delta/delta-v4l2.c index 6c1a53c771f746813a6062cb3ffc139250ff7146..cb259f77404828cec2488951395= 6e7c21d967cc8 100644 --- a/drivers/media/platform/st/sti/delta/delta-v4l2.c +++ b/drivers/media/platform/st/sti/delta/delta-v4l2.c @@ -383,7 +383,8 @@ static int delta_open_decoder(struct delta_ctx *ctx, u3= 2 streamformat, * V4L2 ioctl operations */ =20 -static int delta_querycap(struct file *file, void *priv, +static int delta_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct delta_ctx *ctx =3D file_to_ctx(file); @@ -397,7 +398,8 @@ static int delta_querycap(struct file *file, void *priv, return 0; } =20 -static int delta_enum_fmt_stream(struct file *file, void *priv, +static int delta_enum_fmt_stream(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct delta_ctx *ctx =3D file_to_ctx(file); @@ -411,7 +413,8 @@ static int delta_enum_fmt_stream(struct file *file, voi= d *priv, return 0; } =20 -static int delta_enum_fmt_frame(struct file *file, void *priv, +static int delta_enum_fmt_frame(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct delta_ctx *ctx =3D file_to_ctx(file); @@ -425,7 +428,8 @@ static int delta_enum_fmt_frame(struct file *file, void= *priv, return 0; } =20 -static int delta_g_fmt_stream(struct file *file, void *fh, +static int delta_g_fmt_stream(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct delta_ctx *ctx =3D file_to_ctx(file); @@ -454,7 +458,9 @@ static int delta_g_fmt_stream(struct file *file, void *= fh, return 0; } =20 -static int delta_g_fmt_frame(struct file *file, void *fh, struct v4l2_form= at *f) +static int delta_g_fmt_frame(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct delta_ctx *ctx =3D file_to_ctx(file); struct delta_dev *delta =3D ctx->dev; @@ -492,7 +498,8 @@ static int delta_g_fmt_frame(struct file *file, void *f= h, struct v4l2_format *f) return 0; } =20 -static int delta_try_fmt_stream(struct file *file, void *priv, +static int delta_try_fmt_stream(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct delta_ctx *ctx =3D file_to_ctx(file); @@ -546,7 +553,8 @@ static int delta_try_fmt_stream(struct file *file, void= *priv, return 0; } =20 -static int delta_try_fmt_frame(struct file *file, void *priv, +static int delta_try_fmt_frame(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct delta_ctx *ctx =3D file_to_ctx(file); @@ -606,7 +614,8 @@ static int delta_try_fmt_frame(struct file *file, void = *priv, return 0; } =20 -static int delta_s_fmt_stream(struct file *file, void *fh, +static int delta_s_fmt_stream(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct delta_ctx *ctx =3D file_to_ctx(file); @@ -615,7 +624,7 @@ static int delta_s_fmt_stream(struct file *file, void *= fh, struct v4l2_pix_format *pix =3D &f->fmt.pix; int ret; =20 - ret =3D delta_try_fmt_stream(file, fh, f); + ret =3D delta_try_fmt_stream(file, state, f); if (ret) { dev_dbg(delta->dev, "%s V4L2 S_FMT (OUTPUT): unsupported format %4.4s\n", @@ -643,7 +652,9 @@ static int delta_s_fmt_stream(struct file *file, void *= fh, return 0; } =20 -static int delta_s_fmt_frame(struct file *file, void *fh, struct v4l2_form= at *f) +static int delta_s_fmt_frame(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct delta_ctx *ctx =3D file_to_ctx(file); struct delta_dev *delta =3D ctx->dev; @@ -668,7 +679,7 @@ static int delta_s_fmt_frame(struct file *file, void *f= h, struct v4l2_format *f) * pixel format & negotiate resolution boundaries * and alignment... */ - ret =3D delta_try_fmt_frame(file, fh, f); + ret =3D delta_try_fmt_frame(file, state, f); if (ret) { dev_dbg(delta->dev, "%s V4L2 S_FMT (CAPTURE): unsupported format %4.4s\n", @@ -722,7 +733,8 @@ static int delta_s_fmt_frame(struct file *file, void *f= h, struct v4l2_format *f) return 0; } =20 -static int delta_g_selection(struct file *file, void *fh, +static int delta_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct delta_ctx *ctx =3D file_to_ctx(file); @@ -791,7 +803,8 @@ static void delta_complete_eos(struct delta_ctx *ctx, dev_dbg(delta->dev, "%s EOS completed\n", ctx->name); } =20 -static int delta_try_decoder_cmd(struct file *file, void *fh, +static int delta_try_decoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_decoder_cmd *cmd) { if (cmd->cmd !=3D V4L2_DEC_CMD_STOP) @@ -867,13 +880,14 @@ static int delta_decoder_stop_cmd(struct delta_ctx *c= tx) return 0; } =20 -static int delta_decoder_cmd(struct file *file, void *fh, +static int delta_decoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_decoder_cmd *cmd) { struct delta_ctx *ctx =3D file_to_ctx(file); int ret =3D 0; =20 - ret =3D delta_try_decoder_cmd(file, fh, cmd); + ret =3D delta_try_decoder_cmd(file, state, cmd); if (ret) return ret; =20 diff --git a/drivers/media/platform/st/sti/hva/hva-v4l2.c b/drivers/media/p= latform/st/sti/hva/hva-v4l2.c index 3581b73a99b8ba5702e5d4d8d02cd5c832fa1555..28e5b22b77329ca1a277802bd29= 32b97f4fe149f 100644 --- a/drivers/media/platform/st/sti/hva/hva-v4l2.c +++ b/drivers/media/platform/st/sti/hva/hva-v4l2.c @@ -254,7 +254,8 @@ static void hva_dbg_summary(struct hva_ctx *ctx) * V4L2 ioctl operations */ =20 -static int hva_querycap(struct file *file, void *priv, +static int hva_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct hva_ctx *ctx =3D file_to_ctx(file); @@ -268,7 +269,8 @@ static int hva_querycap(struct file *file, void *priv, return 0; } =20 -static int hva_enum_fmt_stream(struct file *file, void *priv, +static int hva_enum_fmt_stream(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct hva_ctx *ctx =3D file_to_ctx(file); @@ -282,7 +284,8 @@ static int hva_enum_fmt_stream(struct file *file, void = *priv, return 0; } =20 -static int hva_enum_fmt_frame(struct file *file, void *priv, +static int hva_enum_fmt_frame(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct hva_ctx *ctx =3D file_to_ctx(file); @@ -296,7 +299,9 @@ static int hva_enum_fmt_frame(struct file *file, void *= priv, return 0; } =20 -static int hva_g_fmt_stream(struct file *file, void *fh, struct v4l2_forma= t *f) +static int hva_g_fmt_stream(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct hva_ctx *ctx =3D file_to_ctx(file); struct hva_streaminfo *streaminfo =3D &ctx->streaminfo; @@ -315,7 +320,9 @@ static int hva_g_fmt_stream(struct file *file, void *fh= , struct v4l2_format *f) return 0; } =20 -static int hva_g_fmt_frame(struct file *file, void *fh, struct v4l2_format= *f) +static int hva_g_fmt_frame(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct hva_ctx *ctx =3D file_to_ctx(file); struct hva_frameinfo *frameinfo =3D &ctx->frameinfo; @@ -335,7 +342,8 @@ static int hva_g_fmt_frame(struct file *file, void *fh,= struct v4l2_format *f) return 0; } =20 -static int hva_try_fmt_stream(struct file *file, void *priv, +static int hva_try_fmt_stream(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct hva_ctx *ctx =3D file_to_ctx(file); @@ -399,7 +407,8 @@ static int hva_try_fmt_stream(struct file *file, void *= priv, return 0; } =20 -static int hva_try_fmt_frame(struct file *file, void *priv, +static int hva_try_fmt_frame(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct hva_ctx *ctx =3D file_to_ctx(file); @@ -450,14 +459,16 @@ static int hva_try_fmt_frame(struct file *file, void = *priv, return 0; } =20 -static int hva_s_fmt_stream(struct file *file, void *fh, struct v4l2_forma= t *f) +static int hva_s_fmt_stream(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct hva_ctx *ctx =3D file_to_ctx(file); struct device *dev =3D ctx_to_dev(ctx); struct vb2_queue *vq; int ret; =20 - ret =3D hva_try_fmt_stream(file, fh, f); + ret =3D hva_try_fmt_stream(file, state, f); if (ret) { dev_dbg(dev, "%s V4L2 S_FMT (CAPTURE): unsupported format %.4s\n", ctx->name, (char *)&f->fmt.pix.pixelformat); @@ -480,7 +491,9 @@ static int hva_s_fmt_stream(struct file *file, void *fh= , struct v4l2_format *f) return 0; } =20 -static int hva_s_fmt_frame(struct file *file, void *fh, struct v4l2_format= *f) +static int hva_s_fmt_frame(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct hva_ctx *ctx =3D file_to_ctx(file); struct device *dev =3D ctx_to_dev(ctx); @@ -488,7 +501,7 @@ static int hva_s_fmt_frame(struct file *file, void *fh,= struct v4l2_format *f) struct vb2_queue *vq; int ret; =20 - ret =3D hva_try_fmt_frame(file, fh, f); + ret =3D hva_try_fmt_frame(file, state, f); if (ret) { dev_dbg(dev, "%s V4L2 S_FMT (OUTPUT): unsupported format %.4s\n", ctx->name, (char *)&pix->pixelformat); @@ -518,7 +531,8 @@ static int hva_s_fmt_frame(struct file *file, void *fh,= struct v4l2_format *f) return 0; } =20 -static int hva_g_parm(struct file *file, void *fh, struct v4l2_streamparm = *sp) +static int hva_g_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *sp) { struct hva_ctx *ctx =3D file_to_ctx(file); struct v4l2_fract *time_per_frame =3D &ctx->ctrls.time_per_frame; @@ -534,7 +548,8 @@ static int hva_g_parm(struct file *file, void *fh, stru= ct v4l2_streamparm *sp) return 0; } =20 -static int hva_s_parm(struct file *file, void *fh, struct v4l2_streamparm = *sp) +static int hva_s_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *sp) { struct hva_ctx *ctx =3D file_to_ctx(file); struct v4l2_fract *time_per_frame =3D &ctx->ctrls.time_per_frame; @@ -544,7 +559,7 @@ static int hva_s_parm(struct file *file, void *fh, stru= ct v4l2_streamparm *sp) =20 if (!sp->parm.output.timeperframe.numerator || !sp->parm.output.timeperframe.denominator) - return hva_g_parm(file, fh, sp); + return hva_g_parm(file, state, sp); =20 sp->parm.output.capability =3D V4L2_CAP_TIMEPERFRAME; time_per_frame->numerator =3D sp->parm.output.timeperframe.numerator; @@ -554,7 +569,8 @@ static int hva_s_parm(struct file *file, void *fh, stru= ct v4l2_streamparm *sp) return 0; } =20 -static int hva_qbuf(struct file *file, void *priv, struct v4l2_buffer *buf) +static int hva_qbuf(struct file *file, struct video_device_state *state, + struct v4l2_buffer *buf) { struct hva_ctx *ctx =3D file_to_ctx(file); struct device *dev =3D ctx_to_dev(ctx); diff --git a/drivers/media/platform/st/stm32/dma2d/dma2d.c b/drivers/media/= platform/st/stm32/dma2d/dma2d.c index 468c247ba3282c6f4d092985465cd3d0907b1c07..8bfe415eec7e06bb9ce680d6cd0= 732ba7046fd2b 100644 --- a/drivers/media/platform/st/stm32/dma2d/dma2d.c +++ b/drivers/media/platform/st/stm32/dma2d/dma2d.c @@ -333,7 +333,8 @@ static int dma2d_release(struct file *file) return 0; } =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, DMA2D_NAME, sizeof(cap->driver)); @@ -343,7 +344,9 @@ static int vidioc_querycap(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_enum_fmt(struct file *file, void *priv, struct v4l2_fmtd= esc *f) +static int vidioc_enum_fmt(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *f) { if (f->index >=3D NUM_FORMATS) return -EINVAL; @@ -352,7 +355,8 @@ static int vidioc_enum_fmt(struct file *file, void *pri= v, struct v4l2_fmtdesc *f return 0; } =20 -static int vidioc_g_fmt(struct file *file, void *priv, struct v4l2_format = *f) +static int vidioc_g_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct dma2d_ctx *ctx =3D file2ctx(file); struct vb2_queue *vq; @@ -377,7 +381,8 @@ static int vidioc_g_fmt(struct file *file, void *priv, = struct v4l2_format *f) return 0; } =20 -static int vidioc_try_fmt(struct file *file, void *priv, struct v4l2_forma= t *f) +static int vidioc_try_fmt(struct file *file, struct video_device_state *st= ate, + struct v4l2_format *f) { struct dma2d_ctx *ctx =3D file2ctx(file); struct dma2d_fmt *fmt; @@ -420,7 +425,8 @@ static int vidioc_try_fmt(struct file *file, void *priv= , struct v4l2_format *f) return 0; } =20 -static int vidioc_s_fmt(struct file *file, void *priv, struct v4l2_format = *f) +static int vidioc_s_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct dma2d_ctx *ctx =3D file2ctx(file); struct vb2_queue *vq; @@ -431,7 +437,7 @@ static int vidioc_s_fmt(struct file *file, void *priv, = struct v4l2_format *f) /* Adjust all values accordingly to the hardware capabilities * and chosen format. */ - ret =3D vidioc_try_fmt(file, priv, f); + ret =3D vidioc_try_fmt(file, state, f); if (ret) return ret; =20 diff --git a/drivers/media/platform/st/stm32/stm32-dcmi.c b/drivers/media/p= latform/st/stm32/stm32-dcmi.c index 13762861b76942530ed5f821c30f77c921047f9b..a167f96bf5d0bc6fb16d2a5ccf1= 7f85b3f005696 100644 --- a/drivers/media/platform/st/stm32/stm32-dcmi.c +++ b/drivers/media/platform/st/stm32/stm32-dcmi.c @@ -900,7 +900,8 @@ static const struct vb2_ops dcmi_video_qops =3D { .stop_streaming =3D dcmi_stop_streaming, }; =20 -static int dcmi_g_fmt_vid_cap(struct file *file, void *priv, +static int dcmi_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct stm32_dcmi *dcmi =3D video_drvdata(file); @@ -1086,7 +1087,8 @@ static int dcmi_set_fmt(struct stm32_dcmi *dcmi, stru= ct v4l2_format *f) return 0; } =20 -static int dcmi_s_fmt_vid_cap(struct file *file, void *priv, +static int dcmi_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct stm32_dcmi *dcmi =3D video_drvdata(file); @@ -1097,7 +1099,8 @@ static int dcmi_s_fmt_vid_cap(struct file *file, void= *priv, return dcmi_set_fmt(dcmi, f); } =20 -static int dcmi_try_fmt_vid_cap(struct file *file, void *priv, +static int dcmi_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct stm32_dcmi *dcmi =3D video_drvdata(file); @@ -1105,7 +1108,8 @@ static int dcmi_try_fmt_vid_cap(struct file *file, vo= id *priv, return dcmi_try_fmt(dcmi, f, NULL, NULL); } =20 -static int dcmi_enum_fmt_vid_cap(struct file *file, void *priv, +static int dcmi_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct stm32_dcmi *dcmi =3D video_drvdata(file); @@ -1224,7 +1228,8 @@ static int dcmi_get_sensor_bounds(struct stm32_dcmi *= dcmi, return 0; } =20 -static int dcmi_g_selection(struct file *file, void *fh, +static int dcmi_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct stm32_dcmi *dcmi =3D video_drvdata(file); @@ -1254,7 +1259,8 @@ static int dcmi_g_selection(struct file *file, void *= fh, return 0; } =20 -static int dcmi_s_selection(struct file *file, void *priv, +static int dcmi_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct stm32_dcmi *dcmi =3D video_drvdata(file); @@ -1305,7 +1311,8 @@ static int dcmi_s_selection(struct file *file, void *= priv, return 0; } =20 -static int dcmi_querycap(struct file *file, void *priv, +static int dcmi_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, DRV_NAME, sizeof(cap->driver)); @@ -1315,7 +1322,8 @@ static int dcmi_querycap(struct file *file, void *pri= v, return 0; } =20 -static int dcmi_enum_input(struct file *file, void *priv, +static int dcmi_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { if (i->index !=3D 0) @@ -1326,20 +1334,23 @@ static int dcmi_enum_input(struct file *file, void = *priv, return 0; } =20 -static int dcmi_g_input(struct file *file, void *priv, unsigned int *i) +static int dcmi_g_input(struct file *file, struct video_device_state *stat= e, + unsigned int *i) { *i =3D 0; return 0; } =20 -static int dcmi_s_input(struct file *file, void *priv, unsigned int i) +static int dcmi_s_input(struct file *file, struct video_device_state *stat= e, + unsigned int i) { if (i > 0) return -EINVAL; return 0; } =20 -static int dcmi_enum_framesizes(struct file *file, void *fh, +static int dcmi_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct stm32_dcmi *dcmi =3D video_drvdata(file); @@ -1368,7 +1379,8 @@ static int dcmi_enum_framesizes(struct file *file, vo= id *fh, return 0; } =20 -static int dcmi_g_parm(struct file *file, void *priv, +static int dcmi_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *p) { struct stm32_dcmi *dcmi =3D video_drvdata(file); @@ -1376,7 +1388,8 @@ static int dcmi_g_parm(struct file *file, void *priv, return v4l2_g_parm_cap(video_devdata(file), dcmi->source, p); } =20 -static int dcmi_s_parm(struct file *file, void *priv, +static int dcmi_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *p) { struct stm32_dcmi *dcmi =3D video_drvdata(file); @@ -1384,7 +1397,8 @@ static int dcmi_s_parm(struct file *file, void *priv, return v4l2_s_parm_cap(video_devdata(file), dcmi->source, p); } =20 -static int dcmi_enum_frameintervals(struct file *file, void *fh, +static int dcmi_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *fival) { struct stm32_dcmi *dcmi =3D video_drvdata(file); diff --git a/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c = b/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c index 1c1b6b48918ee26f245d4cf99086473c44e74123..1d6478e9123a21f530b90c3ba31= a630717020ebb 100644 --- a/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c +++ b/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c @@ -172,7 +172,8 @@ static const struct v4l2_pix_format fmt_default =3D { .xfer_func =3D DCMIPP_XFER_FUNC_DEFAULT, }; =20 -static int dcmipp_bytecap_querycap(struct file *file, void *priv, +static int dcmipp_bytecap_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, DCMIPP_PDEV_NAME, sizeof(cap->driver)); @@ -181,7 +182,8 @@ static int dcmipp_bytecap_querycap(struct file *file, v= oid *priv, return 0; } =20 -static int dcmipp_bytecap_g_fmt_vid_cap(struct file *file, void *priv, +static int dcmipp_bytecap_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct dcmipp_bytecap_device *vcap =3D video_drvdata(file); @@ -191,7 +193,8 @@ static int dcmipp_bytecap_g_fmt_vid_cap(struct file *fi= le, void *priv, return 0; } =20 -static int dcmipp_bytecap_try_fmt_vid_cap(struct file *file, void *priv, +static int dcmipp_bytecap_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct dcmipp_bytecap_device *vcap =3D video_drvdata(file); @@ -231,7 +234,8 @@ static int dcmipp_bytecap_try_fmt_vid_cap(struct file *= file, void *priv, return 0; } =20 -static int dcmipp_bytecap_s_fmt_vid_cap(struct file *file, void *priv, +static int dcmipp_bytecap_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct dcmipp_bytecap_device *vcap =3D video_drvdata(file); @@ -241,7 +245,7 @@ static int dcmipp_bytecap_s_fmt_vid_cap(struct file *fi= le, void *priv, if (vb2_is_busy(&vcap->queue)) return -EBUSY; =20 - ret =3D dcmipp_bytecap_try_fmt_vid_cap(file, priv, f); + ret =3D dcmipp_bytecap_try_fmt_vid_cap(file, state, f); if (ret) return ret; =20 @@ -263,7 +267,8 @@ static int dcmipp_bytecap_s_fmt_vid_cap(struct file *fi= le, void *priv, return 0; } =20 -static int dcmipp_bytecap_enum_fmt_vid_cap(struct file *file, void *priv, +static int dcmipp_bytecap_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { const struct dcmipp_bytecap_pix_map *vpix; @@ -301,7 +306,8 @@ static int dcmipp_bytecap_enum_fmt_vid_cap(struct file = *file, void *priv, return 0; } =20 -static int dcmipp_bytecap_enum_framesizes(struct file *file, void *fh, +static int dcmipp_bytecap_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { const struct dcmipp_bytecap_pix_map *vpix; diff --git a/drivers/media/platform/sunxi/sun4i-csi/sun4i_v4l2.c b/drivers/= media/platform/sunxi/sun4i-csi/sun4i_v4l2.c index 744197b0fccb03d7e1ad634f00ff1566d57e735c..881345ddb4cb6d1c865698f4fc3= 3b2968d86c297 100644 --- a/drivers/media/platform/sunxi/sun4i-csi/sun4i_v4l2.c +++ b/drivers/media/platform/sunxi/sun4i-csi/sun4i_v4l2.c @@ -50,7 +50,8 @@ const struct sun4i_csi_format *sun4i_csi_find_format(cons= t u32 *fourcc, return NULL; } =20 -static int sun4i_csi_querycap(struct file *file, void *priv, +static int sun4i_csi_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, KBUILD_MODNAME, sizeof(cap->driver)); @@ -59,7 +60,8 @@ static int sun4i_csi_querycap(struct file *file, void *pr= iv, return 0; } =20 -static int sun4i_csi_enum_input(struct file *file, void *priv, +static int sun4i_csi_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { if (inp->index !=3D 0) @@ -71,7 +73,8 @@ static int sun4i_csi_enum_input(struct file *file, void *= priv, return 0; } =20 -static int sun4i_csi_g_input(struct file *file, void *fh, +static int sun4i_csi_g_input(struct file *file, + struct video_device_state *state, unsigned int *i) { *i =3D 0; @@ -79,8 +82,8 @@ static int sun4i_csi_g_input(struct file *file, void *fh, return 0; } =20 -static int sun4i_csi_s_input(struct file *file, void *fh, - unsigned int i) +static int sun4i_csi_s_input(struct file *file, + struct video_device_state *state, unsigned int i) { if (i !=3D 0) return -EINVAL; @@ -128,7 +131,8 @@ static void _sun4i_csi_try_fmt(struct sun4i_csi *csi, } } =20 -static int sun4i_csi_try_fmt_vid_cap(struct file *file, void *priv, +static int sun4i_csi_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct sun4i_csi *csi =3D video_drvdata(file); @@ -138,7 +142,8 @@ static int sun4i_csi_try_fmt_vid_cap(struct file *file,= void *priv, return 0; } =20 -static int sun4i_csi_s_fmt_vid_cap(struct file *file, void *priv, +static int sun4i_csi_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct sun4i_csi *csi =3D video_drvdata(file); @@ -149,7 +154,8 @@ static int sun4i_csi_s_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int sun4i_csi_g_fmt_vid_cap(struct file *file, void *priv, +static int sun4i_csi_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct sun4i_csi *csi =3D video_drvdata(file); @@ -159,7 +165,8 @@ static int sun4i_csi_g_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int sun4i_csi_enum_fmt_vid_cap(struct file *file, void *priv, +static int sun4i_csi_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index >=3D ARRAY_SIZE(sun4i_csi_formats)) diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c b/d= rivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c index 65879f4802c00cd1b65f02b6bf00f27a72d674ce..4bd9f9aa4349f98f1e56561a066= cf3fd7dff129c 100644 --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c @@ -711,7 +711,8 @@ static void sun6i_csi_capture_format_prepare(struct v4l= 2_format *format) pix_format->xfer_func =3D V4L2_XFER_FUNC_DEFAULT; } =20 -static int sun6i_csi_capture_querycap(struct file *file, void *priv, +static int sun6i_csi_capture_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *capability) { struct sun6i_csi_device *csi_dev =3D video_drvdata(file); @@ -725,7 +726,8 @@ static int sun6i_csi_capture_querycap(struct file *file= , void *priv, return 0; } =20 -static int sun6i_csi_capture_enum_fmt(struct file *file, void *priv, +static int sun6i_csi_capture_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *fmtdesc) { u32 index =3D fmtdesc->index; @@ -738,7 +740,8 @@ static int sun6i_csi_capture_enum_fmt(struct file *file= , void *priv, return 0; } =20 -static int sun6i_csi_capture_g_fmt(struct file *file, void *priv, +static int sun6i_csi_capture_g_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *format) { struct sun6i_csi_device *csi_dev =3D video_drvdata(file); @@ -748,7 +751,8 @@ static int sun6i_csi_capture_g_fmt(struct file *file, v= oid *priv, return 0; } =20 -static int sun6i_csi_capture_s_fmt(struct file *file, void *priv, +static int sun6i_csi_capture_s_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *format) { struct sun6i_csi_device *csi_dev =3D video_drvdata(file); @@ -764,7 +768,8 @@ static int sun6i_csi_capture_s_fmt(struct file *file, v= oid *priv, return 0; } =20 -static int sun6i_csi_capture_try_fmt(struct file *file, void *priv, +static int sun6i_csi_capture_try_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *format) { sun6i_csi_capture_format_prepare(format); @@ -772,7 +777,8 @@ static int sun6i_csi_capture_try_fmt(struct file *file,= void *priv, return 0; } =20 -static int sun6i_csi_capture_enum_input(struct file *file, void *priv, +static int sun6i_csi_capture_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *input) { if (input->index !=3D 0) @@ -784,7 +790,8 @@ static int sun6i_csi_capture_enum_input(struct file *fi= le, void *priv, return 0; } =20 -static int sun6i_csi_capture_g_input(struct file *file, void *priv, +static int sun6i_csi_capture_g_input(struct file *file, + struct video_device_state *state, unsigned int *index) { *index =3D 0; @@ -792,7 +799,8 @@ static int sun6i_csi_capture_g_input(struct file *file,= void *priv, return 0; } =20 -static int sun6i_csi_capture_s_input(struct file *file, void *priv, +static int sun6i_csi_capture_s_input(struct file *file, + struct video_device_state *state, unsigned int index) { if (index !=3D 0) diff --git a/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c b/drivers/med= ia/platform/sunxi/sun8i-di/sun8i-di.c index eb519afb30ca10c6f4370626d0dce9e7183b28e5..ff1cf37395b9de6ef0973bd0372= eb818eaf11692 100644 --- a/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c +++ b/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c @@ -347,7 +347,8 @@ static void deinterlace_prepare_format(struct v4l2_pix_= format *pix_fmt) pix_fmt->sizeimage =3D sizeimage; } =20 -static int deinterlace_querycap(struct file *file, void *priv, +static int deinterlace_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, DEINTERLACE_NAME, sizeof(cap->driver)); @@ -358,7 +359,8 @@ static int deinterlace_querycap(struct file *file, void= *priv, return 0; } =20 -static int deinterlace_enum_fmt(struct file *file, void *priv, +static int deinterlace_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index < ARRAY_SIZE(deinterlace_formats)) { @@ -370,7 +372,8 @@ static int deinterlace_enum_fmt(struct file *file, void= *priv, return -EINVAL; } =20 -static int deinterlace_enum_framesizes(struct file *file, void *priv, +static int deinterlace_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { if (fsize->index !=3D 0) @@ -390,7 +393,8 @@ static int deinterlace_enum_framesizes(struct file *fil= e, void *priv, return 0; } =20 -static int deinterlace_g_fmt_vid_cap(struct file *file, void *priv, +static int deinterlace_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct deinterlace_ctx *ctx =3D deinterlace_file2ctx(file); @@ -400,7 +404,8 @@ static int deinterlace_g_fmt_vid_cap(struct file *file,= void *priv, return 0; } =20 -static int deinterlace_g_fmt_vid_out(struct file *file, void *priv, +static int deinterlace_g_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct deinterlace_ctx *ctx =3D deinterlace_file2ctx(file); @@ -410,7 +415,8 @@ static int deinterlace_g_fmt_vid_out(struct file *file,= void *priv, return 0; } =20 -static int deinterlace_try_fmt_vid_cap(struct file *file, void *priv, +static int deinterlace_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { if (!deinterlace_check_format(f->fmt.pix.pixelformat)) @@ -424,7 +430,8 @@ static int deinterlace_try_fmt_vid_cap(struct file *fil= e, void *priv, return 0; } =20 -static int deinterlace_try_fmt_vid_out(struct file *file, void *priv, +static int deinterlace_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { if (!deinterlace_check_format(f->fmt.pix.pixelformat)) @@ -440,14 +447,15 @@ static int deinterlace_try_fmt_vid_out(struct file *f= ile, void *priv, return 0; } =20 -static int deinterlace_s_fmt_vid_cap(struct file *file, void *priv, +static int deinterlace_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct deinterlace_ctx *ctx =3D deinterlace_file2ctx(file); struct vb2_queue *vq; int ret; =20 - ret =3D deinterlace_try_fmt_vid_cap(file, priv, f); + ret =3D deinterlace_try_fmt_vid_cap(file, state, f); if (ret) return ret; =20 @@ -460,14 +468,15 @@ static int deinterlace_s_fmt_vid_cap(struct file *fil= e, void *priv, return 0; } =20 -static int deinterlace_s_fmt_vid_out(struct file *file, void *priv, +static int deinterlace_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct deinterlace_ctx *ctx =3D deinterlace_file2ctx(file); struct vb2_queue *vq; int ret; =20 - ret =3D deinterlace_try_fmt_vid_out(file, priv, f); + ret =3D deinterlace_try_fmt_vid_out(file, state, f); if (ret) return ret; =20 diff --git a/drivers/media/platform/sunxi/sun8i-rotate/sun8i_rotate.c b/dri= vers/media/platform/sunxi/sun8i-rotate/sun8i_rotate.c index 89992feaab6082b438eec189c0de93568d09f911..41cf132993b9da9ca24061f99d5= ed8b38c548b8f 100644 --- a/drivers/media/platform/sunxi/sun8i-rotate/sun8i_rotate.c +++ b/drivers/media/platform/sunxi/sun8i-rotate/sun8i_rotate.c @@ -209,7 +209,8 @@ static void rotate_prepare_format(struct v4l2_pix_forma= t *pix_fmt) pix_fmt->sizeimage =3D sizeimage; } =20 -static int rotate_querycap(struct file *file, void *priv, +static int rotate_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, ROTATE_NAME, sizeof(cap->driver)); @@ -220,19 +221,22 @@ static int rotate_querycap(struct file *file, void *p= riv, return 0; } =20 -static int rotate_enum_fmt_vid_cap(struct file *file, void *priv, +static int rotate_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return rotate_enum_fmt(f, true); } =20 -static int rotate_enum_fmt_vid_out(struct file *file, void *priv, +static int rotate_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return rotate_enum_fmt(f, false); } =20 -static int rotate_enum_framesizes(struct file *file, void *priv, +static int rotate_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { const struct rotate_format *fmt; @@ -285,7 +289,8 @@ static int rotate_set_cap_format(struct rotate_ctx *ctx, return 0; } =20 -static int rotate_g_fmt_vid_cap(struct file *file, void *priv, +static int rotate_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rotate_ctx *ctx =3D rotate_file2ctx(file); @@ -295,7 +300,8 @@ static int rotate_g_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int rotate_g_fmt_vid_out(struct file *file, void *priv, +static int rotate_g_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rotate_ctx *ctx =3D rotate_file2ctx(file); @@ -305,7 +311,8 @@ static int rotate_g_fmt_vid_out(struct file *file, void= *priv, return 0; } =20 -static int rotate_try_fmt_vid_cap(struct file *file, void *priv, +static int rotate_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rotate_ctx *ctx =3D rotate_file2ctx(file); @@ -313,7 +320,8 @@ static int rotate_try_fmt_vid_cap(struct file *file, vo= id *priv, return rotate_set_cap_format(ctx, &f->fmt.pix, ctx->rotate); } =20 -static int rotate_try_fmt_vid_out(struct file *file, void *priv, +static int rotate_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { if (!rotate_find_format(f->fmt.pix.pixelformat)) @@ -336,14 +344,15 @@ static int rotate_try_fmt_vid_out(struct file *file, = void *priv, return 0; } =20 -static int rotate_s_fmt_vid_cap(struct file *file, void *priv, +static int rotate_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rotate_ctx *ctx =3D rotate_file2ctx(file); struct vb2_queue *vq; int ret; =20 - ret =3D rotate_try_fmt_vid_cap(file, priv, f); + ret =3D rotate_try_fmt_vid_cap(file, state, f); if (ret) return ret; =20 @@ -356,14 +365,15 @@ static int rotate_s_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int rotate_s_fmt_vid_out(struct file *file, void *priv, +static int rotate_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct rotate_ctx *ctx =3D rotate_file2ctx(file); struct vb2_queue *vq; int ret; =20 - ret =3D rotate_try_fmt_vid_out(file, priv, f); + ret =3D rotate_try_fmt_vid_out(file, state, f); if (ret) return ret; =20 diff --git a/drivers/media/platform/synopsys/hdmirx/snps_hdmirx.c b/drivers= /media/platform/synopsys/hdmirx/snps_hdmirx.c index b7d278b3889f28177b6efc67b01f37cc69aae679..24c47930b5518b657679485d4c9= 4fc750a7c592c 100644 --- a/drivers/media/platform/synopsys/hdmirx/snps_hdmirx.c +++ b/drivers/media/platform/synopsys/hdmirx/snps_hdmirx.c @@ -459,7 +459,8 @@ static bool port_no_link(struct snps_hdmirx_dev *hdmirx= _dev) return !tx_5v_power_present(hdmirx_dev); } =20 -static int hdmirx_query_dv_timings(struct file *file, void *priv, +static int hdmirx_query_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct hdmirx_stream *stream =3D video_drvdata(file); @@ -646,7 +647,9 @@ static void hdmirx_plugout(struct snps_hdmirx_dev *hdmi= rx_dev) hdmirx_dev->plugged =3D false; } =20 -static int hdmirx_set_edid(struct file *file, void *fh, struct v4l2_edid *= edid) +static int hdmirx_set_edid(struct file *file, + struct video_device_state *state, + struct v4l2_edid *edid) { struct hdmirx_stream *stream =3D video_drvdata(file); struct snps_hdmirx_dev *hdmirx_dev =3D stream->hdmirx_dev; @@ -695,7 +698,9 @@ static int hdmirx_set_edid(struct file *file, void *fh,= struct v4l2_edid *edid) return 0; } =20 -static int hdmirx_get_edid(struct file *file, void *fh, struct v4l2_edid *= edid) +static int hdmirx_get_edid(struct file *file, + struct video_device_state *state, + struct v4l2_edid *edid) { struct hdmirx_stream *stream =3D video_drvdata(file); struct snps_hdmirx_dev *hdmirx_dev =3D stream->hdmirx_dev; @@ -730,7 +735,8 @@ static int hdmirx_get_edid(struct file *file, void *fh,= struct v4l2_edid *edid) return 0; } =20 -static int hdmirx_g_parm(struct file *file, void *priv, +static int hdmirx_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct hdmirx_stream *stream =3D video_drvdata(file); @@ -744,14 +750,16 @@ static int hdmirx_g_parm(struct file *file, void *pri= v, return 0; } =20 -static int hdmirx_dv_timings_cap(struct file *file, void *fh, +static int hdmirx_dv_timings_cap(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings_cap *cap) { *cap =3D hdmirx_timings_cap; return 0; } =20 -static int hdmirx_enum_dv_timings(struct file *file, void *priv, +static int hdmirx_enum_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_enum_dv_timings *timings) { return v4l2_enum_dv_timings_cap(timings, &hdmirx_timings_cap, NULL, NULL); @@ -1154,7 +1162,8 @@ static void hdmirx_submodule_init(struct snps_hdmirx_= dev *hdmirx_dev) hdmirx_controller_init(hdmirx_dev); } =20 -static int hdmirx_enum_input(struct file *file, void *priv, +static int hdmirx_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *input) { if (input->index > 0) @@ -1168,13 +1177,15 @@ static int hdmirx_enum_input(struct file *file, voi= d *priv, return 0; } =20 -static int hdmirx_get_input(struct file *file, void *priv, unsigned int *i) +static int hdmirx_get_input(struct file *file, + struct video_device_state *state, unsigned int *i) { *i =3D 0; return 0; } =20 -static int hdmirx_set_input(struct file *file, void *priv, unsigned int i) +static int hdmirx_set_input(struct file *file, + struct video_device_state *state, unsigned int i) { if (i) return -EINVAL; @@ -1278,7 +1289,8 @@ static void hdmirx_set_fmt(struct hdmirx_stream *stre= am, } } =20 -static int hdmirx_enum_fmt_vid_cap_mplane(struct file *file, void *priv, +static int hdmirx_enum_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct hdmirx_stream *stream =3D video_drvdata(file); @@ -1293,7 +1305,8 @@ static int hdmirx_enum_fmt_vid_cap_mplane(struct file= *file, void *priv, } =20 static int hdmirx_s_fmt_vid_cap_mplane(struct file *file, - void *priv, struct v4l2_format *f) + struct video_device_state *state, + struct v4l2_format *f) { struct hdmirx_stream *stream =3D video_drvdata(file); struct snps_hdmirx_dev *hdmirx_dev =3D stream->hdmirx_dev; @@ -1309,7 +1322,8 @@ static int hdmirx_s_fmt_vid_cap_mplane(struct file *f= ile, return 0; } =20 -static int hdmirx_g_fmt_vid_cap_mplane(struct file *file, void *fh, +static int hdmirx_g_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct hdmirx_stream *stream =3D video_drvdata(file); @@ -1323,7 +1337,8 @@ static int hdmirx_g_fmt_vid_cap_mplane(struct file *f= ile, void *fh, return 0; } =20 -static int hdmirx_g_dv_timings(struct file *file, void *priv, +static int hdmirx_g_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct hdmirx_stream *stream =3D video_drvdata(file); @@ -1339,7 +1354,8 @@ static int hdmirx_g_dv_timings(struct file *file, voi= d *priv, return 0; } =20 -static int hdmirx_s_dv_timings(struct file *file, void *priv, +static int hdmirx_s_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct hdmirx_stream *stream =3D video_drvdata(file); @@ -1381,7 +1397,8 @@ static int hdmirx_s_dv_timings(struct file *file, voi= d *priv, return 0; } =20 -static int hdmirx_querycap(struct file *file, void *priv, +static int hdmirx_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct hdmirx_stream *stream =3D video_drvdata(file); diff --git a/drivers/media/platform/ti/am437x/am437x-vpfe.c b/drivers/media= /platform/ti/am437x/am437x-vpfe.c index 1ca559df7e590063ca10752ae9be524edbbb14a6..c56ed2435731a4498be8f87a198= 2f4891f71a679 100644 --- a/drivers/media/platform/ti/am437x/am437x-vpfe.c +++ b/drivers/media/platform/ti/am437x/am437x-vpfe.c @@ -1268,7 +1268,8 @@ static inline void vpfe_attach_irq(struct vpfe_device= *vpfe) vpfe_reg_write(&vpfe->ccdc, intr, VPFE_IRQ_EN_SET); } =20 -static int vpfe_querycap(struct file *file, void *priv, +static int vpfe_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, VPFE_MODULE_NAME, sizeof(cap->driver)); @@ -1350,7 +1351,8 @@ static int vpfe_calc_format_size(struct vpfe_device *= vpfe, return 0; } =20 -static int vpfe_g_fmt(struct file *file, void *priv, +static int vpfe_g_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct vpfe_device *vpfe =3D video_drvdata(file); @@ -1360,7 +1362,8 @@ static int vpfe_g_fmt(struct file *file, void *priv, return 0; } =20 -static int vpfe_enum_fmt(struct file *file, void *priv, +static int vpfe_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct vpfe_device *vpfe =3D video_drvdata(file); @@ -1384,7 +1387,8 @@ static int vpfe_enum_fmt(struct file *file, void *pr= iv, return 0; } =20 -static int vpfe_try_fmt(struct file *file, void *priv, +static int vpfe_try_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vpfe_device *vpfe =3D video_drvdata(file); @@ -1444,7 +1448,8 @@ static int vpfe_try_fmt(struct file *file, void *priv, return vpfe_calc_format_size(vpfe, fmt, f); } =20 -static int vpfe_s_fmt(struct file *file, void *priv, +static int vpfe_s_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct vpfe_device *vpfe =3D video_drvdata(file); @@ -1458,7 +1463,7 @@ static int vpfe_s_fmt(struct file *file, void *priv, return -EBUSY; } =20 - ret =3D vpfe_try_fmt(file, priv, fmt); + ret =3D vpfe_try_fmt(file, state, fmt); if (ret < 0) return ret; =20 @@ -1493,7 +1498,8 @@ static int vpfe_s_fmt(struct file *file, void *priv, return vpfe_config_ccdc_image_format(vpfe); } =20 -static int vpfe_enum_size(struct file *file, void *priv, +static int vpfe_enum_size(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct vpfe_device *vpfe =3D video_drvdata(file); @@ -1589,7 +1595,8 @@ static int vpfe_get_app_input_index(struct vpfe_devic= e *vpfe, return -EINVAL; } =20 -static int vpfe_enum_input(struct file *file, void *priv, +static int vpfe_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { struct vpfe_device *vpfe =3D video_drvdata(file); @@ -1608,7 +1615,8 @@ static int vpfe_enum_input(struct file *file, void *p= riv, return 0; } =20 -static int vpfe_g_input(struct file *file, void *priv, unsigned int *index) +static int vpfe_g_input(struct file *file, struct video_device_state *stat= e, + unsigned int *index) { struct vpfe_device *vpfe =3D video_drvdata(file); =20 @@ -1675,14 +1683,16 @@ static int vpfe_set_input(struct vpfe_device *vpfe,= unsigned int index) return ret; } =20 -static int vpfe_s_input(struct file *file, void *priv, unsigned int index) +static int vpfe_s_input(struct file *file, struct video_device_state *stat= e, + unsigned int index) { struct vpfe_device *vpfe =3D video_drvdata(file); =20 return vpfe_set_input(vpfe, index); } =20 -static int vpfe_querystd(struct file *file, void *priv, v4l2_std_id *std_i= d) +static int vpfe_querystd(struct file *file, struct video_device_state *sta= te, + v4l2_std_id *std_id) { struct vpfe_device *vpfe =3D video_drvdata(file); struct vpfe_subdev_info *sdinfo; @@ -1696,7 +1706,8 @@ static int vpfe_querystd(struct file *file, void *pri= v, v4l2_std_id *std_id) video, querystd, std_id); } =20 -static int vpfe_s_std(struct file *file, void *priv, v4l2_std_id std_id) +static int vpfe_s_std(struct file *file, struct video_device_state *state, + v4l2_std_id std_id) { struct vpfe_device *vpfe =3D video_drvdata(file); struct vpfe_subdev_info *sdinfo; @@ -1728,7 +1739,8 @@ static int vpfe_s_std(struct file *file, void *priv, = v4l2_std_id std_id) return ret; } =20 -static int vpfe_g_std(struct file *file, void *priv, v4l2_std_id *std_id) +static int vpfe_g_std(struct file *file, struct video_device_state *state, + v4l2_std_id *std_id) { struct vpfe_device *vpfe =3D video_drvdata(file); struct vpfe_subdev_info *sdinfo; @@ -1946,8 +1958,9 @@ static void vpfe_stop_streaming(struct vb2_queue *vq) vpfe_return_all_buffers(vpfe, VB2_BUF_STATE_ERROR); } =20 -static int vpfe_g_pixelaspect(struct file *file, void *priv, - int type, struct v4l2_fract *f) +static int vpfe_g_pixelaspect(struct file *file, + struct video_device_state *state, int type, + struct v4l2_fract *f) { struct vpfe_device *vpfe =3D video_drvdata(file); =20 @@ -1961,7 +1974,8 @@ static int vpfe_g_pixelaspect(struct file *file, void= *priv, } =20 static int -vpfe_g_selection(struct file *file, void *fh, struct v4l2_selection *s) +vpfe_g_selection(struct file *file, struct video_device_state *state, + struct v4l2_selection *s) { struct vpfe_device *vpfe =3D video_drvdata(file); =20 @@ -1990,7 +2004,8 @@ vpfe_g_selection(struct file *file, void *fh, struct = v4l2_selection *s) } =20 static int -vpfe_s_selection(struct file *file, void *fh, struct v4l2_selection *s) +vpfe_s_selection(struct file *file, struct video_device_state *state, + struct v4l2_selection *s) { struct vpfe_device *vpfe =3D video_drvdata(file); struct v4l2_rect cr =3D vpfe->crop; @@ -2036,7 +2051,8 @@ vpfe_s_selection(struct file *file, void *fh, struct = v4l2_selection *s) return 0; } =20 -static long vpfe_ioctl_default(struct file *file, void *priv, +static long vpfe_ioctl_default(struct file *file, + struct video_device_state *state, bool valid_prio, unsigned int cmd, void *param) { struct vpfe_device *vpfe =3D video_drvdata(file); diff --git a/drivers/media/platform/ti/cal/cal-video.c b/drivers/media/plat= form/ti/cal/cal-video.c index d40e24ab112783f861cf07bdc1cfcca8dcf84fdd..b1ba089bbe08ee2f67623761819= 6ca1e072c2502 100644 --- a/drivers/media/platform/ti/cal/cal-video.c +++ b/drivers/media/platform/ti/cal/cal-video.c @@ -30,7 +30,8 @@ * ------------------------------------------------------------------ */ =20 -static int cal_querycap(struct file *file, void *priv, +static int cal_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, CAL_MODULE_NAME, sizeof(cap->driver)); @@ -39,7 +40,8 @@ static int cal_querycap(struct file *file, void *priv, return 0; } =20 -static int cal_g_fmt_vid_cap(struct file *file, void *priv, +static int cal_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cal_ctx *ctx =3D video_drvdata(file); @@ -84,7 +86,8 @@ static const struct cal_format_info *find_format_by_code(= struct cal_ctx *ctx, return NULL; } =20 -static int cal_legacy_enum_fmt_vid_cap(struct file *file, void *priv, +static int cal_legacy_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct cal_ctx *ctx =3D video_drvdata(file); @@ -174,7 +177,8 @@ static void cal_calc_format_size(struct cal_ctx *ctx, f->fmt.pix.bytesperline, f->fmt.pix.sizeimage); } =20 -static int cal_legacy_try_fmt_vid_cap(struct file *file, void *priv, +static int cal_legacy_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cal_ctx *ctx =3D video_drvdata(file); @@ -237,7 +241,8 @@ static int cal_legacy_try_fmt_vid_cap(struct file *file= , void *priv, return 0; } =20 -static int cal_legacy_s_fmt_vid_cap(struct file *file, void *priv, +static int cal_legacy_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cal_ctx *ctx =3D video_drvdata(file); @@ -255,7 +260,7 @@ static int cal_legacy_s_fmt_vid_cap(struct file *file, = void *priv, return -EBUSY; } =20 - ret =3D cal_legacy_try_fmt_vid_cap(file, priv, f); + ret =3D cal_legacy_try_fmt_vid_cap(file, state, f); if (ret < 0) return ret; =20 @@ -289,7 +294,8 @@ static int cal_legacy_s_fmt_vid_cap(struct file *file, = void *priv, return 0; } =20 -static int cal_legacy_enum_framesizes(struct file *file, void *fh, +static int cal_legacy_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct cal_ctx *ctx =3D video_drvdata(file); @@ -327,7 +333,8 @@ static int cal_legacy_enum_framesizes(struct file *file= , void *fh, return 0; } =20 -static int cal_legacy_enum_input(struct file *file, void *priv, +static int cal_legacy_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { if (inp->index > 0) @@ -338,19 +345,24 @@ static int cal_legacy_enum_input(struct file *file, v= oid *priv, return 0; } =20 -static int cal_legacy_g_input(struct file *file, void *priv, unsigned int = *i) +static int cal_legacy_g_input(struct file *file, + struct video_device_state *state, + unsigned int *i) { *i =3D 0; return 0; } =20 -static int cal_legacy_s_input(struct file *file, void *priv, unsigned int = i) +static int cal_legacy_s_input(struct file *file, + struct video_device_state *state, + unsigned int i) { return i > 0 ? -EINVAL : 0; } =20 /* timeperframe is arbitrary and continuous */ -static int cal_legacy_enum_frameintervals(struct file *file, void *priv, +static int cal_legacy_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *fival) { struct cal_ctx *ctx =3D video_drvdata(file); @@ -379,14 +391,18 @@ static int cal_legacy_enum_frameintervals(struct file= *file, void *priv, return 0; } =20 -static int cal_legacy_g_parm(struct file *file, void *fh, struct v4l2_stre= amparm *a) +static int cal_legacy_g_parm(struct file *file, + struct video_device_state *state, + struct v4l2_streamparm *a) { struct cal_ctx *ctx =3D video_drvdata(file); =20 return v4l2_g_parm_cap(video_devdata(file), ctx->phy->source, a); } =20 -static int cal_legacy_s_parm(struct file *file, void *fh, struct v4l2_stre= amparm *a) +static int cal_legacy_s_parm(struct file *file, + struct video_device_state *state, + struct v4l2_streamparm *a) { struct cal_ctx *ctx =3D video_drvdata(file); =20 @@ -425,7 +441,8 @@ static const struct v4l2_ioctl_ops cal_ioctl_legacy_ops= =3D { * ------------------------------------------------------------------ */ =20 -static int cal_mc_enum_fmt_vid_cap(struct file *file, void *priv, +static int cal_mc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { unsigned int i; @@ -509,7 +526,8 @@ static void cal_mc_try_fmt(struct cal_ctx *ctx, struct = v4l2_format *f, format->bytesperline, format->sizeimage); } =20 -static int cal_mc_try_fmt_vid_cap(struct file *file, void *priv, +static int cal_mc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cal_ctx *ctx =3D video_drvdata(file); @@ -518,7 +536,8 @@ static int cal_mc_try_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int cal_mc_s_fmt_vid_cap(struct file *file, void *priv, +static int cal_mc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cal_ctx *ctx =3D video_drvdata(file); @@ -537,7 +556,8 @@ static int cal_mc_s_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int cal_mc_enum_framesizes(struct file *file, void *fh, +static int cal_mc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct cal_ctx *ctx =3D video_drvdata(file); diff --git a/drivers/media/platform/ti/davinci/vpif_capture.c b/drivers/med= ia/platform/ti/davinci/vpif_capture.c index d053972888d1b43161e99a04c4ca5e11664bf5b8..660532e3f8ac4527c3563d20a81= 258bda351ae4a 100644 --- a/drivers/media/platform/ti/davinci/vpif_capture.c +++ b/drivers/media/platform/ti/davinci/vpif_capture.c @@ -741,12 +741,13 @@ static int vpif_set_input( /** * vpif_querystd() - querystd handler * @file: file ptr - * @priv: file handle + * @state: video device state * @std_id: ptr to std id * * This function is called to detect standard at the selected input */ -static int vpif_querystd(struct file *file, void *priv, v4l2_std_id *std_i= d) +static int vpif_querystd(struct file *file, struct video_device_state *sta= te, + v4l2_std_id *std_id) { struct video_device *vdev =3D video_devdata(file); struct channel_obj *ch =3D video_get_drvdata(vdev); @@ -770,10 +771,11 @@ static int vpif_querystd(struct file *file, void *pri= v, v4l2_std_id *std_id) /** * vpif_g_std() - get STD handler * @file: file ptr - * @priv: file handle + * @state: video device state * @std: ptr to std id */ -static int vpif_g_std(struct file *file, void *priv, v4l2_std_id *std) +static int vpif_g_std(struct file *file, struct video_device_state *state, + v4l2_std_id *std) { struct vpif_capture_config *config =3D vpif_dev->platform_data; struct video_device *vdev =3D video_devdata(file); @@ -798,10 +800,11 @@ static int vpif_g_std(struct file *file, void *priv, = v4l2_std_id *std) /** * vpif_s_std() - set STD handler * @file: file ptr - * @priv: file handle + * @state: video device state * @std_id: ptr to std id */ -static int vpif_s_std(struct file *file, void *priv, v4l2_std_id std_id) +static int vpif_s_std(struct file *file, struct video_device_state *state, + v4l2_std_id std_id) { struct vpif_capture_config *config =3D vpif_dev->platform_data; struct video_device *vdev =3D video_devdata(file); @@ -846,11 +849,11 @@ static int vpif_s_std(struct file *file, void *priv, = v4l2_std_id std_id) /** * vpif_enum_input() - ENUMINPUT handler * @file: file ptr - * @priv: file handle + * @state: video device state * @input: ptr to input structure */ -static int vpif_enum_input(struct file *file, void *priv, - struct v4l2_input *input) +static int vpif_enum_input(struct file *file, struct video_device_state *s= tate, + struct v4l2_input *input) { =20 struct vpif_capture_config *config =3D vpif_dev->platform_data; @@ -871,10 +874,11 @@ static int vpif_enum_input(struct file *file, void *p= riv, /** * vpif_g_input() - Get INPUT handler * @file: file ptr - * @priv: file handle + * @state: video device state * @index: ptr to input index */ -static int vpif_g_input(struct file *file, void *priv, unsigned int *index) +static int vpif_g_input(struct file *file, struct video_device_state *stat= e, + unsigned int *index) { struct video_device *vdev =3D video_devdata(file); struct channel_obj *ch =3D video_get_drvdata(vdev); @@ -886,10 +890,11 @@ static int vpif_g_input(struct file *file, void *priv= , unsigned int *index) /** * vpif_s_input() - Set INPUT handler * @file: file ptr - * @priv: file handle + * @state: video device state * @index: input index */ -static int vpif_s_input(struct file *file, void *priv, unsigned int index) +static int vpif_s_input(struct file *file, struct video_device_state *stat= e, + unsigned int index) { struct vpif_capture_config *config =3D vpif_dev->platform_data; struct video_device *vdev =3D video_devdata(file); @@ -911,11 +916,12 @@ static int vpif_s_input(struct file *file, void *priv= , unsigned int index) /** * vpif_enum_fmt_vid_cap() - ENUM_FMT handler * @file: file ptr - * @priv: file handle + * @state: video device state * @fmt: ptr to V4L2 format descriptor */ -static int vpif_enum_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_fmtdesc *fmt) +static int vpif_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *fmt) { struct video_device *vdev =3D video_devdata(file); struct channel_obj *ch =3D video_get_drvdata(vdev); @@ -936,10 +942,11 @@ static int vpif_enum_fmt_vid_cap(struct file *file, v= oid *priv, /** * vpif_try_fmt_vid_cap() - TRY_FMT handler * @file: file ptr - * @priv: file handle + * @state: video device state * @fmt: ptr to v4l2 format structure */ -static int vpif_try_fmt_vid_cap(struct file *file, void *priv, +static int vpif_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct video_device *vdev =3D video_devdata(file); @@ -973,11 +980,12 @@ static int vpif_try_fmt_vid_cap(struct file *file, vo= id *priv, /** * vpif_g_fmt_vid_cap() - Set INPUT handler * @file: file ptr - * @priv: file handle + * @state: video device state * @fmt: ptr to v4l2 format structure */ -static int vpif_g_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_format *fmt) +static int vpif_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct video_device *vdev =3D video_devdata(file); struct channel_obj *ch =3D video_get_drvdata(vdev); @@ -1029,11 +1037,12 @@ static int vpif_g_fmt_vid_cap(struct file *file, vo= id *priv, /** * vpif_s_fmt_vid_cap() - Set FMT handler * @file: file ptr - * @priv: file handle + * @state: video device state * @fmt: ptr to v4l2 format structure */ -static int vpif_s_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_format *fmt) +static int vpif_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct video_device *vdev =3D video_devdata(file); struct channel_obj *ch =3D video_get_drvdata(vdev); @@ -1045,7 +1054,7 @@ static int vpif_s_fmt_vid_cap(struct file *file, void= *priv, if (vb2_is_busy(&common->buffer_queue)) return -EBUSY; =20 - ret =3D vpif_try_fmt_vid_cap(file, priv, fmt); + ret =3D vpif_try_fmt_vid_cap(file, state, fmt); if (ret) return ret; =20 @@ -1057,11 +1066,11 @@ static int vpif_s_fmt_vid_cap(struct file *file, vo= id *priv, /** * vpif_querycap() - QUERYCAP handler * @file: file ptr - * @priv: file handle + * @state: video device state * @cap: ptr to v4l2_capability structure */ -static int vpif_querycap(struct file *file, void *priv, - struct v4l2_capability *cap) +static int vpif_querycap(struct file *file, struct video_device_state *sta= te, + struct v4l2_capability *cap) { struct vpif_capture_config *config =3D vpif_dev->platform_data; =20 @@ -1074,11 +1083,12 @@ static int vpif_querycap(struct file *file, void *= priv, /** * vpif_enum_dv_timings() - ENUM_DV_TIMINGS handler * @file: file ptr - * @priv: file handle + * @state: video device state * @timings: input timings */ static int -vpif_enum_dv_timings(struct file *file, void *priv, +vpif_enum_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_enum_dv_timings *timings) { struct vpif_capture_config *config =3D vpif_dev->platform_data; @@ -1108,11 +1118,12 @@ vpif_enum_dv_timings(struct file *file, void *priv, /** * vpif_query_dv_timings() - QUERY_DV_TIMINGS handler * @file: file ptr - * @priv: file handle + * @state: video device state * @timings: input timings */ static int -vpif_query_dv_timings(struct file *file, void *priv, +vpif_query_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct vpif_capture_config *config =3D vpif_dev->platform_data; @@ -1140,11 +1151,12 @@ vpif_query_dv_timings(struct file *file, void *priv, /** * vpif_s_dv_timings() - S_DV_TIMINGS handler * @file: file ptr - * @priv: file handle + * @state: video device state * @timings: digital video timings */ -static int vpif_s_dv_timings(struct file *file, void *priv, - struct v4l2_dv_timings *timings) +static int vpif_s_dv_timings(struct file *file, + struct video_device_state *state, + struct v4l2_dv_timings *timings) { struct vpif_capture_config *config =3D vpif_dev->platform_data; struct video_device *vdev =3D video_devdata(file); @@ -1239,11 +1251,12 @@ static int vpif_s_dv_timings(struct file *file, voi= d *priv, /** * vpif_g_dv_timings() - G_DV_TIMINGS handler * @file: file ptr - * @priv: file handle + * @state: video device state * @timings: digital video timings */ -static int vpif_g_dv_timings(struct file *file, void *priv, - struct v4l2_dv_timings *timings) +static int vpif_g_dv_timings(struct file *file, + struct video_device_state *state, + struct v4l2_dv_timings *timings) { struct vpif_capture_config *config =3D vpif_dev->platform_data; struct video_device *vdev =3D video_devdata(file); @@ -1268,11 +1281,12 @@ static int vpif_g_dv_timings(struct file *file, voi= d *priv, /* * vpif_log_status() - Status information * @file: file ptr - * @priv: file handle + * @state: video device state * * Returns zero. */ -static int vpif_log_status(struct file *filep, void *priv) +static int vpif_log_status(struct file *filep, + struct video_device_state *state) { /* status for sub devices */ v4l2_device_call_all(&vpif_obj.v4l2_dev, 0, core, log_status); diff --git a/drivers/media/platform/ti/davinci/vpif_display.c b/drivers/med= ia/platform/ti/davinci/vpif_display.c index 70c89549f4b61d79bb72157e722e1984a4fca68e..ee33a8d6029ed4fa1331aca8c3f= 9888e3f603af2 100644 --- a/drivers/media/platform/ti/davinci/vpif_display.c +++ b/drivers/media/platform/ti/davinci/vpif_display.c @@ -575,10 +575,11 @@ static void vpif_config_addr(struct channel_obj *ch, = int muxmode) /** * vpif_querycap() - QUERYCAP handler * @file: file ptr - * @priv: file handle + * @state: video device state * @cap: ptr to v4l2_capability structure */ -static int vpif_querycap(struct file *file, void *priv, +static int vpif_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct vpif_display_config *config =3D vpif_dev->platform_data; @@ -589,7 +590,8 @@ static int vpif_querycap(struct file *file, void *priv, return 0; } =20 -static int vpif_enum_fmt_vid_out(struct file *file, void *priv, +static int vpif_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *fmt) { if (fmt->index !=3D 0) @@ -600,7 +602,8 @@ static int vpif_enum_fmt_vid_out(struct file *file, voi= d *priv, return 0; } =20 -static int vpif_g_fmt_vid_out(struct file *file, void *priv, +static int vpif_g_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct video_device *vdev =3D video_devdata(file); @@ -617,7 +620,8 @@ static int vpif_g_fmt_vid_out(struct file *file, void *= priv, return 0; } =20 -static int vpif_try_fmt_vid_out(struct file *file, void *priv, +static int vpif_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct video_device *vdev =3D video_devdata(file); @@ -645,7 +649,8 @@ static int vpif_try_fmt_vid_out(struct file *file, void= *priv, return 0; } =20 -static int vpif_s_fmt_vid_out(struct file *file, void *priv, +static int vpif_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct video_device *vdev =3D video_devdata(file); @@ -657,7 +662,7 @@ static int vpif_s_fmt_vid_out(struct file *file, void *= priv, if (vb2_is_busy(&common->buffer_queue)) return -EBUSY; =20 - ret =3D vpif_try_fmt_vid_out(file, priv, fmt); + ret =3D vpif_try_fmt_vid_out(file, state, fmt); if (ret) return ret; =20 @@ -669,7 +674,8 @@ static int vpif_s_fmt_vid_out(struct file *file, void *= priv, return 0; } =20 -static int vpif_s_std(struct file *file, void *priv, v4l2_std_id std_id) +static int vpif_s_std(struct file *file, struct video_device_state *state, + v4l2_std_id std_id) { struct vpif_display_config *config =3D vpif_dev->platform_data; struct video_device *vdev =3D video_devdata(file); @@ -717,7 +723,8 @@ static int vpif_s_std(struct file *file, void *priv, v4= l2_std_id std_id) return ret; } =20 -static int vpif_g_std(struct file *file, void *priv, v4l2_std_id *std) +static int vpif_g_std(struct file *file, struct video_device_state *state, + v4l2_std_id *std) { struct vpif_display_config *config =3D vpif_dev->platform_data; struct video_device *vdev =3D video_devdata(file); @@ -737,7 +744,8 @@ static int vpif_g_std(struct file *file, void *priv, v4= l2_std_id *std) return 0; } =20 -static int vpif_enum_output(struct file *file, void *fh, +static int vpif_enum_output(struct file *file, + struct video_device_state *state, struct v4l2_output *output) { =20 @@ -832,7 +840,8 @@ static int vpif_set_output(struct vpif_display_config *= vpif_cfg, return 0; } =20 -static int vpif_s_output(struct file *file, void *priv, unsigned int i) +static int vpif_s_output(struct file *file, struct video_device_state *sta= te, + unsigned int i) { struct vpif_display_config *config =3D vpif_dev->platform_data; struct video_device *vdev =3D video_devdata(file); @@ -851,7 +860,8 @@ static int vpif_s_output(struct file *file, void *priv,= unsigned int i) return vpif_set_output(config, ch, i); } =20 -static int vpif_g_output(struct file *file, void *priv, unsigned int *i) +static int vpif_g_output(struct file *file, struct video_device_state *sta= te, + unsigned int *i) { struct video_device *vdev =3D video_devdata(file); struct channel_obj *ch =3D video_get_drvdata(vdev); @@ -864,11 +874,12 @@ static int vpif_g_output(struct file *file, void *pri= v, unsigned int *i) /** * vpif_enum_dv_timings() - ENUM_DV_TIMINGS handler * @file: file ptr - * @priv: file handle + * @state: video device state * @timings: input timings */ static int -vpif_enum_dv_timings(struct file *file, void *priv, +vpif_enum_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_enum_dv_timings *timings) { struct vpif_display_config *config =3D vpif_dev->platform_data; @@ -897,11 +908,12 @@ vpif_enum_dv_timings(struct file *file, void *priv, /** * vpif_s_dv_timings() - S_DV_TIMINGS handler * @file: file ptr - * @priv: file handle + * @state: video device state * @timings: digital video timings */ -static int vpif_s_dv_timings(struct file *file, void *priv, - struct v4l2_dv_timings *timings) +static int vpif_s_dv_timings(struct file *file, + struct video_device_state *state, + struct v4l2_dv_timings *timings) { struct vpif_display_config *config =3D vpif_dev->platform_data; struct video_device *vdev =3D video_devdata(file); @@ -996,11 +1008,12 @@ static int vpif_s_dv_timings(struct file *file, void= *priv, /** * vpif_g_dv_timings() - G_DV_TIMINGS handler * @file: file ptr - * @priv: file handle + * @state: video device state * @timings: digital video timings */ -static int vpif_g_dv_timings(struct file *file, void *priv, - struct v4l2_dv_timings *timings) +static int vpif_g_dv_timings(struct file *file, + struct video_device_state *state, + struct v4l2_dv_timings *timings) { struct vpif_display_config *config =3D vpif_dev->platform_data; struct video_device *vdev =3D video_devdata(file); @@ -1028,11 +1041,12 @@ static int vpif_g_dv_timings(struct file *file, voi= d *priv, /* * vpif_log_status() - Status information * @file: file ptr - * @priv: file handle + * @state: video device state * * Returns zero. */ -static int vpif_log_status(struct file *filep, void *priv) +static int vpif_log_status(struct file *filep, + struct video_device_state *state) { /* status for sub devices */ v4l2_device_call_all(&vpif_obj.v4l2_dev, 0, core, log_status); diff --git a/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c b/driver= s/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c index b75aa363d1bf25f8c31b403c3aede0b31333c56b..ac9a87ee06b1090456508c87893= ac0a265c93ae9 100644 --- a/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c +++ b/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c @@ -269,7 +269,8 @@ static void ti_csi2rx_fill_fmt(const struct ti_csi2rx_f= mt *csi_fmt, pix->sizeimage =3D pix->bytesperline * pix->height; } =20 -static int ti_csi2rx_querycap(struct file *file, void *priv, +static int ti_csi2rx_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, TI_CSI2RX_MODULE_NAME, sizeof(cap->driver)); @@ -278,7 +279,8 @@ static int ti_csi2rx_querycap(struct file *file, void *= priv, return 0; } =20 -static int ti_csi2rx_enum_fmt_vid_cap(struct file *file, void *priv, +static int ti_csi2rx_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { const struct ti_csi2rx_fmt *fmt =3D NULL; @@ -306,7 +308,8 @@ static int ti_csi2rx_enum_fmt_vid_cap(struct file *file= , void *priv, return 0; } =20 -static int ti_csi2rx_g_fmt_vid_cap(struct file *file, void *priv, +static int ti_csi2rx_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ti_csi2rx_dev *csi =3D video_drvdata(file); @@ -316,7 +319,8 @@ static int ti_csi2rx_g_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int ti_csi2rx_try_fmt_vid_cap(struct file *file, void *priv, +static int ti_csi2rx_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { const struct ti_csi2rx_fmt *fmt; @@ -337,7 +341,8 @@ static int ti_csi2rx_try_fmt_vid_cap(struct file *file,= void *priv, return 0; } =20 -static int ti_csi2rx_s_fmt_vid_cap(struct file *file, void *priv, +static int ti_csi2rx_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ti_csi2rx_dev *csi =3D video_drvdata(file); @@ -347,7 +352,7 @@ static int ti_csi2rx_s_fmt_vid_cap(struct file *file, v= oid *priv, if (vb2_is_busy(q)) return -EBUSY; =20 - ret =3D ti_csi2rx_try_fmt_vid_cap(file, priv, f); + ret =3D ti_csi2rx_try_fmt_vid_cap(file, state, f); if (ret < 0) return ret; =20 @@ -356,7 +361,8 @@ static int ti_csi2rx_s_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int ti_csi2rx_enum_framesizes(struct file *file, void *fh, +static int ti_csi2rx_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { const struct ti_csi2rx_fmt *fmt; diff --git a/drivers/media/platform/ti/omap/omap_vout.c b/drivers/media/pla= tform/ti/omap/omap_vout.c index 22782e9f1f4e69dd10e0172ec25f1c203caef93d..ffea499efac8fd3e271a219a6ec= 987f934f8ef9f 100644 --- a/drivers/media/platform/ti/omap/omap_vout.c +++ b/drivers/media/platform/ti/omap/omap_vout.c @@ -568,8 +568,8 @@ static void omap_vout_isr(void *arg, unsigned int irqst= atus) /* * V4L2 ioctls */ -static int vidioc_querycap(struct file *file, void *fh, - struct v4l2_capability *cap) +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct omap_vout_device *vout =3D video_drvdata(file); =20 @@ -580,7 +580,8 @@ static int vidioc_querycap(struct file *file, void *fh, return 0; } =20 -static int vidioc_enum_fmt_vid_out(struct file *file, void *fh, +static int vidioc_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *fmt) { int index =3D fmt->index; @@ -594,7 +595,8 @@ static int vidioc_enum_fmt_vid_out(struct file *file, v= oid *fh, return 0; } =20 -static int vidioc_g_fmt_vid_out(struct file *file, void *fh, +static int vidioc_g_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct omap_vout_device *vout =3D video_drvdata(file); @@ -604,7 +606,8 @@ static int vidioc_g_fmt_vid_out(struct file *file, void= *fh, =20 } =20 -static int vidioc_try_fmt_vid_out(struct file *file, void *fh, +static int vidioc_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct omap_overlay *ovl; @@ -630,7 +633,8 @@ static int vidioc_try_fmt_vid_out(struct file *file, vo= id *fh, return 0; } =20 -static int vidioc_s_fmt_vid_out(struct file *file, void *fh, +static int vidioc_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int ret, bpp; @@ -696,7 +700,8 @@ static int vidioc_s_fmt_vid_out(struct file *file, void= *fh, return ret; } =20 -static int vidioc_try_fmt_vid_overlay(struct file *file, void *fh, +static int vidioc_try_fmt_vid_overlay(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int ret =3D 0; @@ -716,7 +721,8 @@ static int vidioc_try_fmt_vid_overlay(struct file *file= , void *fh, return ret; } =20 -static int vidioc_s_fmt_vid_overlay(struct file *file, void *fh, +static int vidioc_s_fmt_vid_overlay(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int ret =3D 0; @@ -763,7 +769,8 @@ static int vidioc_s_fmt_vid_overlay(struct file *file, = void *fh, return ret; } =20 -static int vidioc_g_fmt_vid_overlay(struct file *file, void *fh, +static int vidioc_g_fmt_vid_overlay(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct omap_overlay *ovl; @@ -787,7 +794,9 @@ static int vidioc_g_fmt_vid_overlay(struct file *file, = void *fh, return 0; } =20 -static int vidioc_g_selection(struct file *file, void *fh, struct v4l2_sel= ection *sel) +static int vidioc_g_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *sel) { struct omap_vout_device *vout =3D video_drvdata(file); struct v4l2_pix_format *pix =3D &vout->pix; @@ -813,7 +822,9 @@ static int vidioc_g_selection(struct file *file, void *= fh, struct v4l2_selection return 0; } =20 -static int vidioc_s_selection(struct file *file, void *fh, struct v4l2_sel= ection *sel) +static int vidioc_s_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *sel) { int ret =3D -EINVAL; struct omap_vout_device *vout =3D video_drvdata(file); @@ -1115,7 +1126,8 @@ static void omap_vout_vb2_stop_streaming(struct vb2_q= ueue *vq) } } =20 -static int vidioc_s_fbuf(struct file *file, void *fh, +static int vidioc_s_fbuf(struct file *file, + struct video_device_state *state, const struct v4l2_framebuffer *a) { int enable =3D 0; @@ -1187,8 +1199,8 @@ static int vidioc_s_fbuf(struct file *file, void *fh, return 0; } =20 -static int vidioc_g_fbuf(struct file *file, void *fh, - struct v4l2_framebuffer *a) +static int vidioc_g_fbuf(struct file *file, + struct video_device_state *state, struct v4l2_framebuffer *a) { struct omap_overlay *ovl; struct omapvideo_info *ovid; @@ -1236,7 +1248,8 @@ static int vidioc_g_fbuf(struct file *file, void *fh, return 0; } =20 -static int vidioc_enum_output(struct file *file, void *priv, +static int vidioc_enum_output(struct file *file, + struct video_device_state *state, struct v4l2_output *out) { if (out->index) @@ -1246,13 +1259,15 @@ static int vidioc_enum_output(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_g_output(struct file *file, void *priv, unsigned int *i) +static int vidioc_g_output(struct file *file, + struct video_device_state *state, unsigned int *i) { *i =3D 0; return 0; } =20 -static int vidioc_s_output(struct file *file, void *priv, unsigned int i) +static int vidioc_s_output(struct file *file, + struct video_device_state *state, unsigned int i) { return i ? -EINVAL : 0; } diff --git a/drivers/media/platform/ti/omap3isp/ispvideo.c b/drivers/media/= platform/ti/omap3isp/ispvideo.c index 0e7f0bf2b3463b7ef6678f7bd836a952e0b707a7..5a8c64399738cb29a1939cb9974= d58b75b64bf1b 100644 --- a/drivers/media/platform/ti/omap3isp/ispvideo.c +++ b/drivers/media/platform/ti/omap3isp/ispvideo.c @@ -639,7 +639,8 @@ void omap3isp_video_resume(struct isp_video *video, int= continuous) */ =20 static int -isp_video_querycap(struct file *file, void *fh, struct v4l2_capability *ca= p) +isp_video_querycap(struct file *file, struct video_device_state *state, + struct v4l2_capability *cap) { struct isp_video *video =3D video_drvdata(file); =20 @@ -655,7 +656,8 @@ isp_video_querycap(struct file *file, void *fh, struct = v4l2_capability *cap) } =20 static int -isp_video_get_format(struct file *file, void *fh, struct v4l2_format *form= at) +isp_video_get_format(struct file *file, struct video_device_state *state, + struct v4l2_format *format) { struct isp_video_fh *vfh =3D file_to_isp_video_fh(file); struct isp_video *video =3D video_drvdata(file); @@ -671,7 +673,8 @@ isp_video_get_format(struct file *file, void *fh, struc= t v4l2_format *format) } =20 static int -isp_video_set_format(struct file *file, void *fh, struct v4l2_format *form= at) +isp_video_set_format(struct file *file, struct video_device_state *state, + struct v4l2_format *format) { struct isp_video_fh *vfh =3D file_to_isp_video_fh(file); struct isp_video *video =3D video_drvdata(file); @@ -729,7 +732,8 @@ isp_video_set_format(struct file *file, void *fh, struc= t v4l2_format *format) } =20 static int -isp_video_try_format(struct file *file, void *fh, struct v4l2_format *form= at) +isp_video_try_format(struct file *file, struct video_device_state *state, + struct v4l2_format *format) { struct isp_video *video =3D video_drvdata(file); struct v4l2_subdev_format fmt =3D { @@ -758,7 +762,8 @@ isp_video_try_format(struct file *file, void *fh, struc= t v4l2_format *format) } =20 static int -isp_video_get_selection(struct file *file, void *fh, struct v4l2_selection= *sel) +isp_video_get_selection(struct file *file, struct video_device_state *stat= e, + struct v4l2_selection *sel) { struct isp_video *video =3D video_drvdata(file); struct v4l2_subdev_format format =3D { @@ -816,7 +821,8 @@ isp_video_get_selection(struct file *file, void *fh, st= ruct v4l2_selection *sel) } =20 static int -isp_video_set_selection(struct file *file, void *fh, struct v4l2_selection= *sel) +isp_video_set_selection(struct file *file, struct video_device_state *stat= e, + struct v4l2_selection *sel) { struct isp_video *video =3D video_drvdata(file); struct v4l2_subdev *subdev; @@ -856,7 +862,8 @@ isp_video_set_selection(struct file *file, void *fh, st= ruct v4l2_selection *sel) } =20 static int -isp_video_get_param(struct file *file, void *fh, struct v4l2_streamparm *a) +isp_video_get_param(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *a) { struct isp_video_fh *vfh =3D file_to_isp_video_fh(file); struct isp_video *video =3D video_drvdata(file); @@ -874,7 +881,8 @@ isp_video_get_param(struct file *file, void *fh, struct= v4l2_streamparm *a) } =20 static int -isp_video_set_param(struct file *file, void *fh, struct v4l2_streamparm *a) +isp_video_set_param(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *a) { struct isp_video_fh *vfh =3D file_to_isp_video_fh(file); struct isp_video *video =3D video_drvdata(file); @@ -892,7 +900,8 @@ isp_video_set_param(struct file *file, void *fh, struct= v4l2_streamparm *a) } =20 static int -isp_video_reqbufs(struct file *file, void *fh, struct v4l2_requestbuffers = *rb) +isp_video_reqbufs(struct file *file, struct video_device_state *state, + struct v4l2_requestbuffers *rb) { struct isp_video_fh *vfh =3D file_to_isp_video_fh(file); struct isp_video *video =3D video_drvdata(file); @@ -906,7 +915,8 @@ isp_video_reqbufs(struct file *file, void *fh, struct v= 4l2_requestbuffers *rb) } =20 static int -isp_video_querybuf(struct file *file, void *fh, struct v4l2_buffer *b) +isp_video_querybuf(struct file *file, struct video_device_state *state, + struct v4l2_buffer *b) { struct isp_video_fh *vfh =3D file_to_isp_video_fh(file); struct isp_video *video =3D video_drvdata(file); @@ -920,7 +930,8 @@ isp_video_querybuf(struct file *file, void *fh, struct = v4l2_buffer *b) } =20 static int -isp_video_qbuf(struct file *file, void *fh, struct v4l2_buffer *b) +isp_video_qbuf(struct file *file, struct video_device_state *state, + struct v4l2_buffer *b) { struct isp_video_fh *vfh =3D file_to_isp_video_fh(file); struct isp_video *video =3D video_drvdata(file); @@ -934,7 +945,8 @@ isp_video_qbuf(struct file *file, void *fh, struct v4l2= _buffer *b) } =20 static int -isp_video_dqbuf(struct file *file, void *fh, struct v4l2_buffer *b) +isp_video_dqbuf(struct file *file, struct video_device_state *state, + struct v4l2_buffer *b) { struct isp_video_fh *vfh =3D file_to_isp_video_fh(file); struct isp_video *video =3D video_drvdata(file); @@ -1072,7 +1084,8 @@ static int isp_video_check_external_subdevs(struct is= p_video *video, * not sleep. */ static int -isp_video_streamon(struct file *file, void *fh, enum v4l2_buf_type type) +isp_video_streamon(struct file *file, struct video_device_state *vstate, + enum v4l2_buf_type type) { struct isp_video_fh *vfh =3D file_to_isp_video_fh(file); struct isp_video *video =3D video_drvdata(file); @@ -1178,7 +1191,8 @@ isp_video_streamon(struct file *file, void *fh, enum = v4l2_buf_type type) } =20 static int -isp_video_streamoff(struct file *file, void *fh, enum v4l2_buf_type type) +isp_video_streamoff(struct file *file, struct video_device_state *vstate, + enum v4l2_buf_type type) { struct isp_video_fh *vfh =3D file_to_isp_video_fh(file); struct isp_video *video =3D video_drvdata(file); @@ -1233,7 +1247,8 @@ isp_video_streamoff(struct file *file, void *fh, enum= v4l2_buf_type type) } =20 static int -isp_video_enum_input(struct file *file, void *fh, struct v4l2_input *input) +isp_video_enum_input(struct file *file, struct video_device_state *state, + struct v4l2_input *input) { if (input->index > 0) return -EINVAL; @@ -1245,7 +1260,8 @@ isp_video_enum_input(struct file *file, void *fh, str= uct v4l2_input *input) } =20 static int -isp_video_g_input(struct file *file, void *fh, unsigned int *input) +isp_video_g_input(struct file *file, struct video_device_state *state, + unsigned int *input) { *input =3D 0; =20 @@ -1253,7 +1269,8 @@ isp_video_g_input(struct file *file, void *fh, unsign= ed int *input) } =20 static int -isp_video_s_input(struct file *file, void *fh, unsigned int input) +isp_video_s_input(struct file *file, struct video_device_state *state, + unsigned int input) { return input =3D=3D 0 ? 0 : -EINVAL; } @@ -1351,7 +1368,7 @@ static int isp_video_release(struct file *file) struct isp_video_fh *handle =3D file_to_isp_video_fh(file); =20 /* Disable streaming and free the buffers queue resources. */ - isp_video_streamoff(file, vfh, video->type); + isp_video_streamoff(file, vfh->state, video->type); =20 mutex_lock(&video->queue_lock); vb2_queue_release(&handle->queue); diff --git a/drivers/media/platform/ti/vpe/vpe.c b/drivers/media/platform/t= i/vpe/vpe.c index 6029d4e8e0bd34d60f1addb91a51bf5fd0709341..5f1865ecbb266e4beb4f0f7ba1a= 5b425c2703012 100644 --- a/drivers/media/platform/ti/vpe/vpe.c +++ b/drivers/media/platform/ti/vpe/vpe.c @@ -1521,7 +1521,8 @@ static irqreturn_t vpe_irq(int irq_vpe, void *data) /* * video ioctls */ -static int vpe_querycap(struct file *file, void *priv, +static int vpe_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, VPE_MODULE_NAME, sizeof(cap->driver)); @@ -1554,7 +1555,8 @@ static int __enum_fmt(struct v4l2_fmtdesc *f, u32 typ= e) return 0; } =20 -static int vpe_enum_fmt(struct file *file, void *priv, +static int vpe_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (V4L2_TYPE_IS_OUTPUT(f->type)) @@ -1563,7 +1565,8 @@ static int vpe_enum_fmt(struct file *file, void *priv, return __enum_fmt(f, VPE_FMT_TYPE_CAPTURE); } =20 -static int vpe_g_fmt(struct file *file, void *priv, struct v4l2_format *f) +static int vpe_g_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct v4l2_pix_format_mplane *pix =3D &f->fmt.pix_mp; struct vpe_ctx *ctx =3D to_vpe_ctx(file); @@ -1721,7 +1724,8 @@ static int __vpe_try_fmt(struct vpe_ctx *ctx, struct = v4l2_format *f, return 0; } =20 -static int vpe_try_fmt(struct file *file, void *priv, struct v4l2_format *= f) +static int vpe_try_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct vpe_ctx *ctx =3D to_vpe_ctx(file); struct vpe_fmt *fmt =3D find_format(f); @@ -1784,12 +1788,13 @@ static int __vpe_s_fmt(struct vpe_ctx *ctx, struct = v4l2_format *f) return 0; } =20 -static int vpe_s_fmt(struct file *file, void *priv, struct v4l2_format *f) +static int vpe_s_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { int ret; struct vpe_ctx *ctx =3D to_vpe_ctx(file); =20 - ret =3D vpe_try_fmt(file, priv, f); + ret =3D vpe_try_fmt(file, state, f); if (ret) return ret; =20 @@ -1872,8 +1877,8 @@ static int __vpe_try_selection(struct vpe_ctx *ctx, s= truct v4l2_selection *s) return 0; } =20 -static int vpe_g_selection(struct file *file, void *fh, - struct v4l2_selection *s) +static int vpe_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct vpe_ctx *ctx =3D to_vpe_ctx(file); struct vpe_q_data *q_data; @@ -1936,8 +1941,8 @@ static int vpe_g_selection(struct file *file, void *f= h, } =20 =20 -static int vpe_s_selection(struct file *file, void *fh, - struct v4l2_selection *s) +static int vpe_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct vpe_ctx *ctx =3D to_vpe_ctx(file); struct vpe_q_data *q_data; diff --git a/drivers/media/platform/verisilicon/hantro_v4l2.c b/drivers/med= ia/platform/verisilicon/hantro_v4l2.c index fcf3bd9bcda2d02481fa7e1f20e6b7ca54d6d786..acaafd628bd235c0bc2238b828d= 589ca9b9b2731 100644 --- a/drivers/media/platform/verisilicon/hantro_v4l2.c +++ b/drivers/media/platform/verisilicon/hantro_v4l2.c @@ -171,7 +171,8 @@ hantro_get_default_fmt(const struct hantro_ctx *ctx, bo= ol bitstream, return NULL; } =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct hantro_dev *vpu =3D video_drvdata(file); @@ -182,7 +183,8 @@ static int vidioc_querycap(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_enum_framesizes(struct file *file, void *priv, +static int vidioc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct hantro_ctx *ctx =3D file_to_ctx(file); @@ -281,19 +283,22 @@ static int vidioc_enum_fmt(struct file *file, void *p= riv, return -EINVAL; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { - return vidioc_enum_fmt(file, priv, f, true); + return vidioc_enum_fmt(file, state, f, true); } =20 -static int vidioc_enum_fmt_vid_out(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { - return vidioc_enum_fmt(file, priv, f, false); + return vidioc_enum_fmt(file, state, f, false); } =20 -static int vidioc_g_fmt_out_mplane(struct file *file, void *priv, +static int vidioc_g_fmt_out_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct v4l2_pix_format_mplane *pix_mp =3D &f->fmt.pix_mp; @@ -306,7 +311,8 @@ static int vidioc_g_fmt_out_mplane(struct file *file, v= oid *priv, return 0; } =20 -static int vidioc_g_fmt_cap_mplane(struct file *file, void *priv, +static int vidioc_g_fmt_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct v4l2_pix_format_mplane *pix_mp =3D &f->fmt.pix_mp; @@ -395,13 +401,15 @@ static int hantro_try_fmt(const struct hantro_ctx *ct= x, return 0; } =20 -static int vidioc_try_fmt_cap_mplane(struct file *file, void *priv, +static int vidioc_try_fmt_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { return hantro_try_fmt(file_to_ctx(file), &f->fmt.pix_mp, f->type); } =20 -static int vidioc_try_fmt_out_mplane(struct file *file, void *priv, +static int vidioc_try_fmt_out_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { return hantro_try_fmt(file_to_ctx(file), &f->fmt.pix_mp, f->type); @@ -646,18 +654,21 @@ static int hantro_set_fmt_cap(struct hantro_ctx *ctx, } =20 static int -vidioc_s_fmt_out_mplane(struct file *file, void *priv, struct v4l2_format = *f) +vidioc_s_fmt_out_mplane(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { return hantro_set_fmt_out(file_to_ctx(file), &f->fmt.pix_mp, HANTRO_AUTO_= POSTPROC); } =20 static int -vidioc_s_fmt_cap_mplane(struct file *file, void *priv, struct v4l2_format = *f) +vidioc_s_fmt_cap_mplane(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { return hantro_set_fmt_cap(file_to_ctx(file), &f->fmt.pix_mp); } =20 -static int vidioc_g_selection(struct file *file, void *priv, +static int vidioc_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct hantro_ctx *ctx =3D file_to_ctx(file); @@ -687,7 +698,8 @@ static int vidioc_g_selection(struct file *file, void *= priv, return 0; } =20 -static int vidioc_s_selection(struct file *file, void *priv, +static int vidioc_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct hantro_ctx *ctx =3D file_to_ctx(file); @@ -733,13 +745,14 @@ static const struct v4l2_event hantro_eos_event =3D { .type =3D V4L2_EVENT_EOS }; =20 -static int vidioc_encoder_cmd(struct file *file, void *priv, +static int vidioc_encoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_encoder_cmd *ec) { struct hantro_ctx *ctx =3D file_to_ctx(file); int ret; =20 - ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, priv, ec); + ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, state, ec); if (ret < 0) return ret; =20 @@ -747,7 +760,7 @@ static int vidioc_encoder_cmd(struct file *file, void *= priv, !vb2_is_streaming(v4l2_m2m_get_dst_vq(ctx->fh.m2m_ctx))) return 0; =20 - ret =3D v4l2_m2m_ioctl_encoder_cmd(file, priv, ec); + ret =3D v4l2_m2m_ioctl_encoder_cmd(file, state, ec); if (ret < 0) return ret; =20 diff --git a/drivers/media/platform/via/via-camera.c b/drivers/media/platfo= rm/via/via-camera.c index 5702eff664d4ef652b22aaeaaacbbd0e16a2e137..ccaa17269e6956d405ea2db2359= e4ac8adf9bd76 100644 --- a/drivers/media/platform/via/via-camera.c +++ b/drivers/media/platform/via/via-camera.c @@ -736,8 +736,8 @@ static const struct v4l2_file_operations viacam_fops = =3D { /* * Only one input. */ -static int viacam_enum_input(struct file *filp, void *priv, - struct v4l2_input *input) +static int viacam_enum_input(struct file *filp, + struct video_device_state *state, struct v4l2_input *input) { if (input->index !=3D 0) return -EINVAL; @@ -747,13 +747,15 @@ static int viacam_enum_input(struct file *filp, void = *priv, return 0; } =20 -static int viacam_g_input(struct file *filp, void *priv, unsigned int *i) +static int viacam_g_input(struct file *filp, struct video_device_state *st= ate, + unsigned int *i) { *i =3D 0; return 0; } =20 -static int viacam_s_input(struct file *filp, void *priv, unsigned int i) +static int viacam_s_input(struct file *filp, struct video_device_state *st= ate, + unsigned int i) { if (i !=3D 0) return -EINVAL; @@ -776,8 +778,8 @@ static const struct v4l2_pix_format viacam_def_pix_form= at =3D { =20 static const u32 via_def_mbus_code =3D MEDIA_BUS_FMT_YUYV8_2X8; =20 -static int viacam_enum_fmt_vid_cap(struct file *filp, void *priv, - struct v4l2_fmtdesc *fmt) +static int viacam_enum_fmt_vid_cap(struct file *filp, + struct video_device_state *state, struct v4l2_fmtdesc *fmt) { if (fmt->index >=3D N_VIA_FMTS) return -EINVAL; @@ -850,8 +852,8 @@ static int viacam_do_try_fmt(struct via_camera *cam, =20 =20 =20 -static int viacam_try_fmt_vid_cap(struct file *filp, void *priv, - struct v4l2_format *fmt) +static int viacam_try_fmt_vid_cap(struct file *filp, + struct video_device_state *state, struct v4l2_format *fmt) { struct via_camera *cam =3D video_drvdata(filp); struct v4l2_format sfmt; @@ -860,8 +862,8 @@ static int viacam_try_fmt_vid_cap(struct file *filp, vo= id *priv, } =20 =20 -static int viacam_g_fmt_vid_cap(struct file *filp, void *priv, - struct v4l2_format *fmt) +static int viacam_g_fmt_vid_cap(struct file *filp, + struct video_device_state *state, struct v4l2_format *fmt) { struct via_camera *cam =3D video_drvdata(filp); =20 @@ -869,8 +871,8 @@ static int viacam_g_fmt_vid_cap(struct file *filp, void= *priv, return 0; } =20 -static int viacam_s_fmt_vid_cap(struct file *filp, void *priv, - struct v4l2_format *fmt) +static int viacam_s_fmt_vid_cap(struct file *filp, + struct video_device_state *state, struct v4l2_format *fmt) { struct via_camera *cam =3D video_drvdata(filp); int ret; @@ -902,8 +904,8 @@ static int viacam_s_fmt_vid_cap(struct file *filp, void= *priv, return ret; } =20 -static int viacam_querycap(struct file *filp, void *priv, - struct v4l2_capability *cap) +static int viacam_querycap(struct file *filp, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, "via-camera", sizeof(cap->driver)); strscpy(cap->card, "via-camera", sizeof(cap->card)); @@ -913,7 +915,8 @@ static int viacam_querycap(struct file *filp, void *pri= v, =20 /* G/S_PARM */ =20 -static int viacam_g_parm(struct file *filp, void *priv, +static int viacam_g_parm(struct file *filp, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct via_camera *cam =3D video_drvdata(filp); @@ -921,7 +924,8 @@ static int viacam_g_parm(struct file *filp, void *priv, return v4l2_g_parm_cap(video_devdata(filp), cam->sensor, parm); } =20 -static int viacam_s_parm(struct file *filp, void *priv, +static int viacam_s_parm(struct file *filp, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct via_camera *cam =3D video_drvdata(filp); @@ -929,7 +933,8 @@ static int viacam_s_parm(struct file *filp, void *priv, return v4l2_s_parm_cap(video_devdata(filp), cam->sensor, parm); } =20 -static int viacam_enum_framesizes(struct file *filp, void *priv, +static int viacam_enum_framesizes(struct file *filp, + struct video_device_state *state, struct v4l2_frmsizeenum *sizes) { unsigned int i; @@ -950,7 +955,8 @@ static int viacam_enum_framesizes(struct file *filp, vo= id *priv, return 0; } =20 -static int viacam_enum_frameintervals(struct file *filp, void *priv, +static int viacam_enum_frameintervals(struct file *filp, + struct video_device_state *state, struct v4l2_frmivalenum *interval) { struct via_camera *cam =3D video_drvdata(filp); diff --git a/drivers/media/platform/xilinx/xilinx-dma.c b/drivers/media/pla= tform/xilinx/xilinx-dma.c index fcfe0883aba5fb8bcf954ce4be956edb39e610cb..8102e09993e4a9ce5428a0a49ef= 01c8e5de223f6 100644 --- a/drivers/media/platform/xilinx/xilinx-dma.c +++ b/drivers/media/platform/xilinx/xilinx-dma.c @@ -467,7 +467,8 @@ static const struct vb2_ops xvip_dma_queue_qops =3D { */ =20 static int -xvip_dma_querycap(struct file *file, void *fh, struct v4l2_capability *cap) +xvip_dma_querycap(struct file *file, struct video_device_state *state, + struct v4l2_capability *cap) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); struct xvip_dma *dma =3D to_xvip_dma(vfh->vdev); @@ -489,7 +490,8 @@ xvip_dma_querycap(struct file *file, void *fh, struct v= 4l2_capability *cap) * clarified through the mailing list. */ static int -xvip_dma_enum_format(struct file *file, void *fh, struct v4l2_fmtdesc *f) +xvip_dma_enum_format(struct file *file, struct video_device_state *state, + struct v4l2_fmtdesc *f) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); struct xvip_dma *dma =3D to_xvip_dma(vfh->vdev); @@ -503,7 +505,8 @@ xvip_dma_enum_format(struct file *file, void *fh, struc= t v4l2_fmtdesc *f) } =20 static int -xvip_dma_get_format(struct file *file, void *fh, struct v4l2_format *forma= t) +xvip_dma_get_format(struct file *file, struct video_device_state *state, + struct v4l2_format *format) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); struct xvip_dma *dma =3D to_xvip_dma(vfh->vdev); @@ -563,7 +566,8 @@ __xvip_dma_try_format(struct xvip_dma *dma, struct v4l2= _pix_format *pix, } =20 static int -xvip_dma_try_format(struct file *file, void *fh, struct v4l2_format *forma= t) +xvip_dma_try_format(struct file *file, struct video_device_state *state, + struct v4l2_format *format) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); struct xvip_dma *dma =3D to_xvip_dma(vfh->vdev); @@ -573,7 +577,8 @@ xvip_dma_try_format(struct file *file, void *fh, struct= v4l2_format *format) } =20 static int -xvip_dma_set_format(struct file *file, void *fh, struct v4l2_format *forma= t) +xvip_dma_set_format(struct file *file, struct video_device_state *state, + struct v4l2_format *format) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); struct xvip_dma *dma =3D to_xvip_dma(vfh->vdev); diff --git a/drivers/media/radio/dsbr100.c b/drivers/media/radio/dsbr100.c index 9a45cda0577993206c7e287ce03467713f16ee41..9978454af6a33e863e320a6c164= 97998a44a1dca 100644 --- a/drivers/media/radio/dsbr100.c +++ b/drivers/media/radio/dsbr100.c @@ -160,7 +160,8 @@ static void dsbr100_getstat(struct dsbr100_device *radi= o) } } =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *v) { struct dsbr100_device *radio =3D video_drvdata(file); @@ -171,7 +172,8 @@ static int vidioc_querycap(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_g_tuner(struct file *file, void *priv, +static int vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *v) { struct dsbr100_device *radio =3D video_drvdata(file); @@ -192,13 +194,15 @@ static int vidioc_g_tuner(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *v) { return v->index ? -EINVAL : 0; } =20 -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct dsbr100_device *radio =3D video_drvdata(file); @@ -210,7 +214,8 @@ static int vidioc_s_frequency(struct file *file, void *= priv, FREQ_MIN * FREQ_MUL, FREQ_MAX * FREQ_MUL)); } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct dsbr100_device *radio =3D video_drvdata(file); diff --git a/drivers/media/radio/radio-cadet.c b/drivers/media/radio/radio-= cadet.c index 5110754e1a31782b74d4c9dcbfa79642a532543a..842002098e8eeb960e7128310f4= 1e86efe5ce943 100644 --- a/drivers/media/radio/radio-cadet.c +++ b/drivers/media/radio/radio-cadet.c @@ -351,7 +351,8 @@ static ssize_t cadet_read(struct file *file, char __use= r *data, size_t count, lo } =20 =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *v) { strscpy(v->driver, "ADS Cadet", sizeof(v->driver)); @@ -360,7 +361,8 @@ static int vidioc_querycap(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_g_tuner(struct file *file, void *priv, +static int vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *v) { struct cadet *dev =3D video_drvdata(file); @@ -390,13 +392,15 @@ static int vidioc_g_tuner(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *v) { return v->index ? -EINVAL : 0; } =20 -static int vidioc_enum_freq_bands(struct file *file, void *priv, +static int vidioc_enum_freq_bands(struct file *file, + struct video_device_state *state, struct v4l2_frequency_band *band) { if (band->tuner) @@ -407,7 +411,8 @@ static int vidioc_enum_freq_bands(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct cadet *dev =3D video_drvdata(file); @@ -420,7 +425,8 @@ static int vidioc_g_frequency(struct file *file, void *= priv, } =20 =20 -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct cadet *dev =3D video_drvdata(file); diff --git a/drivers/media/radio/radio-isa.c b/drivers/media/radio/radio-is= a.c index 1a144536ffa7580c8e8d96c149a68eb788c29346..32f483f12ce052ec8ccf870eb42= fae661b5fff67 100644 --- a/drivers/media/radio/radio-isa.c +++ b/drivers/media/radio/radio-isa.c @@ -29,7 +29,8 @@ MODULE_LICENSE("GPL"); #define FREQ_LOW (87U * 16000U) #define FREQ_HIGH (108U * 16000U) =20 -static int radio_isa_querycap(struct file *file, void *priv, +static int radio_isa_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *v) { struct radio_isa_card *isa =3D video_drvdata(file); @@ -40,7 +41,8 @@ static int radio_isa_querycap(struct file *file, void *p= riv, return 0; } =20 -static int radio_isa_g_tuner(struct file *file, void *priv, +static int radio_isa_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *v) { struct radio_isa_card *isa =3D video_drvdata(file); @@ -70,7 +72,8 @@ static int radio_isa_g_tuner(struct file *file, void *pri= v, return 0; } =20 -static int radio_isa_s_tuner(struct file *file, void *priv, +static int radio_isa_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *v) { struct radio_isa_card *isa =3D video_drvdata(file); @@ -85,7 +88,8 @@ static int radio_isa_s_tuner(struct file *file, void *pri= v, return 0; } =20 -static int radio_isa_s_frequency(struct file *file, void *priv, +static int radio_isa_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct radio_isa_card *isa =3D video_drvdata(file); @@ -101,7 +105,8 @@ static int radio_isa_s_frequency(struct file *file, voi= d *priv, return res; } =20 -static int radio_isa_g_frequency(struct file *file, void *priv, +static int radio_isa_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct radio_isa_card *isa =3D video_drvdata(file); @@ -126,7 +131,8 @@ static int radio_isa_s_ctrl(struct v4l2_ctrl *ctrl) return -EINVAL; } =20 -static int radio_isa_log_status(struct file *file, void *priv) +static int radio_isa_log_status(struct file *file, + struct video_device_state *state) { struct radio_isa_card *isa =3D video_drvdata(file); =20 diff --git a/drivers/media/radio/radio-keene.c b/drivers/media/radio/radio-= keene.c index f3b57f0cb1ec4064aa7e81b1c6425f937ca819de..168e1ff2a0ae64a5af57ceefd7e= 57491f1b347e1 100644 --- a/drivers/media/radio/radio-keene.c +++ b/drivers/media/radio/radio-keene.c @@ -160,7 +160,8 @@ static int usb_keene_resume(struct usb_interface *intf) return 0; } =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *v) { struct keene_device *radio =3D video_drvdata(file); @@ -171,7 +172,8 @@ static int vidioc_querycap(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_g_modulator(struct file *file, void *priv, +static int vidioc_g_modulator(struct file *file, + struct video_device_state *state, struct v4l2_modulator *v) { struct keene_device *radio =3D video_drvdata(file); @@ -187,7 +189,8 @@ static int vidioc_g_modulator(struct file *file, void *= priv, return 0; } =20 -static int vidioc_s_modulator(struct file *file, void *priv, +static int vidioc_s_modulator(struct file *file, + struct video_device_state *state, const struct v4l2_modulator *v) { struct keene_device *radio =3D video_drvdata(file); @@ -199,7 +202,8 @@ static int vidioc_s_modulator(struct file *file, void *= priv, return keene_cmd_set(radio); } =20 -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct keene_device *radio =3D video_drvdata(file); @@ -211,7 +215,8 @@ static int vidioc_s_frequency(struct file *file, void *= priv, return keene_cmd_main(radio, freq, true); } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct keene_device *radio =3D video_drvdata(file); diff --git a/drivers/media/radio/radio-ma901.c b/drivers/media/radio/radio-= ma901.c index 657c3dda6648a8ff3bf67630c7cc30d857367fe0..61b745a13fc29e03579a29bb7f2= 894513cf5e872 100644 --- a/drivers/media/radio/radio-ma901.c +++ b/drivers/media/radio/radio-ma901.c @@ -183,7 +183,8 @@ static void usb_ma901radio_disconnect(struct usb_interf= ace *intf) } =20 /* vidioc_querycap - query device capabilities */ -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *v) { struct ma901radio_device *radio =3D video_drvdata(file); @@ -195,7 +196,8 @@ static int vidioc_querycap(struct file *file, void *pri= v, } =20 /* vidioc_g_tuner - get tuner attributes */ -static int vidioc_g_tuner(struct file *file, void *priv, +static int vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *v) { struct ma901radio_device *radio =3D video_drvdata(file); @@ -223,7 +225,8 @@ static int vidioc_g_tuner(struct file *file, void *priv, } =20 /* vidioc_s_tuner - set tuner attributes */ -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *v) { struct ma901radio_device *radio =3D video_drvdata(file); @@ -241,7 +244,8 @@ static int vidioc_s_tuner(struct file *file, void *priv, } =20 /* vidioc_s_frequency - set tuner radio frequency */ -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct ma901radio_device *radio =3D video_drvdata(file); @@ -254,7 +258,8 @@ static int vidioc_s_frequency(struct file *file, void *= priv, } =20 /* vidioc_g_frequency - get tuner radio frequency */ -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct ma901radio_device *radio =3D video_drvdata(file); diff --git a/drivers/media/radio/radio-miropcm20.c b/drivers/media/radio/ra= dio-miropcm20.c index 67712ab3d564435c9e7c2c46d103ea7f8166c2ea..f9d5d35a775378a118fd4cc8683= 8273baf8911ba 100644 --- a/drivers/media/radio/radio-miropcm20.c +++ b/drivers/media/radio/radio-miropcm20.c @@ -196,7 +196,8 @@ static int pcm20_setfreq(struct pcm20 *dev, unsigned lo= ng freq) return snd_aci_cmd(aci, ACI_WRITE_TUNE, freql, freqh); } =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *v) { strscpy(v->driver, "Miro PCM20", sizeof(v->driver)); @@ -219,7 +220,8 @@ static bool sanitize(char *p, int size) return ret; } =20 -static int vidioc_g_tuner(struct file *file, void *priv, +static int vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *v) { struct pcm20 *dev =3D video_drvdata(file); @@ -248,7 +250,8 @@ static int vidioc_g_tuner(struct file *file, void *priv, return 0; } =20 -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *v) { struct pcm20 *dev =3D video_drvdata(file); @@ -264,7 +267,8 @@ static int vidioc_s_tuner(struct file *file, void *priv, return 0; } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct pcm20 *dev =3D video_drvdata(file); @@ -278,7 +282,8 @@ static int vidioc_g_frequency(struct file *file, void *= priv, } =20 =20 -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct pcm20 *dev =3D video_drvdata(file); diff --git a/drivers/media/radio/radio-mr800.c b/drivers/media/radio/radio-= mr800.c index cb0437b4c331250863c9e08c58bf0f32fdad4362..368995ce53ae950cd14d5616ede= 7a3429cdfb9bd 100644 --- a/drivers/media/radio/radio-mr800.c +++ b/drivers/media/radio/radio-mr800.c @@ -252,7 +252,8 @@ static void usb_amradio_disconnect(struct usb_interface= *intf) } =20 /* vidioc_querycap - query device capabilities */ -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *v) { struct amradio_device *radio =3D video_drvdata(file); @@ -264,7 +265,8 @@ static int vidioc_querycap(struct file *file, void *pri= v, } =20 /* vidioc_g_tuner - get tuner attributes */ -static int vidioc_g_tuner(struct file *file, void *priv, +static int vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *v) { struct amradio_device *radio =3D video_drvdata(file); @@ -292,7 +294,8 @@ static int vidioc_g_tuner(struct file *file, void *priv, } =20 /* vidioc_s_tuner - set tuner attributes */ -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *v) { struct amradio_device *radio =3D video_drvdata(file); @@ -310,7 +313,8 @@ static int vidioc_s_tuner(struct file *file, void *priv, } =20 /* vidioc_s_frequency - set tuner radio frequency */ -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct amradio_device *radio =3D video_drvdata(file); @@ -321,7 +325,8 @@ static int vidioc_s_frequency(struct file *file, void *= priv, } =20 /* vidioc_g_frequency - get tuner radio frequency */ -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct amradio_device *radio =3D video_drvdata(file); @@ -334,7 +339,8 @@ static int vidioc_g_frequency(struct file *file, void *= priv, return 0; } =20 -static int vidioc_s_hw_freq_seek(struct file *file, void *priv, +static int vidioc_s_hw_freq_seek(struct file *file, + struct video_device_state *state, const struct v4l2_hw_freq_seek *seek) { static u8 buf[8] =3D { diff --git a/drivers/media/radio/radio-raremono.c b/drivers/media/radio/rad= io-raremono.c index f60775b005e1d1dcc63b9d095cfb5320c20888e1..54460ea13ed9e72ef4c0109be9e= 38fc8f1bed665 100644 --- a/drivers/media/radio/radio-raremono.c +++ b/drivers/media/radio/radio-raremono.c @@ -176,7 +176,8 @@ static void usb_raremono_disconnect(struct usb_interfac= e *intf) /* * Linux Video interface */ -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *v) { struct raremono_device *radio =3D video_drvdata(file); @@ -187,7 +188,8 @@ static int vidioc_querycap(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_enum_freq_bands(struct file *file, void *priv, +static int vidioc_enum_freq_bands(struct file *file, + struct video_device_state *state, struct v4l2_frequency_band *band) { if (band->tuner !=3D 0) @@ -201,8 +203,8 @@ static int vidioc_enum_freq_bands(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_g_tuner(struct file *file, void *priv, - struct v4l2_tuner *v) +static int vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *v) { struct raremono_device *radio =3D video_drvdata(file); int ret; @@ -230,13 +232,15 @@ static int vidioc_g_tuner(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *v) { return v->index ? -EINVAL : 0; } =20 -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct raremono_device *radio =3D video_drvdata(file); @@ -257,7 +261,8 @@ static int vidioc_s_frequency(struct file *file, void *= priv, return raremono_cmd_main(radio, band, freq / 16); } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct raremono_device *radio =3D video_drvdata(file); diff --git a/drivers/media/radio/radio-sf16fmi.c b/drivers/media/radio/radi= o-sf16fmi.c index 1fb88c2b916c4510e915b2cb478085134a9f09c3..048f7990a5d4c318b3f7416ec09= 1f6045b8c7a10 100644 --- a/drivers/media/radio/radio-sf16fmi.c +++ b/drivers/media/radio/radio-sf16fmi.c @@ -127,7 +127,8 @@ static void fmi_set_freq(struct fmi *fmi) lm7000_set_freq((fmi->curfreq / 800) * 800, fmi, fmi_set_pins); } =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *v) { strscpy(v->driver, "radio-sf16fmi", sizeof(v->driver)); @@ -136,7 +137,8 @@ static int vidioc_querycap(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_g_tuner(struct file *file, void *priv, +static int vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *v) { struct fmi *fmi =3D video_drvdata(file); @@ -155,13 +157,15 @@ static int vidioc_g_tuner(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *v) { return v->index ? -EINVAL : 0; } =20 -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct fmi *fmi =3D video_drvdata(file); @@ -175,7 +179,8 @@ static int vidioc_s_frequency(struct file *file, void *= priv, return 0; } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct fmi *fmi =3D video_drvdata(file); diff --git a/drivers/media/radio/radio-si476x.c b/drivers/media/radio/radio= -si476x.c index 9980346cb5ea3897e515a0042cdb6c7b24334b01..9a5bb0259f28101cf3d0838ba65= 13968d7065762 100644 --- a/drivers/media/radio/radio-si476x.c +++ b/drivers/media/radio/radio-si476x.c @@ -321,7 +321,8 @@ v4l2_ctrl_handler_to_radio(struct v4l2_ctrl_handler *d) /* * si476x_vidioc_querycap - query device capabilities */ -static int si476x_radio_querycap(struct file *file, void *priv, +static int si476x_radio_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *capability) { struct si476x_radio *radio =3D video_drvdata(file); @@ -332,7 +333,8 @@ static int si476x_radio_querycap(struct file *file, voi= d *priv, return 0; } =20 -static int si476x_radio_enum_freq_bands(struct file *file, void *priv, +static int si476x_radio_enum_freq_bands(struct file *file, + struct video_device_state *state, struct v4l2_frequency_band *band) { int err; @@ -369,7 +371,8 @@ static int si476x_radio_enum_freq_bands(struct file *fi= le, void *priv, return err; } =20 -static int si476x_radio_g_tuner(struct file *file, void *priv, +static int si476x_radio_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *tuner) { int err; @@ -446,7 +449,8 @@ static int si476x_radio_g_tuner(struct file *file, void= *priv, return err; } =20 -static int si476x_radio_s_tuner(struct file *file, void *priv, +static int si476x_radio_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *tuner) { struct si476x_radio *radio =3D video_drvdata(file); @@ -638,7 +642,8 @@ static int si476x_radio_change_func(struct si476x_radio= *radio, return si476x_radio_do_post_powerup_init(radio, func); } =20 -static int si476x_radio_g_frequency(struct file *file, void *priv, +static int si476x_radio_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { int err; @@ -673,7 +678,8 @@ static int si476x_radio_g_frequency(struct file *file, = void *priv, return err; } =20 -static int si476x_radio_s_frequency(struct file *file, void *priv, +static int si476x_radio_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { int err; @@ -725,7 +731,8 @@ static int si476x_radio_s_frequency(struct file *file, = void *priv, return err; } =20 -static int si476x_radio_s_hw_freq_seek(struct file *file, void *priv, +static int si476x_radio_s_hw_freq_seek(struct file *file, + struct video_device_state *state, const struct v4l2_hw_freq_seek *seek) { int err; @@ -992,7 +999,8 @@ static int si476x_radio_s_ctrl(struct v4l2_ctrl *ctrl) } =20 #ifdef CONFIG_VIDEO_ADV_DEBUG -static int si476x_radio_g_register(struct file *file, void *fh, +static int si476x_radio_g_register(struct file *file, + struct video_device_state *state, struct v4l2_dbg_register *reg) { int err; @@ -1008,7 +1016,9 @@ static int si476x_radio_g_register(struct file *file,= void *fh, =20 return err; } -static int si476x_radio_s_register(struct file *file, void *fh, + +static int si476x_radio_s_register(struct file *file, + struct video_device_state *state, const struct v4l2_dbg_register *reg) { =20 diff --git a/drivers/media/radio/radio-tea5764.c b/drivers/media/radio/radi= o-tea5764.c index dd85b0b1bcd962d59acdbefb8c74e469914daf3f..a4f4837e896f50b7aa9c82aaa8a= 880620f5d3988 100644 --- a/drivers/media/radio/radio-tea5764.c +++ b/drivers/media/radio/radio-tea5764.c @@ -272,7 +272,8 @@ static void tea5764_mute(struct tea5764_device *radio, = int on) } =20 /* V4L2 vidioc */ -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *v) { struct tea5764_device *radio =3D video_drvdata(file); @@ -285,7 +286,8 @@ static int vidioc_querycap(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_g_tuner(struct file *file, void *priv, +static int vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *v) { struct tea5764_device *radio =3D video_drvdata(file); @@ -311,7 +313,8 @@ static int vidioc_g_tuner(struct file *file, void *priv, return 0; } =20 -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *v) { struct tea5764_device *radio =3D video_drvdata(file); @@ -323,7 +326,8 @@ static int vidioc_s_tuner(struct file *file, void *priv, return 0; } =20 -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct tea5764_device *radio =3D video_drvdata(file); @@ -347,7 +351,8 @@ static int vidioc_s_frequency(struct file *file, void *= priv, return 0; } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct tea5764_device *radio =3D video_drvdata(file); diff --git a/drivers/media/radio/radio-tea5777.c b/drivers/media/radio/radi= o-tea5777.c index fb9de7bbcd195e193d1c91661b0e8900bbefc9aa..5d2f0b182fc4891233168d92db3= ea803d450e19a 100644 --- a/drivers/media/radio/radio-tea5777.c +++ b/drivers/media/radio/radio-tea5777.c @@ -251,7 +251,8 @@ static int radio_tea5777_update_read_reg(struct radio_t= ea5777 *tea, int wait) * Linux Video interface */ =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *v) { struct radio_tea5777 *tea =3D video_drvdata(file); @@ -263,7 +264,8 @@ static int vidioc_querycap(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_enum_freq_bands(struct file *file, void *priv, +static int vidioc_enum_freq_bands(struct file *file, + struct video_device_state *state, struct v4l2_frequency_band *band) { struct radio_tea5777 *tea =3D video_drvdata(file); @@ -276,7 +278,8 @@ static int vidioc_enum_freq_bands(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_g_tuner(struct file *file, void *priv, +static int vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *v) { struct radio_tea5777 *tea =3D video_drvdata(file); @@ -318,7 +321,8 @@ static int vidioc_g_tuner(struct file *file, void *priv, return 0; } =20 -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *v) { struct radio_tea5777 *tea =3D video_drvdata(file); @@ -337,7 +341,8 @@ static int vidioc_s_tuner(struct file *file, void *priv, return 0; } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct radio_tea5777 *tea =3D video_drvdata(file); @@ -349,7 +354,8 @@ static int vidioc_g_frequency(struct file *file, void *= priv, return 0; } =20 -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct radio_tea5777 *tea =3D video_drvdata(file); @@ -366,7 +372,8 @@ static int vidioc_s_frequency(struct file *file, void *= priv, return radio_tea5777_set_freq(tea); } =20 -static int vidioc_s_hw_freq_seek(struct file *file, void *fh, +static int vidioc_s_hw_freq_seek(struct file *file, + struct video_device_state *state, const struct v4l2_hw_freq_seek *a) { struct radio_tea5777 *tea =3D video_drvdata(file); diff --git a/drivers/media/radio/radio-timb.c b/drivers/media/radio/radio-t= imb.c index a6069b106fd3048b2c730e9c45fd82f0b7302bfb..8d5e4eb0b964b56e2bac71bd626= 779d224638d9f 100644 --- a/drivers/media/radio/radio-timb.c +++ b/drivers/media/radio/radio-timb.c @@ -27,9 +27,9 @@ struct timbradio { struct mutex lock; }; =20 - -static int timbradio_vidioc_querycap(struct file *file, void *priv, - struct v4l2_capability *v) +static int timbradio_vidioc_querycap(struct file *file, + struct video_device_state *state, + struct v4l2_capability *v) { strscpy(v->driver, DRIVER_NAME, sizeof(v->driver)); strscpy(v->card, "Timberdale Radio", sizeof(v->card)); @@ -37,29 +37,33 @@ static int timbradio_vidioc_querycap(struct file *file,= void *priv, return 0; } =20 -static int timbradio_vidioc_g_tuner(struct file *file, void *priv, - struct v4l2_tuner *v) +static int timbradio_vidioc_g_tuner(struct file *file, + struct video_device_state *state, + struct v4l2_tuner *v) { struct timbradio *tr =3D video_drvdata(file); return v4l2_subdev_call(tr->sd_tuner, tuner, g_tuner, v); } =20 -static int timbradio_vidioc_s_tuner(struct file *file, void *priv, - const struct v4l2_tuner *v) +static int timbradio_vidioc_s_tuner(struct file *file, + struct video_device_state *state, + const struct v4l2_tuner *v) { struct timbradio *tr =3D video_drvdata(file); return v4l2_subdev_call(tr->sd_tuner, tuner, s_tuner, v); } =20 -static int timbradio_vidioc_s_frequency(struct file *file, void *priv, - const struct v4l2_frequency *f) +static int timbradio_vidioc_s_frequency(struct file *file, + struct video_device_state *state, + const struct v4l2_frequency *f) { struct timbradio *tr =3D video_drvdata(file); return v4l2_subdev_call(tr->sd_tuner, tuner, s_frequency, f); } =20 -static int timbradio_vidioc_g_frequency(struct file *file, void *priv, - struct v4l2_frequency *f) +static int timbradio_vidioc_g_frequency(struct file *file, + struct video_device_state *state, + struct v4l2_frequency *f) { struct timbradio *tr =3D video_drvdata(file); return v4l2_subdev_call(tr->sd_tuner, tuner, g_frequency, f); diff --git a/drivers/media/radio/si470x/radio-si470x-common.c b/drivers/med= ia/radio/si470x/radio-si470x-common.c index af0a709100994c1c39a83ac6fcabefebf2783459..26d515903ea583a174760595678= 24b60a9bb2b69 100644 --- a/drivers/media/radio/si470x/radio-si470x-common.c +++ b/drivers/media/radio/si470x/radio-si470x-common.c @@ -597,8 +597,8 @@ static int si470x_s_ctrl(struct v4l2_ctrl *ctrl) /* * si470x_vidioc_g_tuner - get tuner attributes */ -static int si470x_vidioc_g_tuner(struct file *file, void *priv, - struct v4l2_tuner *tuner) +static int si470x_vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *tuner) { struct si470x_device *radio =3D video_drvdata(file); int retval =3D 0; @@ -657,7 +657,8 @@ static int si470x_vidioc_g_tuner(struct file *file, voi= d *priv, /* * si470x_vidioc_s_tuner - set tuner attributes */ -static int si470x_vidioc_s_tuner(struct file *file, void *priv, +static int si470x_vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *tuner) { struct si470x_device *radio =3D video_drvdata(file); @@ -683,8 +684,8 @@ static int si470x_vidioc_s_tuner(struct file *file, voi= d *priv, /* * si470x_vidioc_g_frequency - get tuner or modulator radio frequency */ -static int si470x_vidioc_g_frequency(struct file *file, void *priv, - struct v4l2_frequency *freq) +static int si470x_vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *freq) { struct si470x_device *radio =3D video_drvdata(file); =20 @@ -699,7 +700,8 @@ static int si470x_vidioc_g_frequency(struct file *file,= void *priv, /* * si470x_vidioc_s_frequency - set tuner or modulator radio frequency */ -static int si470x_vidioc_s_frequency(struct file *file, void *priv, +static int si470x_vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *freq) { struct si470x_device *radio =3D video_drvdata(file); @@ -722,7 +724,8 @@ static int si470x_vidioc_s_frequency(struct file *file,= void *priv, /* * si470x_vidioc_s_hw_freq_seek - set hardware frequency seek */ -static int si470x_vidioc_s_hw_freq_seek(struct file *file, void *priv, +static int si470x_vidioc_s_hw_freq_seek(struct file *file, + struct video_device_state *state, const struct v4l2_hw_freq_seek *seek) { struct si470x_device *radio =3D video_drvdata(file); @@ -739,7 +742,8 @@ static int si470x_vidioc_s_hw_freq_seek(struct file *fi= le, void *priv, /* * si470x_vidioc_enum_freq_bands - enumerate supported bands */ -static int si470x_vidioc_enum_freq_bands(struct file *file, void *priv, +static int si470x_vidioc_enum_freq_bands(struct file *file, + struct video_device_state *state, struct v4l2_frequency_band *band) { if (band->tuner !=3D 0) @@ -755,12 +759,13 @@ const struct v4l2_ctrl_ops si470x_ctrl_ops =3D { }; EXPORT_SYMBOL_GPL(si470x_ctrl_ops); =20 -static int si470x_vidioc_querycap(struct file *file, void *priv, +static int si470x_vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *capability) { struct si470x_device *radio =3D video_drvdata(file); =20 - return radio->vidioc_querycap(file, priv, capability); + return radio->vidioc_querycap(file, state, capability); }; =20 /* diff --git a/drivers/media/radio/si4713/radio-platform-si4713.c b/drivers/m= edia/radio/si4713/radio-platform-si4713.c index 4132968110e3c54e86642bef480793ee06adb883..903e89336af47c03da9258d8ab8= 2a7a8647f5494 100644 --- a/drivers/media/radio/si4713/radio-platform-si4713.c +++ b/drivers/media/radio/si4713/radio-platform-si4713.c @@ -55,7 +55,8 @@ static const struct v4l2_file_operations radio_si4713_fop= s =3D { /* Video4Linux Interface */ =20 /* radio_si4713_querycap - query device capabilities */ -static int radio_si4713_querycap(struct file *file, void *priv, +static int radio_si4713_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *capability) { strscpy(capability->driver, "radio-si4713", sizeof(capability->driver)); @@ -75,35 +76,40 @@ static inline struct v4l2_device *get_v4l2_dev(struct f= ile *file) return &((struct radio_si4713_device *)video_drvdata(file))->v4l2_dev; } =20 -static int radio_si4713_g_modulator(struct file *file, void *priv, +static int radio_si4713_g_modulator(struct file *file, + struct video_device_state *state, struct v4l2_modulator *vm) { return v4l2_device_call_until_err(get_v4l2_dev(file), 0, tuner, g_modulator, vm); } =20 -static int radio_si4713_s_modulator(struct file *file, void *priv, +static int radio_si4713_s_modulator(struct file *file, + struct video_device_state *state, const struct v4l2_modulator *vm) { return v4l2_device_call_until_err(get_v4l2_dev(file), 0, tuner, s_modulator, vm); } =20 -static int radio_si4713_g_frequency(struct file *file, void *priv, +static int radio_si4713_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *vf) { return v4l2_device_call_until_err(get_v4l2_dev(file), 0, tuner, g_frequency, vf); } =20 -static int radio_si4713_s_frequency(struct file *file, void *priv, +static int radio_si4713_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *vf) { return v4l2_device_call_until_err(get_v4l2_dev(file), 0, tuner, s_frequency, vf); } =20 -static long radio_si4713_default(struct file *file, void *priv, +static long radio_si4713_default(struct file *file, + struct video_device_state *state, bool valid_prio, unsigned int cmd, void *arg) { return v4l2_device_call_until_err(get_v4l2_dev(file), 0, core, diff --git a/drivers/media/radio/si4713/radio-usb-si4713.c b/drivers/media/= radio/si4713/radio-usb-si4713.c index 2cf36c8abddeacdb70f35feab8994245cc43d32f..d566d8b848db97d8a0e897dd276= e6734ae3dbd54 100644 --- a/drivers/media/radio/si4713/radio-usb-si4713.c +++ b/drivers/media/radio/si4713/radio-usb-si4713.c @@ -62,7 +62,8 @@ static inline struct si4713_usb_device *to_si4713_dev(str= uct v4l2_device *v4l2_d return container_of(v4l2_dev, struct si4713_usb_device, v4l2_dev); } =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *v) { struct si4713_usb_device *radio =3D video_drvdata(file); @@ -73,7 +74,8 @@ static int vidioc_querycap(struct file *file, void *priv, return 0; } =20 -static int vidioc_g_modulator(struct file *file, void *priv, +static int vidioc_g_modulator(struct file *file, + struct video_device_state *state, struct v4l2_modulator *vm) { struct si4713_usb_device *radio =3D video_drvdata(file); @@ -81,7 +83,8 @@ static int vidioc_g_modulator(struct file *file, void *pr= iv, return v4l2_subdev_call(radio->v4l2_subdev, tuner, g_modulator, vm); } =20 -static int vidioc_s_modulator(struct file *file, void *priv, +static int vidioc_s_modulator(struct file *file, + struct video_device_state *state, const struct v4l2_modulator *vm) { struct si4713_usb_device *radio =3D video_drvdata(file); @@ -89,7 +92,8 @@ static int vidioc_s_modulator(struct file *file, void *pr= iv, return v4l2_subdev_call(radio->v4l2_subdev, tuner, s_modulator, vm); } =20 -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *vf) { struct si4713_usb_device *radio =3D video_drvdata(file); @@ -97,7 +101,8 @@ static int vidioc_s_frequency(struct file *file, void *p= riv, return v4l2_subdev_call(radio->v4l2_subdev, tuner, s_frequency, vf); } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *vf) { struct si4713_usb_device *radio =3D video_drvdata(file); diff --git a/drivers/media/radio/tea575x.c b/drivers/media/radio/tea575x.c index c37315226c427ac3e382055e0d3f8057d8ef6870..659f43bb1e8d9ae8e096c93e416= 5fa9e6b900ffb 100644 --- a/drivers/media/radio/tea575x.c +++ b/drivers/media/radio/tea575x.c @@ -217,7 +217,8 @@ EXPORT_SYMBOL(snd_tea575x_set_freq); * Linux Video interface */ =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *v) { struct snd_tea575x *tea =3D video_drvdata(file); @@ -262,7 +263,8 @@ int snd_tea575x_enum_freq_bands(struct snd_tea575x *tea, } EXPORT_SYMBOL(snd_tea575x_enum_freq_bands); =20 -static int vidioc_enum_freq_bands(struct file *file, void *priv, +static int vidioc_enum_freq_bands(struct file *file, + struct video_device_state *state, struct v4l2_frequency_band *band) { struct snd_tea575x *tea =3D video_drvdata(file); @@ -294,7 +296,8 @@ int snd_tea575x_g_tuner(struct snd_tea575x *tea, struct= v4l2_tuner *v) } EXPORT_SYMBOL(snd_tea575x_g_tuner); =20 -static int vidioc_g_tuner(struct file *file, void *priv, +static int vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *v) { struct snd_tea575x *tea =3D video_drvdata(file); @@ -302,7 +305,8 @@ static int vidioc_g_tuner(struct file *file, void *priv, return snd_tea575x_g_tuner(tea, v); } =20 -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *v) { struct snd_tea575x *tea =3D video_drvdata(file); @@ -320,7 +324,8 @@ static int vidioc_s_tuner(struct file *file, void *priv, return 0; } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct snd_tea575x *tea =3D video_drvdata(file); @@ -332,7 +337,8 @@ static int vidioc_g_frequency(struct file *file, void *= priv, return 0; } =20 -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct snd_tea575x *tea =3D video_drvdata(file); @@ -440,7 +446,8 @@ int snd_tea575x_s_hw_freq_seek(struct file *file, struc= t snd_tea575x *tea, } EXPORT_SYMBOL(snd_tea575x_s_hw_freq_seek); =20 -static int vidioc_s_hw_freq_seek(struct file *file, void *fh, +static int vidioc_s_hw_freq_seek(struct file *file, + struct video_device_state *state, const struct v4l2_hw_freq_seek *a) { struct snd_tea575x *tea =3D video_drvdata(file); diff --git a/drivers/media/test-drivers/vicodec/vicodec-core.c b/drivers/me= dia/test-drivers/vicodec/vicodec-core.c index a3df3a33237e2f2b22b74d5b65065f952b9a78d8..df5d6969ea02e44c9b0e489a0b1= 9e69751f421f3 100644 --- a/drivers/media/test-drivers/vicodec/vicodec-core.c +++ b/drivers/media/test-drivers/vicodec/vicodec-core.c @@ -694,7 +694,8 @@ static const struct v4l2_fwht_pixfmt_info *find_fmt(u32= fmt) return info; } =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, VICODEC_NAME, sizeof(cap->driver)); @@ -742,7 +743,8 @@ static int enum_fmt(struct v4l2_fmtdesc *f, struct vico= dec_ctx *ctx, return 0; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct vicodec_ctx *ctx =3D file2ctx(file); @@ -750,7 +752,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, v= oid *priv, return enum_fmt(f, ctx, false); } =20 -static int vidioc_enum_fmt_vid_out(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct vicodec_ctx *ctx =3D file2ctx(file); @@ -816,13 +819,15 @@ static int vidioc_g_fmt(struct vicodec_ctx *ctx, stru= ct v4l2_format *f) return 0; } =20 -static int vidioc_g_fmt_vid_out(struct file *file, void *priv, +static int vidioc_g_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { return vidioc_g_fmt(file2ctx(file), f); } =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { return vidioc_g_fmt(file2ctx(file), f); @@ -889,7 +894,8 @@ static int vidioc_try_fmt(struct vicodec_ctx *ctx, stru= ct v4l2_format *f) return 0; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vicodec_ctx *ctx =3D file2ctx(file); @@ -926,7 +932,8 @@ static int vidioc_try_fmt_vid_cap(struct file *file, vo= id *priv, return vidioc_try_fmt(ctx, f); } =20 -static int vidioc_try_fmt_vid_out(struct file *file, void *priv, +static int vidioc_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vicodec_ctx *ctx =3D file2ctx(file); @@ -1042,19 +1049,21 @@ static int vidioc_s_fmt(struct vicodec_ctx *ctx, st= ruct v4l2_format *f) return 0; } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int ret; =20 - ret =3D vidioc_try_fmt_vid_cap(file, priv, f); + ret =3D vidioc_try_fmt_vid_cap(file, state, f); if (ret) return ret; =20 return vidioc_s_fmt(file2ctx(file), f); } =20 -static int vidioc_s_fmt_vid_out(struct file *file, void *priv, +static int vidioc_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vicodec_ctx *ctx =3D file2ctx(file); @@ -1069,7 +1078,7 @@ static int vidioc_s_fmt_vid_out(struct file *file, vo= id *priv, q_data =3D get_q_data(ctx, f->type); q_data_cap =3D get_q_data(ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE); =20 - ret =3D vidioc_try_fmt_vid_out(file, priv, f); + ret =3D vidioc_try_fmt_vid_out(file, state, f); if (ret) return ret; =20 @@ -1131,7 +1140,8 @@ static int vidioc_s_fmt_vid_out(struct file *file, vo= id *priv, return ret; } =20 -static int vidioc_g_selection(struct file *file, void *priv, +static int vidioc_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct vicodec_ctx *ctx =3D file2ctx(file); @@ -1180,7 +1190,8 @@ static int vidioc_g_selection(struct file *file, void= *priv, return -EINVAL; } =20 -static int vidioc_s_selection(struct file *file, void *priv, +static int vidioc_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct vicodec_ctx *ctx =3D file2ctx(file); @@ -1207,20 +1218,21 @@ static int vidioc_s_selection(struct file *file, vo= id *priv, return 0; } =20 -static int vicodec_encoder_cmd(struct file *file, void *priv, +static int vicodec_encoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_encoder_cmd *ec) { struct vicodec_ctx *ctx =3D file2ctx(file); int ret; =20 - ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, priv, ec); + ret =3D v4l2_m2m_ioctl_try_encoder_cmd(file, state, ec); if (ret < 0) return ret; =20 if (!vb2_is_streaming(&ctx->fh.m2m_ctx->out_q_ctx.q)) return 0; =20 - ret =3D v4l2_m2m_ioctl_encoder_cmd(file, priv, ec); + ret =3D v4l2_m2m_ioctl_encoder_cmd(file, state, ec); if (ret < 0) return ret; =20 @@ -1235,7 +1247,8 @@ static int vicodec_encoder_cmd(struct file *file, voi= d *priv, return 0; } =20 -static int vicodec_decoder_cmd(struct file *file, void *priv, +static int vicodec_decoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_decoder_cmd *dc) { struct vicodec_ctx *ctx =3D file2ctx(file); @@ -1247,14 +1260,14 @@ static int vicodec_decoder_cmd(struct file *file, v= oid *priv, */ WARN_ON(ctx->is_stateless); =20 - ret =3D v4l2_m2m_ioctl_try_decoder_cmd(file, priv, dc); + ret =3D v4l2_m2m_ioctl_try_decoder_cmd(file, state, dc); if (ret < 0) return ret; =20 if (!vb2_is_streaming(&ctx->fh.m2m_ctx->out_q_ctx.q)) return 0; =20 - ret =3D v4l2_m2m_ioctl_decoder_cmd(file, priv, dc); + ret =3D v4l2_m2m_ioctl_decoder_cmd(file, state, dc); if (ret < 0) return ret; =20 @@ -1269,7 +1282,8 @@ static int vicodec_decoder_cmd(struct file *file, voi= d *priv, return 0; } =20 -static int vicodec_enum_framesizes(struct file *file, void *priv, +static int vicodec_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { switch (fsize->pixel_format) { diff --git a/drivers/media/test-drivers/vim2m.c b/drivers/media/test-driver= s/vim2m.c index 86c32699111adc838d4304ec0c0f0026db128d70..c89890bfede5fe1818fd2d4b0b4= 749aaa815f33a 100644 --- a/drivers/media/test-drivers/vim2m.c +++ b/drivers/media/test-drivers/vim2m.c @@ -648,7 +648,8 @@ static void device_work(struct work_struct *w) /* * video ioctls */ -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, MEM2MEM_NAME, sizeof(cap->driver)); @@ -689,19 +690,22 @@ static int enum_fmt(struct v4l2_fmtdesc *f, u32 type) return -EINVAL; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return enum_fmt(f, MEM2MEM_CAPTURE); } =20 -static int vidioc_enum_fmt_vid_out(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return enum_fmt(f, MEM2MEM_OUTPUT); } =20 -static int vidioc_enum_framesizes(struct file *file, void *priv, +static int vidioc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { if (fsize->index !=3D 0) @@ -778,7 +782,8 @@ static int vidioc_g_fmt_mplane(struct vim2m_ctx *ctx, s= truct v4l2_format *f) return 0; } =20 -static int vidioc_g_fmt_vid_out(struct file *file, void *priv, +static int vidioc_g_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vim2m_dev *dev =3D video_drvdata(file); @@ -789,7 +794,8 @@ static int vidioc_g_fmt_vid_out(struct file *file, void= *priv, return vidioc_g_fmt(file2ctx(file), f); } =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vim2m_dev *dev =3D video_drvdata(file); @@ -800,7 +806,8 @@ static int vidioc_g_fmt_vid_cap(struct file *file, void= *priv, return vidioc_g_fmt(file2ctx(file), f); } =20 -static int vidioc_g_fmt_vid_out_mplane(struct file *file, void *priv, +static int vidioc_g_fmt_vid_out_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vim2m_dev *dev =3D video_drvdata(file); @@ -811,7 +818,8 @@ static int vidioc_g_fmt_vid_out_mplane(struct file *fil= e, void *priv, return vidioc_g_fmt_mplane(file2ctx(file), f); } =20 -static int vidioc_g_fmt_vid_cap_mplane(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vim2m_dev *dev =3D video_drvdata(file); @@ -848,7 +856,8 @@ static int vidioc_try_fmt(struct v4l2_format *f, bool i= s_mplane) return ret; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vim2m_fmt *fmt; @@ -877,7 +886,8 @@ static int vidioc_try_fmt_vid_cap(struct file *file, vo= id *priv, return vidioc_try_fmt(f, false); } =20 -static int vidioc_try_fmt_vid_cap_mplane(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vim2m_fmt *fmt; @@ -906,7 +916,8 @@ static int vidioc_try_fmt_vid_cap_mplane(struct file *f= ile, void *priv, return vidioc_try_fmt(f, true); } =20 -static int vidioc_try_fmt_vid_out(struct file *file, void *priv, +static int vidioc_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vim2m_fmt *fmt; @@ -933,7 +944,8 @@ static int vidioc_try_fmt_vid_out(struct file *file, vo= id *priv, return vidioc_try_fmt(f, false); } =20 -static int vidioc_try_fmt_vid_out_mplane(struct file *file, void *priv, +static int vidioc_try_fmt_vid_out_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vim2m_fmt *fmt; @@ -1007,7 +1019,8 @@ static int vidioc_s_fmt(struct vim2m_ctx *ctx, struct= v4l2_format *f) return 0; } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int ret; @@ -1016,14 +1029,15 @@ static int vidioc_s_fmt_vid_cap(struct file *file, = void *priv, if (dev->multiplanar) return -ENOTTY; =20 - ret =3D vidioc_try_fmt_vid_cap(file, priv, f); + ret =3D vidioc_try_fmt_vid_cap(file, state, f); if (ret) return ret; =20 return vidioc_s_fmt(file2ctx(file), f); } =20 -static int vidioc_s_fmt_vid_cap_mplane(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int ret; @@ -1032,14 +1046,15 @@ static int vidioc_s_fmt_vid_cap_mplane(struct file = *file, void *priv, if (!dev->multiplanar) return -ENOTTY; =20 - ret =3D vidioc_try_fmt_vid_cap_mplane(file, priv, f); + ret =3D vidioc_try_fmt_vid_cap_mplane(file, state, f); if (ret) return ret; =20 return vidioc_s_fmt(file2ctx(file), f); } =20 -static int vidioc_s_fmt_vid_out(struct file *file, void *priv, +static int vidioc_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vim2m_ctx *ctx =3D file2ctx(file); @@ -1049,7 +1064,7 @@ static int vidioc_s_fmt_vid_out(struct file *file, vo= id *priv, if (dev->multiplanar) return -ENOTTY; =20 - ret =3D vidioc_try_fmt_vid_out(file, priv, f); + ret =3D vidioc_try_fmt_vid_out(file, state, f); if (ret) return ret; =20 @@ -1063,7 +1078,8 @@ static int vidioc_s_fmt_vid_out(struct file *file, vo= id *priv, return ret; } =20 -static int vidioc_s_fmt_vid_out_mplane(struct file *file, void *priv, +static int vidioc_s_fmt_vid_out_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vim2m_ctx *ctx =3D file2ctx(file); @@ -1073,7 +1089,7 @@ static int vidioc_s_fmt_vid_out_mplane(struct file *f= ile, void *priv, if (!dev->multiplanar) return -ENOTTY; =20 - ret =3D vidioc_try_fmt_vid_out_mplane(file, priv, f); + ret =3D vidioc_try_fmt_vid_out_mplane(file, state, f); if (ret) return ret; =20 diff --git a/drivers/media/test-drivers/vimc/vimc-capture.c b/drivers/media= /test-drivers/vimc/vimc-capture.c index 7f6124025fc9dc9716251565c504bc33ad81b345..447a76a55e68e0cf79a3087164d= 602e493dce4cd 100644 --- a/drivers/media/test-drivers/vimc/vimc-capture.c +++ b/drivers/media/test-drivers/vimc/vimc-capture.c @@ -52,7 +52,8 @@ struct vimc_capture_buffer { struct list_head list; }; =20 -static int vimc_capture_querycap(struct file *file, void *priv, +static int vimc_capture_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, VIMC_PDEV_NAME, sizeof(cap->driver)); @@ -70,7 +71,8 @@ static void vimc_capture_get_format(struct vimc_ent_devic= e *ved, *fmt =3D vcapture->format; } =20 -static int vimc_capture_g_fmt_vid_cap(struct file *file, void *priv, +static int vimc_capture_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vimc_capture_device *vcapture =3D video_drvdata(file); @@ -80,7 +82,8 @@ static int vimc_capture_g_fmt_vid_cap(struct file *file, = void *priv, return 0; } =20 -static int vimc_capture_try_fmt_vid_cap(struct file *file, void *priv, +static int vimc_capture_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct v4l2_pix_format *format =3D &f->fmt.pix; @@ -112,7 +115,8 @@ static int vimc_capture_try_fmt_vid_cap(struct file *fi= le, void *priv, return 0; } =20 -static int vimc_capture_s_fmt_vid_cap(struct file *file, void *priv, +static int vimc_capture_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vimc_capture_device *vcapture =3D video_drvdata(file); @@ -122,7 +126,7 @@ static int vimc_capture_s_fmt_vid_cap(struct file *file= , void *priv, if (vb2_is_busy(&vcapture->queue)) return -EBUSY; =20 - ret =3D vimc_capture_try_fmt_vid_cap(file, priv, f); + ret =3D vimc_capture_try_fmt_vid_cap(file, state, f); if (ret) return ret; =20 @@ -145,7 +149,8 @@ static int vimc_capture_s_fmt_vid_cap(struct file *file= , void *priv, return 0; } =20 -static int vimc_capture_enum_fmt_vid_cap(struct file *file, void *priv, +static int vimc_capture_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { const struct vimc_pix_map *vpix; @@ -167,7 +172,8 @@ static int vimc_capture_enum_fmt_vid_cap(struct file *f= ile, void *priv, return 0; } =20 -static int vimc_capture_enum_framesizes(struct file *file, void *priv, +static int vimc_capture_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { const struct vimc_pix_map *vpix; diff --git a/drivers/media/test-drivers/visl/visl-video.c b/drivers/media/t= est-drivers/visl/visl-video.c index 8be505d8908c98bb50118dfa2f491d5ac68772ec..bcba5959432df24d4011c3be20c= 3acd226540991 100644 --- a/drivers/media/test-drivers/visl/visl-video.c +++ b/drivers/media/test-drivers/visl/visl-video.c @@ -332,7 +332,8 @@ static struct visl_q_data *get_q_data(struct visl_ctx *= ctx, return NULL; } =20 -static int visl_querycap(struct file *file, void *priv, +static int visl_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, VISL_NAME, sizeof(cap->driver)); @@ -343,7 +344,8 @@ static int visl_querycap(struct file *file, void *priv, return 0; } =20 -static int visl_enum_fmt_vid_cap(struct file *file, void *priv, +static int visl_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct visl_ctx *ctx =3D visl_file_to_ctx(file); @@ -365,7 +367,8 @@ static int visl_enum_fmt_vid_cap(struct file *file, voi= d *priv, return 0; } =20 -static int visl_enum_fmt_vid_out(struct file *file, void *priv, +static int visl_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index >=3D ARRAY_SIZE(visl_coded_fmts)) @@ -375,7 +378,8 @@ static int visl_enum_fmt_vid_out(struct file *file, voi= d *priv, return 0; } =20 -static int visl_g_fmt_vid_cap(struct file *file, void *priv, +static int visl_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct visl_ctx *ctx =3D visl_file_to_ctx(file); @@ -384,7 +388,8 @@ static int visl_g_fmt_vid_cap(struct file *file, void *= priv, return 0; } =20 -static int visl_g_fmt_vid_out(struct file *file, void *priv, +static int visl_g_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct visl_ctx *ctx =3D visl_file_to_ctx(file); @@ -393,7 +398,8 @@ static int visl_g_fmt_vid_out(struct file *file, void *= priv, return 0; } =20 -static int visl_try_fmt_vid_cap(struct file *file, void *priv, +static int visl_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct v4l2_pix_format_mplane *pix_mp =3D &f->fmt.pix_mp; @@ -423,7 +429,8 @@ static int visl_try_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int visl_try_fmt_vid_out(struct file *file, void *priv, +static int visl_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct v4l2_pix_format_mplane *pix_mp =3D &f->fmt.pix_mp; @@ -449,7 +456,8 @@ static int visl_try_fmt_vid_out(struct file *file, void= *priv, return 0; } =20 -static int visl_s_fmt_vid_out(struct file *file, void *priv, +static int visl_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct visl_ctx *ctx =3D visl_file_to_ctx(file); @@ -465,7 +473,7 @@ static int visl_s_fmt_vid_out(struct file *file, void *= priv, dprintk(ctx->dev, "Trying to set the OUTPUT format to:\n"); visl_print_fmt(ctx, f); =20 - ret =3D visl_try_fmt_vid_out(file, priv, f); + ret =3D visl_try_fmt_vid_out(file, state, f); if (ret) return ret; =20 @@ -489,7 +497,8 @@ static int visl_s_fmt_vid_out(struct file *file, void *= priv, return 0; } =20 -static int visl_s_fmt_vid_cap(struct file *file, void *priv, +static int visl_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct visl_ctx *ctx =3D visl_file_to_ctx(file); @@ -498,7 +507,7 @@ static int visl_s_fmt_vid_cap(struct file *file, void *= priv, dprintk(ctx->dev, "Trying to set the CAPTURE format to:\n"); visl_print_fmt(ctx, f); =20 - ret =3D visl_try_fmt_vid_cap(file, priv, f); + ret =3D visl_try_fmt_vid_cap(file, state, f); if (ret) return ret; =20 @@ -511,7 +520,8 @@ static int visl_s_fmt_vid_cap(struct file *file, void *= priv, return 0; } =20 -static int visl_enum_framesizes(struct file *file, void *priv, +static int visl_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { const struct visl_coded_format_desc *fmt; diff --git a/drivers/media/test-drivers/vivid/vivid-core.c b/drivers/media/= test-drivers/vivid/vivid-core.c index 86506be36acb0cfacede5f000b95c0bc491ab5a8..d24c06dbae5ec38e9254a309c3d= 0869c48f45f34 100644 --- a/drivers/media/test-drivers/vivid/vivid-core.c +++ b/drivers/media/test-drivers/vivid/vivid-core.c @@ -258,7 +258,8 @@ static const u8 vivid_hdmi_edid[256] =3D { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, }; =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct vivid_dev *dev =3D video_drvdata(file); @@ -277,49 +278,57 @@ static int vidioc_querycap(struct file *file, void *= priv, return 0; } =20 -static int vidioc_s_hw_freq_seek(struct file *file, void *priv, const stru= ct v4l2_hw_freq_seek *a) +static int vidioc_s_hw_freq_seek(struct file *file, + struct video_device_state *state, + const struct v4l2_hw_freq_seek *a) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_type =3D=3D VFL_TYPE_RADIO) - return vivid_radio_rx_s_hw_freq_seek(file, priv, a); + return vivid_radio_rx_s_hw_freq_seek(file, state, a); return -ENOTTY; } =20 -static int vidioc_enum_freq_bands(struct file *file, void *priv, struct v4= l2_frequency_band *band) +static int vidioc_enum_freq_bands(struct file *file, + struct video_device_state *state, + struct v4l2_frequency_band *band) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_type =3D=3D VFL_TYPE_RADIO) - return vivid_radio_rx_enum_freq_bands(file, priv, band); + return vivid_radio_rx_enum_freq_bands(file, state, band); if (vdev->vfl_type =3D=3D VFL_TYPE_SDR) - return vivid_sdr_enum_freq_bands(file, priv, band); + return vivid_sdr_enum_freq_bands(file, state, band); return -ENOTTY; } =20 -static int vidioc_g_tuner(struct file *file, void *priv, struct v4l2_tuner= *vt) +static int vidioc_g_tuner(struct file *file, struct video_device_state *st= ate, + struct v4l2_tuner *vt) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_type =3D=3D VFL_TYPE_RADIO) - return vivid_radio_rx_g_tuner(file, priv, vt); + return vivid_radio_rx_g_tuner(file, state, vt); if (vdev->vfl_type =3D=3D VFL_TYPE_SDR) - return vivid_sdr_g_tuner(file, priv, vt); - return vivid_video_g_tuner(file, priv, vt); + return vivid_sdr_g_tuner(file, state, vt); + return vivid_video_g_tuner(file, state, vt); } =20 -static int vidioc_s_tuner(struct file *file, void *priv, const struct v4l2= _tuner *vt) +static int vidioc_s_tuner(struct file *file, struct video_device_state *st= ate, + const struct v4l2_tuner *vt) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_type =3D=3D VFL_TYPE_RADIO) - return vivid_radio_rx_s_tuner(file, priv, vt); + return vivid_radio_rx_s_tuner(file, state, vt); if (vdev->vfl_type =3D=3D VFL_TYPE_SDR) - return vivid_sdr_s_tuner(file, priv, vt); - return vivid_video_s_tuner(file, priv, vt); + return vivid_sdr_s_tuner(file, state, vt); + return vivid_video_s_tuner(file, state, vt); } =20 -static int vidioc_g_frequency(struct file *file, void *priv, struct v4l2_f= requency *vf) +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, + struct v4l2_frequency *vf) { struct vivid_dev *dev =3D video_drvdata(file); struct video_device *vdev =3D video_devdata(file); @@ -329,11 +338,13 @@ static int vidioc_g_frequency(struct file *file, void= *priv, struct v4l2_frequen vdev->vfl_dir =3D=3D VFL_DIR_RX ? &dev->radio_rx_freq : &dev->radio_tx_freq, vf); if (vdev->vfl_type =3D=3D VFL_TYPE_SDR) - return vivid_sdr_g_frequency(file, priv, vf); - return vivid_video_g_frequency(file, priv, vf); + return vivid_sdr_g_frequency(file, state, vf); + return vivid_video_g_frequency(file, state, vf); } =20 -static int vidioc_s_frequency(struct file *file, void *priv, const struct = v4l2_frequency *vf) +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, + const struct v4l2_frequency *vf) { struct vivid_dev *dev =3D video_drvdata(file); struct video_device *vdev =3D video_devdata(file); @@ -343,113 +354,125 @@ static int vidioc_s_frequency(struct file *file, vo= id *priv, const struct v4l2_f vdev->vfl_dir =3D=3D VFL_DIR_RX ? &dev->radio_rx_freq : &dev->radio_tx_freq, vf); if (vdev->vfl_type =3D=3D VFL_TYPE_SDR) - return vivid_sdr_s_frequency(file, priv, vf); - return vivid_video_s_frequency(file, priv, vf); + return vivid_sdr_s_frequency(file, state, vf); + return vivid_video_s_frequency(file, state, vf); } =20 -static int vidioc_overlay(struct file *file, void *priv, unsigned i) +static int vidioc_overlay(struct file *file, struct video_device_state *st= ate, + unsigned int i) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_dir =3D=3D VFL_DIR_RX) return -ENOTTY; - return vivid_vid_out_overlay(file, priv, i); + return vivid_vid_out_overlay(file, state, i); } =20 -static int vidioc_g_fbuf(struct file *file, void *priv, struct v4l2_frameb= uffer *a) +static int vidioc_g_fbuf(struct file *file, struct video_device_state *sta= te, + struct v4l2_framebuffer *a) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_dir =3D=3D VFL_DIR_RX) return -ENOTTY; - return vivid_vid_out_g_fbuf(file, priv, a); + return vivid_vid_out_g_fbuf(file, state, a); } =20 -static int vidioc_s_fbuf(struct file *file, void *priv, const struct v4l2_= framebuffer *a) +static int vidioc_s_fbuf(struct file *file, struct video_device_state *sta= te, + const struct v4l2_framebuffer *a) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_dir =3D=3D VFL_DIR_RX) return -ENOTTY; - return vivid_vid_out_s_fbuf(file, priv, a); + return vivid_vid_out_s_fbuf(file, state, a); } =20 -static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id) +static int vidioc_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id id) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_dir =3D=3D VFL_DIR_RX) - return vivid_vid_cap_s_std(file, priv, id); - return vivid_vid_out_s_std(file, priv, id); + return vivid_vid_cap_s_std(file, state, id); + return vivid_vid_out_s_std(file, state, id); } =20 -static int vidioc_s_dv_timings(struct file *file, void *priv, struct v4l2_= dv_timings *timings) +static int vidioc_s_dv_timings(struct file *file, + struct video_device_state *state, + struct v4l2_dv_timings *timings) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_dir =3D=3D VFL_DIR_RX) - return vivid_vid_cap_s_dv_timings(file, priv, timings); - return vivid_vid_out_s_dv_timings(file, priv, timings); + return vivid_vid_cap_s_dv_timings(file, state, timings); + return vivid_vid_out_s_dv_timings(file, state, timings); } =20 -static int vidioc_g_pixelaspect(struct file *file, void *priv, - int type, struct v4l2_fract *f) +static int vidioc_g_pixelaspect(struct file *file, + struct video_device_state *state, int type, + struct v4l2_fract *f) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_dir =3D=3D VFL_DIR_RX) - return vivid_vid_cap_g_pixelaspect(file, priv, type, f); - return vivid_vid_out_g_pixelaspect(file, priv, type, f); + return vivid_vid_cap_g_pixelaspect(file, state, type, f); + return vivid_vid_out_g_pixelaspect(file, state, type, f); } =20 -static int vidioc_g_selection(struct file *file, void *priv, +static int vidioc_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_dir =3D=3D VFL_DIR_RX) - return vivid_vid_cap_g_selection(file, priv, sel); - return vivid_vid_out_g_selection(file, priv, sel); + return vivid_vid_cap_g_selection(file, state, sel); + return vivid_vid_out_g_selection(file, state, sel); } =20 -static int vidioc_s_selection(struct file *file, void *priv, +static int vidioc_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_dir =3D=3D VFL_DIR_RX) - return vivid_vid_cap_s_selection(file, priv, sel); - return vivid_vid_out_s_selection(file, priv, sel); + return vivid_vid_cap_s_selection(file, state, sel); + return vivid_vid_out_s_selection(file, state, sel); } =20 -static int vidioc_g_parm(struct file *file, void *priv, +static int vidioc_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_type =3D=3D VFL_TYPE_TOUCH) - return vivid_g_parm_tch(file, priv, parm); + return vivid_g_parm_tch(file, state, parm); if (vdev->vfl_dir =3D=3D VFL_DIR_RX) - return vivid_vid_cap_g_parm(file, priv, parm); - return vivid_vid_out_g_parm(file, priv, parm); + return vivid_vid_cap_g_parm(file, state, parm); + return vivid_vid_out_g_parm(file, state, parm); } =20 -static int vidioc_s_parm(struct file *file, void *priv, +static int vidioc_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_dir =3D=3D VFL_DIR_RX) - return vivid_vid_cap_s_parm(file, priv, parm); + return vivid_vid_cap_s_parm(file, state, parm); return -ENOTTY; } =20 -static int vidioc_log_status(struct file *file, void *priv) +static int vidioc_log_status(struct file *file, + struct video_device_state *state) { struct vivid_dev *dev =3D video_drvdata(file); struct video_device *vdev =3D video_devdata(file); =20 - v4l2_ctrl_log_status(file, priv); + v4l2_ctrl_log_status(file, state); if (vdev->vfl_dir =3D=3D VFL_DIR_RX && vdev->vfl_type =3D=3D VFL_TYPE_VID= EO) tpg_log_status(&dev->tpg); return 0; @@ -484,102 +507,112 @@ static __poll_t vivid_radio_poll(struct file *file,= struct poll_table_struct *wa return vivid_radio_tx_poll(file, wait); } =20 -static int vivid_enum_input(struct file *file, void *priv, +static int vivid_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_type =3D=3D VFL_TYPE_TOUCH) - return vivid_enum_input_tch(file, priv, inp); - return vidioc_enum_input(file, priv, inp); + return vivid_enum_input_tch(file, state, inp); + return vidioc_enum_input(file, state, inp); } =20 -static int vivid_g_input(struct file *file, void *priv, unsigned int *i) +static int vivid_g_input(struct file *file, struct video_device_state *sta= te, + unsigned int *i) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_type =3D=3D VFL_TYPE_TOUCH) - return vivid_g_input_tch(file, priv, i); - return vidioc_g_input(file, priv, i); + return vivid_g_input_tch(file, state, i); + return vidioc_g_input(file, state, i); } =20 -static int vivid_s_input(struct file *file, void *priv, unsigned int i) +static int vivid_s_input(struct file *file, struct video_device_state *sta= te, + unsigned int i) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_type =3D=3D VFL_TYPE_TOUCH) - return vivid_s_input_tch(file, priv, i); - return vidioc_s_input(file, priv, i); + return vivid_s_input_tch(file, state, i); + return vidioc_s_input(file, state, i); } =20 -static int vivid_enum_fmt_cap(struct file *file, void *priv, +static int vivid_enum_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_type =3D=3D VFL_TYPE_TOUCH) - return vivid_enum_fmt_tch(file, priv, f); - return vivid_enum_fmt_vid(file, priv, f); + return vivid_enum_fmt_tch(file, state, f); + return vivid_enum_fmt_vid(file, state, f); } =20 -static int vivid_g_fmt_cap(struct file *file, void *priv, +static int vivid_g_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_type =3D=3D VFL_TYPE_TOUCH) - return vivid_g_fmt_tch(file, priv, f); - return vidioc_g_fmt_vid_cap(file, priv, f); + return vivid_g_fmt_tch(file, state, f); + return vidioc_g_fmt_vid_cap(file, state, f); } =20 -static int vivid_try_fmt_cap(struct file *file, void *priv, +static int vivid_try_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_type =3D=3D VFL_TYPE_TOUCH) - return vivid_g_fmt_tch(file, priv, f); - return vidioc_try_fmt_vid_cap(file, priv, f); + return vivid_g_fmt_tch(file, state, f); + return vidioc_try_fmt_vid_cap(file, state, f); } =20 -static int vivid_s_fmt_cap(struct file *file, void *priv, +static int vivid_s_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_type =3D=3D VFL_TYPE_TOUCH) - return vivid_g_fmt_tch(file, priv, f); - return vidioc_s_fmt_vid_cap(file, priv, f); + return vivid_g_fmt_tch(file, state, f); + return vidioc_s_fmt_vid_cap(file, state, f); } =20 -static int vivid_g_fmt_cap_mplane(struct file *file, void *priv, +static int vivid_g_fmt_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_type =3D=3D VFL_TYPE_TOUCH) - return vivid_g_fmt_tch_mplane(file, priv, f); - return vidioc_g_fmt_vid_cap_mplane(file, priv, f); + return vivid_g_fmt_tch_mplane(file, state, f); + return vidioc_g_fmt_vid_cap_mplane(file, state, f); } =20 -static int vivid_try_fmt_cap_mplane(struct file *file, void *priv, +static int vivid_try_fmt_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_type =3D=3D VFL_TYPE_TOUCH) - return vivid_g_fmt_tch_mplane(file, priv, f); - return vidioc_try_fmt_vid_cap_mplane(file, priv, f); + return vivid_g_fmt_tch_mplane(file, state, f); + return vidioc_try_fmt_vid_cap_mplane(file, state, f); } =20 -static int vivid_s_fmt_cap_mplane(struct file *file, void *priv, +static int vivid_s_fmt_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct video_device *vdev =3D video_devdata(file); =20 if (vdev->vfl_type =3D=3D VFL_TYPE_TOUCH) - return vivid_g_fmt_tch_mplane(file, priv, f); - return vidioc_s_fmt_vid_cap_mplane(file, priv, f); + return vivid_g_fmt_tch_mplane(file, state, f); + return vidioc_s_fmt_vid_cap_mplane(file, state, f); } =20 static bool vivid_is_in_use(bool valid, struct video_device *vdev) @@ -689,7 +722,8 @@ static const struct v4l2_file_operations vivid_radio_fo= ps =3D { .unlocked_ioctl =3D video_ioctl2, }; =20 -static int vidioc_reqbufs(struct file *file, void *priv, +static int vidioc_reqbufs(struct file *file, + struct video_device_state *state, struct v4l2_requestbuffers *p) { struct video_device *vdev =3D video_devdata(file); @@ -706,10 +740,11 @@ static int vidioc_reqbufs(struct file *file, void *pr= iv, return r; } =20 - return vb2_ioctl_reqbufs(file, priv, p); + return vb2_ioctl_reqbufs(file, state, p); } =20 -static int vidioc_create_bufs(struct file *file, void *priv, +static int vidioc_create_bufs(struct file *file, + struct video_device_state *state, struct v4l2_create_buffers *p) { struct video_device *vdev =3D video_devdata(file); @@ -726,7 +761,7 @@ static int vidioc_create_bufs(struct file *file, void *= priv, return r; } =20 - return vb2_ioctl_create_bufs(file, priv, p); + return vb2_ioctl_create_bufs(file, state, p); } =20 static const struct v4l2_ioctl_ops vivid_ioctl_ops =3D { diff --git a/drivers/media/test-drivers/vivid/vivid-meta-cap.c b/drivers/me= dia/test-drivers/vivid/vivid-meta-cap.c index c7aaecc0b5a24726639a253accfc50383a84e846..3206ccdeb377f54b76d8fde199a= a6e4049ff8aae 100644 --- a/drivers/media/test-drivers/vivid/vivid-meta-cap.c +++ b/drivers/media/test-drivers/vivid/vivid-meta-cap.c @@ -124,7 +124,8 @@ const struct vb2_ops vivid_meta_cap_qops =3D { .buf_request_complete =3D meta_cap_buf_request_complete, }; =20 -int vidioc_enum_fmt_meta_cap(struct file *file, void *priv, +int vidioc_enum_fmt_meta_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct vivid_dev *dev =3D video_drvdata(file); @@ -140,7 +141,8 @@ int vidioc_enum_fmt_meta_cap(struct file *file, void *= priv, return 0; } =20 -int vidioc_g_fmt_meta_cap(struct file *file, void *priv, +int vidioc_g_fmt_meta_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); diff --git a/drivers/media/test-drivers/vivid/vivid-meta-cap.h b/drivers/me= dia/test-drivers/vivid/vivid-meta-cap.h index 4670d00d1576df0e41a961ad5d5040d92787dfa1..c11758df76c3f86d0972b653ebb= eefe4d8601d22 100644 --- a/drivers/media/test-drivers/vivid/vivid-meta-cap.h +++ b/drivers/media/test-drivers/vivid/vivid-meta-cap.h @@ -18,10 +18,12 @@ struct vivid_uvc_meta_buf { void vivid_meta_cap_fillbuff(struct vivid_dev *dev, struct vivid_buffer *buf, u64 soe); =20 -int vidioc_enum_fmt_meta_cap(struct file *file, void *priv, +int vidioc_enum_fmt_meta_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f); =20 -int vidioc_g_fmt_meta_cap(struct file *file, void *priv, +int vidioc_g_fmt_meta_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f); =20 extern const struct vb2_ops vivid_meta_cap_qops; diff --git a/drivers/media/test-drivers/vivid/vivid-meta-out.c b/drivers/me= dia/test-drivers/vivid/vivid-meta-out.c index 55e5e5dec2f2ab1bdc01a2d1d479a6f1eb758299..9b6b556c475f713e23098d9b62d= ce71945295dac 100644 --- a/drivers/media/test-drivers/vivid/vivid-meta-out.c +++ b/drivers/media/test-drivers/vivid/vivid-meta-out.c @@ -124,7 +124,8 @@ const struct vb2_ops vivid_meta_out_qops =3D { .buf_request_complete =3D meta_out_buf_request_complete, }; =20 -int vidioc_enum_fmt_meta_out(struct file *file, void *priv, +int vidioc_enum_fmt_meta_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct vivid_dev *dev =3D video_drvdata(file); @@ -140,7 +141,8 @@ int vidioc_enum_fmt_meta_out(struct file *file, void *= priv, return 0; } =20 -int vidioc_g_fmt_meta_out(struct file *file, void *priv, +int vidioc_g_fmt_meta_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); diff --git a/drivers/media/test-drivers/vivid/vivid-meta-out.h b/drivers/me= dia/test-drivers/vivid/vivid-meta-out.h index 0c639b7c284276f4c5e5180b765dbc17d884927f..dc3594de999a052708fb3594456= 5e939357ac36a 100644 --- a/drivers/media/test-drivers/vivid/vivid-meta-out.h +++ b/drivers/media/test-drivers/vivid/vivid-meta-out.h @@ -13,11 +13,14 @@ struct vivid_meta_out_buf { }; =20 void vivid_meta_out_process(struct vivid_dev *dev, struct vivid_buffer *bu= f); -int vidioc_enum_fmt_meta_out(struct file *file, void *priv, +int vidioc_enum_fmt_meta_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f); -int vidioc_g_fmt_meta_out(struct file *file, void *priv, +int vidioc_g_fmt_meta_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f); -int vidioc_s_fmt_meta_out(struct file *file, void *priv, +int vidioc_s_fmt_meta_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f); =20 extern const struct vb2_ops vivid_meta_out_qops; diff --git a/drivers/media/test-drivers/vivid/vivid-radio-rx.c b/drivers/me= dia/test-drivers/vivid/vivid-radio-rx.c index b5e3026f883ee69d48db552623d7961677eb91fd..7ff89e6488fcde1d8ff2a1a996a= 3ac8d2d0dca83 100644 --- a/drivers/media/test-drivers/vivid/vivid-radio-rx.c +++ b/drivers/media/test-drivers/vivid/vivid-radio-rx.c @@ -133,7 +133,9 @@ __poll_t vivid_radio_rx_poll(struct file *file, struct = poll_table_struct *wait) return EPOLLIN | EPOLLRDNORM | v4l2_ctrl_poll(file, wait); } =20 -int vivid_radio_rx_enum_freq_bands(struct file *file, void *priv, struct v= 4l2_frequency_band *band) +int vivid_radio_rx_enum_freq_bands(struct file *file, + struct video_device_state *state, + struct v4l2_frequency_band *band) { if (band->tuner !=3D 0) return -EINVAL; @@ -145,7 +147,9 @@ int vivid_radio_rx_enum_freq_bands(struct file *file, v= oid *priv, struct v4l2_fr return 0; } =20 -int vivid_radio_rx_s_hw_freq_seek(struct file *file, void *priv, const str= uct v4l2_hw_freq_seek *a) +int vivid_radio_rx_s_hw_freq_seek(struct file *file, + struct video_device_state *state, + const struct v4l2_hw_freq_seek *a) { struct vivid_dev *dev =3D video_drvdata(file); unsigned low, high; @@ -214,7 +218,9 @@ int vivid_radio_rx_s_hw_freq_seek(struct file *file, vo= id *priv, const struct v4 return 0; } =20 -int vivid_radio_rx_g_tuner(struct file *file, void *priv, struct v4l2_tune= r *vt) +int vivid_radio_rx_g_tuner(struct file *file, + struct video_device_state *state, + struct v4l2_tuner *vt) { struct vivid_dev *dev =3D video_drvdata(file); int delta =3D 800; @@ -267,7 +273,9 @@ int vivid_radio_rx_g_tuner(struct file *file, void *pri= v, struct v4l2_tuner *vt) return 0; } =20 -int vivid_radio_rx_s_tuner(struct file *file, void *priv, const struct v4l= 2_tuner *vt) +int vivid_radio_rx_s_tuner(struct file *file, + struct video_device_state *state, + const struct v4l2_tuner *vt) { struct vivid_dev *dev =3D video_drvdata(file); =20 diff --git a/drivers/media/test-drivers/vivid/vivid-radio-rx.h b/drivers/me= dia/test-drivers/vivid/vivid-radio-rx.h index a2ae17c78ecee08d42cd3a8e8d30b01caec1bb99..30dcb534862b80d2447e089c310= 41406ae07e284 100644 --- a/drivers/media/test-drivers/vivid/vivid-radio-rx.h +++ b/drivers/media/test-drivers/vivid/vivid-radio-rx.h @@ -11,9 +11,17 @@ ssize_t vivid_radio_rx_read(struct file *, char __user *, size_t, loff_t *= ); __poll_t vivid_radio_rx_poll(struct file *file, struct poll_table_struct *= wait); =20 -int vivid_radio_rx_enum_freq_bands(struct file *file, void *priv, struct v= 4l2_frequency_band *band); -int vivid_radio_rx_s_hw_freq_seek(struct file *file, void *priv, const str= uct v4l2_hw_freq_seek *a); -int vivid_radio_rx_g_tuner(struct file *file, void *priv, struct v4l2_tune= r *vt); -int vivid_radio_rx_s_tuner(struct file *file, void *priv, const struct v4l= 2_tuner *vt); +int vivid_radio_rx_enum_freq_bands(struct file *file, + struct video_device_state *state, + struct v4l2_frequency_band *band); +int vivid_radio_rx_s_hw_freq_seek(struct file *file, + struct video_device_state *state, + const struct v4l2_hw_freq_seek *a); +int vivid_radio_rx_g_tuner(struct file *file, + struct video_device_state *state, + struct v4l2_tuner *vt); +int vivid_radio_rx_s_tuner(struct file *file, + struct video_device_state *state, + const struct v4l2_tuner *vt); =20 #endif diff --git a/drivers/media/test-drivers/vivid/vivid-radio-tx.c b/drivers/me= dia/test-drivers/vivid/vivid-radio-tx.c index ada60722066eaceef1371d711e5bc408ff0fa6b3..a81b74b45a6441a43c0773326d2= a39d4fc5544f7 100644 --- a/drivers/media/test-drivers/vivid/vivid-radio-tx.c +++ b/drivers/media/test-drivers/vivid/vivid-radio-tx.c @@ -96,7 +96,8 @@ __poll_t vivid_radio_tx_poll(struct file *file, struct po= ll_table_struct *wait) return EPOLLOUT | EPOLLWRNORM | v4l2_ctrl_poll(file, wait); } =20 -int vidioc_g_modulator(struct file *file, void *priv, struct v4l2_modulato= r *a) +int vidioc_g_modulator(struct file *file, struct video_device_state *state, + struct v4l2_modulator *a) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -115,7 +116,8 @@ int vidioc_g_modulator(struct file *file, void *priv, s= truct v4l2_modulator *a) return 0; } =20 -int vidioc_s_modulator(struct file *file, void *priv, const struct v4l2_mo= dulator *a) +int vidioc_s_modulator(struct file *file, struct video_device_state *state, + const struct v4l2_modulator *a) { struct vivid_dev *dev =3D video_drvdata(file); =20 diff --git a/drivers/media/test-drivers/vivid/vivid-radio-tx.h b/drivers/me= dia/test-drivers/vivid/vivid-radio-tx.h index 20cb6f1363ffd07805d1c7c86f6d4111ac5948a5..d2e636e20dac373058d04e72f41= c7d3a0f0d6f9b 100644 --- a/drivers/media/test-drivers/vivid/vivid-radio-tx.h +++ b/drivers/media/test-drivers/vivid/vivid-radio-tx.h @@ -11,7 +11,9 @@ ssize_t vivid_radio_tx_write(struct file *, const char __user *, size_t, l= off_t *); __poll_t vivid_radio_tx_poll(struct file *file, struct poll_table_struct *= wait); =20 -int vidioc_g_modulator(struct file *file, void *priv, struct v4l2_modulato= r *a); -int vidioc_s_modulator(struct file *file, void *priv, const struct v4l2_mo= dulator *a); +int vidioc_g_modulator(struct file *file, struct video_device_state *state, + struct v4l2_modulator *a); +int vidioc_s_modulator(struct file *file, struct video_device_state *state, + const struct v4l2_modulator *a); =20 #endif diff --git a/drivers/media/test-drivers/vivid/vivid-sdr-cap.c b/drivers/med= ia/test-drivers/vivid/vivid-sdr-cap.c index 2664a593e8e1b5b03b0aec03169359c238cca205..0a8b78f423ba56425b917491bb1= cfa256a558137 100644 --- a/drivers/media/test-drivers/vivid/vivid-sdr-cap.c +++ b/drivers/media/test-drivers/vivid/vivid-sdr-cap.c @@ -344,7 +344,8 @@ const struct vb2_ops vivid_sdr_cap_qops =3D { .buf_request_complete =3D sdr_cap_buf_request_complete, }; =20 -int vivid_sdr_enum_freq_bands(struct file *file, void *priv, +int vivid_sdr_enum_freq_bands(struct file *file, + struct video_device_state *state, struct v4l2_frequency_band *band) { switch (band->tuner) { @@ -363,8 +364,8 @@ int vivid_sdr_enum_freq_bands(struct file *file, void *= priv, } } =20 -int vivid_sdr_g_frequency(struct file *file, void *priv, - struct v4l2_frequency *vf) +int vivid_sdr_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *vf) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -382,7 +383,8 @@ int vivid_sdr_g_frequency(struct file *file, void *priv, } } =20 -int vivid_sdr_s_frequency(struct file *file, void *priv, +int vivid_sdr_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *vf) { struct vivid_dev *dev =3D video_drvdata(file); @@ -423,7 +425,8 @@ int vivid_sdr_s_frequency(struct file *file, void *priv, } } =20 -int vivid_sdr_g_tuner(struct file *file, void *priv, struct v4l2_tuner *vt) +int vivid_sdr_g_tuner(struct file *file, struct video_device_state *state, + struct v4l2_tuner *vt) { switch (vt->index) { case 0: @@ -447,14 +450,17 @@ int vivid_sdr_g_tuner(struct file *file, void *priv, = struct v4l2_tuner *vt) } } =20 -int vivid_sdr_s_tuner(struct file *file, void *priv, const struct v4l2_tun= er *vt) +int vivid_sdr_s_tuner(struct file *file, struct video_device_state *state, + const struct v4l2_tuner *vt) { if (vt->index > 1) return -EINVAL; return 0; } =20 -int vidioc_enum_fmt_sdr_cap(struct file *file, void *priv, struct v4l2_fmt= desc *f) +int vidioc_enum_fmt_sdr_cap(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *f) { if (f->index >=3D ARRAY_SIZE(formats)) return -EINVAL; @@ -462,7 +468,8 @@ int vidioc_enum_fmt_sdr_cap(struct file *file, void *pr= iv, struct v4l2_fmtdesc * return 0; } =20 -int vidioc_g_fmt_sdr_cap(struct file *file, void *priv, struct v4l2_format= *f) +int vidioc_g_fmt_sdr_cap(struct file *file, struct video_device_state *sta= te, + struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -471,7 +478,8 @@ int vidioc_g_fmt_sdr_cap(struct file *file, void *priv,= struct v4l2_format *f) return 0; } =20 -int vidioc_s_fmt_sdr_cap(struct file *file, void *priv, struct v4l2_format= *f) +int vidioc_s_fmt_sdr_cap(struct file *file, struct video_device_state *sta= te, + struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); struct vb2_queue *q =3D &dev->vb_sdr_cap_q; @@ -495,7 +503,9 @@ int vidioc_s_fmt_sdr_cap(struct file *file, void *priv,= struct v4l2_format *f) return 0; } =20 -int vidioc_try_fmt_sdr_cap(struct file *file, void *priv, struct v4l2_form= at *f) +int vidioc_try_fmt_sdr_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { int i; =20 diff --git a/drivers/media/test-drivers/vivid/vivid-sdr-cap.h b/drivers/med= ia/test-drivers/vivid/vivid-sdr-cap.h index 3d8eeabbfc1073e6aab1ce493442a4ae10b36369..55417622cf6c8bf2166abcb7c65= e0a346e0ec5bb 100644 --- a/drivers/media/test-drivers/vivid/vivid-sdr-cap.h +++ b/drivers/media/test-drivers/vivid/vivid-sdr-cap.h @@ -8,15 +8,27 @@ #ifndef _VIVID_SDR_CAP_H_ #define _VIVID_SDR_CAP_H_ =20 -int vivid_sdr_enum_freq_bands(struct file *file, void *priv, struct v4l2_f= requency_band *band); -int vivid_sdr_g_frequency(struct file *file, void *priv, struct v4l2_frequ= ency *vf); -int vivid_sdr_s_frequency(struct file *file, void *priv, const struct v4l2= _frequency *vf); -int vivid_sdr_g_tuner(struct file *file, void *priv, struct v4l2_tuner *vt= ); -int vivid_sdr_s_tuner(struct file *file, void *priv, const struct v4l2_tun= er *vt); -int vidioc_enum_fmt_sdr_cap(struct file *file, void *priv, struct v4l2_fmt= desc *f); -int vidioc_g_fmt_sdr_cap(struct file *file, void *priv, struct v4l2_format= *f); -int vidioc_s_fmt_sdr_cap(struct file *file, void *priv, struct v4l2_format= *f); -int vidioc_try_fmt_sdr_cap(struct file *file, void *priv, struct v4l2_form= at *f); +int vivid_sdr_enum_freq_bands(struct file *file, + struct video_device_state *state, + struct v4l2_frequency_band *band); +int vivid_sdr_g_frequency(struct file *file, struct video_device_state *st= ate, + struct v4l2_frequency *vf); +int vivid_sdr_s_frequency(struct file *file, struct video_device_state *st= ate, + const struct v4l2_frequency *vf); +int vivid_sdr_g_tuner(struct file *file, struct video_device_state *state, + struct v4l2_tuner *vt); +int vivid_sdr_s_tuner(struct file *file, struct video_device_state *state, + const struct v4l2_tuner *vt); +int vidioc_enum_fmt_sdr_cap(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *f); +int vidioc_g_fmt_sdr_cap(struct file *file, struct video_device_state *sta= te, + struct v4l2_format *f); +int vidioc_s_fmt_sdr_cap(struct file *file, struct video_device_state *sta= te, + struct v4l2_format *f); +int vidioc_try_fmt_sdr_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f); void vivid_sdr_cap_process(struct vivid_dev *dev, struct vivid_buffer *buf= ); =20 extern const struct vb2_ops vivid_sdr_cap_qops; diff --git a/drivers/media/test-drivers/vivid/vivid-touch-cap.c b/drivers/m= edia/test-drivers/vivid/vivid-touch-cap.c index 36a781fa17bc3daaf1d949a7f1c94ebb9aecb7c0..e246d7006913e959089d7bff84f= beb9f3eb3cb13 100644 --- a/drivers/media/test-drivers/vivid/vivid-touch-cap.c +++ b/drivers/media/test-drivers/vivid/vivid-touch-cap.c @@ -112,7 +112,8 @@ const struct vb2_ops vivid_touch_cap_qops =3D { .buf_request_complete =3D touch_cap_buf_request_complete, }; =20 -int vivid_enum_fmt_tch(struct file *file, void *priv, struct v4l2_fmtdesc= *f) +int vivid_enum_fmt_tch(struct file *file, struct video_device_state *state, + struct v4l2_fmtdesc *f) { if (f->index) return -EINVAL; @@ -121,7 +122,8 @@ int vivid_enum_fmt_tch(struct file *file, void *priv, = struct v4l2_fmtdesc *f) return 0; } =20 -int vivid_g_fmt_tch(struct file *file, void *priv, struct v4l2_format *f) +int vivid_g_fmt_tch(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -131,7 +133,9 @@ int vivid_g_fmt_tch(struct file *file, void *priv, stru= ct v4l2_format *f) return 0; } =20 -int vivid_g_fmt_tch_mplane(struct file *file, void *priv, struct v4l2_form= at *f) +int vivid_g_fmt_tch_mplane(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); struct v4l2_format sp_fmt; @@ -144,7 +148,8 @@ int vivid_g_fmt_tch_mplane(struct file *file, void *pri= v, struct v4l2_format *f) return 0; } =20 -int vivid_g_parm_tch(struct file *file, void *priv, +int vivid_g_parm_tch(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct vivid_dev *dev =3D video_drvdata(file); @@ -160,7 +165,8 @@ int vivid_g_parm_tch(struct file *file, void *priv, return 0; } =20 -int vivid_enum_input_tch(struct file *file, void *priv, struct v4l2_input = *inp) +int vivid_enum_input_tch(struct file *file, struct video_device_state *sta= te, + struct v4l2_input *inp) { if (inp->index) return -EINVAL; @@ -171,7 +177,8 @@ int vivid_enum_input_tch(struct file *file, void *priv,= struct v4l2_input *inp) return 0; } =20 -int vivid_g_input_tch(struct file *file, void *priv, unsigned int *i) +int vivid_g_input_tch(struct file *file, struct video_device_state *state, + unsigned int *i) { *i =3D 0; return 0; @@ -194,7 +201,8 @@ int vivid_set_touch(struct vivid_dev *dev, unsigned int= i) return 0; } =20 -int vivid_s_input_tch(struct file *file, void *priv, unsigned int i) +int vivid_s_input_tch(struct file *file, struct video_device_state *state, + unsigned int i) { return vivid_set_touch(video_drvdata(file), i); } diff --git a/drivers/media/test-drivers/vivid/vivid-touch-cap.h b/drivers/m= edia/test-drivers/vivid/vivid-touch-cap.h index 07e514046ae80f1347aec00f1da1cdaa7acc4721..19dd5cb343fc67815d3c3b84d30= ed99c634167a3 100644 --- a/drivers/media/test-drivers/vivid/vivid-touch-cap.h +++ b/drivers/media/test-drivers/vivid/vivid-touch-cap.h @@ -26,14 +26,22 @@ enum vivid_tch_test { =20 extern const struct vb2_ops vivid_touch_cap_qops; =20 -int vivid_enum_fmt_tch(struct file *file, void *priv, struct v4l2_fmtdesc= *f); -int vivid_g_fmt_tch(struct file *file, void *priv, struct v4l2_format *f); -int vivid_g_fmt_tch_mplane(struct file *file, void *priv, struct v4l2_form= at *f); -int vivid_enum_input_tch(struct file *file, void *priv, struct v4l2_input = *inp); -int vivid_g_input_tch(struct file *file, void *priv, unsigned int *i); -int vivid_s_input_tch(struct file *file, void *priv, unsigned int i); +int vivid_enum_fmt_tch(struct file *file, struct video_device_state *state, + struct v4l2_fmtdesc *f); +int vivid_g_fmt_tch(struct file *file, struct video_device_state *state, + struct v4l2_format *f); +int vivid_g_fmt_tch_mplane(struct file *file, + struct video_device_state *state, + struct v4l2_format *f); +int vivid_enum_input_tch(struct file *file, struct video_device_state *sta= te, + struct v4l2_input *inp); +int vivid_g_input_tch(struct file *file, struct video_device_state *state, + unsigned int *i); +int vivid_s_input_tch(struct file *file, struct video_device_state *state, + unsigned int i); void vivid_fillbuff_tch(struct vivid_dev *dev, struct vivid_buffer *buf); int vivid_set_touch(struct vivid_dev *dev, unsigned int i); -int vivid_g_parm_tch(struct file *file, void *priv, +int vivid_g_parm_tch(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm); #endif diff --git a/drivers/media/test-drivers/vivid/vivid-vbi-cap.c b/drivers/med= ia/test-drivers/vivid/vivid-vbi-cap.c index 791382a54b4f0a111cf32a4dca82e57a8c1c2da9..fa2fc5613fd8df12886a985da70= dda65183b012e 100644 --- a/drivers/media/test-drivers/vivid/vivid-vbi-cap.c +++ b/drivers/media/test-drivers/vivid/vivid-vbi-cap.c @@ -232,7 +232,8 @@ const struct vb2_ops vivid_vbi_cap_qops =3D { .buf_request_complete =3D vbi_cap_buf_request_complete, }; =20 -int vidioc_g_fmt_vbi_cap(struct file *file, void *priv, +int vidioc_g_fmt_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); @@ -245,11 +246,12 @@ int vidioc_g_fmt_vbi_cap(struct file *file, void *pri= v, return 0; } =20 -int vidioc_s_fmt_vbi_cap(struct file *file, void *priv, +int vidioc_s_fmt_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); - int ret =3D vidioc_g_fmt_vbi_cap(file, priv, f); + int ret =3D vidioc_g_fmt_vbi_cap(file, state, f); =20 if (ret) return ret; @@ -282,7 +284,9 @@ void vivid_fill_service_lines(struct v4l2_sliced_vbi_fo= rmat *vbi, u32 service_se } } =20 -int vidioc_g_fmt_sliced_vbi_cap(struct file *file, void *priv, struct v4l2= _format *fmt) +int vidioc_g_fmt_sliced_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct vivid_dev *dev =3D video_drvdata(file); struct v4l2_sliced_vbi_format *vbi =3D &fmt->fmt.sliced; @@ -294,7 +298,9 @@ int vidioc_g_fmt_sliced_vbi_cap(struct file *file, void= *priv, struct v4l2_forma return 0; } =20 -int vidioc_try_fmt_sliced_vbi_cap(struct file *file, void *priv, struct v4= l2_format *fmt) +int vidioc_try_fmt_sliced_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct vivid_dev *dev =3D video_drvdata(file); struct v4l2_sliced_vbi_format *vbi =3D &fmt->fmt.sliced; @@ -310,11 +316,13 @@ int vidioc_try_fmt_sliced_vbi_cap(struct file *file, = void *priv, struct v4l2_for return 0; } =20 -int vidioc_s_fmt_sliced_vbi_cap(struct file *file, void *priv, struct v4l2= _format *fmt) +int vidioc_s_fmt_sliced_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct vivid_dev *dev =3D video_drvdata(file); struct v4l2_sliced_vbi_format *vbi =3D &fmt->fmt.sliced; - int ret =3D vidioc_try_fmt_sliced_vbi_cap(file, priv, fmt); + int ret =3D vidioc_try_fmt_sliced_vbi_cap(file, state, fmt); =20 if (ret) return ret; @@ -324,7 +332,9 @@ int vidioc_s_fmt_sliced_vbi_cap(struct file *file, void= *priv, struct v4l2_forma return 0; } =20 -int vidioc_g_sliced_vbi_cap(struct file *file, void *priv, struct v4l2_sli= ced_vbi_cap *cap) +int vidioc_g_sliced_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_sliced_vbi_cap *cap) { struct vivid_dev *dev =3D video_drvdata(file); struct video_device *vdev =3D video_devdata(file); diff --git a/drivers/media/test-drivers/vivid/vivid-vbi-cap.h b/drivers/med= ia/test-drivers/vivid/vivid-vbi-cap.h index ec2d200c9e0d3506abf12e198ff4c308fdf68f90..054a939863aad7d30be10ed1325= 6583a4fe0227e 100644 --- a/drivers/media/test-drivers/vivid/vivid-vbi-cap.h +++ b/drivers/media/test-drivers/vivid/vivid-vbi-cap.h @@ -12,14 +12,24 @@ void vivid_fill_time_of_day_packet(u8 *packet); void vivid_raw_vbi_cap_process(struct vivid_dev *dev, struct vivid_buffer = *buf); void vivid_sliced_vbi_cap_process(struct vivid_dev *dev, struct vivid_buff= er *buf); void vivid_sliced_vbi_out_process(struct vivid_dev *dev, struct vivid_buff= er *buf); -int vidioc_g_fmt_vbi_cap(struct file *file, void *priv, +int vidioc_g_fmt_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f); -int vidioc_s_fmt_vbi_cap(struct file *file, void *priv, +int vidioc_s_fmt_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f); -int vidioc_g_fmt_sliced_vbi_cap(struct file *file, void *priv, struct v4l2= _format *fmt); -int vidioc_try_fmt_sliced_vbi_cap(struct file *file, void *priv, struct v4= l2_format *fmt); -int vidioc_s_fmt_sliced_vbi_cap(struct file *file, void *priv, struct v4l2= _format *fmt); -int vidioc_g_sliced_vbi_cap(struct file *file, void *priv, struct v4l2_sli= ced_vbi_cap *cap); +int vidioc_g_fmt_sliced_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt); +int vidioc_try_fmt_sliced_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt); +int vidioc_s_fmt_sliced_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt); +int vidioc_g_sliced_vbi_cap(struct file *file, + struct video_device_state *state, + struct v4l2_sliced_vbi_cap *cap); =20 void vivid_fill_service_lines(struct v4l2_sliced_vbi_format *vbi, u32 serv= ice_set); =20 diff --git a/drivers/media/test-drivers/vivid/vivid-vbi-out.c b/drivers/med= ia/test-drivers/vivid/vivid-vbi-out.c index 7b3ea96744bb04e37644bc288c5879ac2812fbb3..c7396b7c199bded792fc20a575d= b30f4a0b8a234 100644 --- a/drivers/media/test-drivers/vivid/vivid-vbi-out.c +++ b/drivers/media/test-drivers/vivid/vivid-vbi-out.c @@ -130,7 +130,8 @@ const struct vb2_ops vivid_vbi_out_qops =3D { .buf_request_complete =3D vbi_out_buf_request_complete, }; =20 -int vidioc_g_fmt_vbi_out(struct file *file, void *priv, +int vidioc_g_fmt_vbi_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); @@ -153,11 +154,12 @@ int vidioc_g_fmt_vbi_out(struct file *file, void *pri= v, return 0; } =20 -int vidioc_s_fmt_vbi_out(struct file *file, void *priv, +int vidioc_s_fmt_vbi_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); - int ret =3D vidioc_g_fmt_vbi_out(file, priv, f); + int ret =3D vidioc_g_fmt_vbi_out(file, state, f); =20 if (ret) return ret; @@ -168,7 +170,9 @@ int vidioc_s_fmt_vbi_out(struct file *file, void *priv, return 0; } =20 -int vidioc_g_fmt_sliced_vbi_out(struct file *file, void *priv, struct v4l2= _format *fmt) +int vidioc_g_fmt_sliced_vbi_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct vivid_dev *dev =3D video_drvdata(file); struct v4l2_sliced_vbi_format *vbi =3D &fmt->fmt.sliced; @@ -180,7 +184,9 @@ int vidioc_g_fmt_sliced_vbi_out(struct file *file, void= *priv, struct v4l2_forma return 0; } =20 -int vidioc_try_fmt_sliced_vbi_out(struct file *file, void *priv, struct v4= l2_format *fmt) +int vidioc_try_fmt_sliced_vbi_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt) { struct vivid_dev *dev =3D video_drvdata(file); struct v4l2_sliced_vbi_format *vbi =3D &fmt->fmt.sliced; @@ -196,12 +202,12 @@ int vidioc_try_fmt_sliced_vbi_out(struct file *file, = void *priv, struct v4l2_for return 0; } =20 -int vidioc_s_fmt_sliced_vbi_out(struct file *file, void *priv, - struct v4l2_format *fmt) +int vidioc_s_fmt_sliced_vbi_out(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct vivid_dev *dev =3D video_drvdata(file); struct v4l2_sliced_vbi_format *vbi =3D &fmt->fmt.sliced; - int ret =3D vidioc_try_fmt_sliced_vbi_out(file, priv, fmt); + int ret =3D vidioc_try_fmt_sliced_vbi_out(file, state, fmt); =20 if (ret) return ret; diff --git a/drivers/media/test-drivers/vivid/vivid-vbi-out.h b/drivers/med= ia/test-drivers/vivid/vivid-vbi-out.h index a28e55519ade286066d38732ca6815786e18ff90..9759860f9bb1600c71b02314c12= f6d54faf2425d 100644 --- a/drivers/media/test-drivers/vivid/vivid-vbi-out.h +++ b/drivers/media/test-drivers/vivid/vivid-vbi-out.h @@ -9,13 +9,21 @@ #define _VIVID_VBI_OUT_H_ =20 void vivid_sliced_vbi_out_process(struct vivid_dev *dev, struct vivid_buff= er *buf); -int vidioc_g_fmt_vbi_out(struct file *file, void *priv, +int vidioc_g_fmt_vbi_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f); -int vidioc_s_fmt_vbi_out(struct file *file, void *priv, +int vidioc_s_fmt_vbi_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f); -int vidioc_g_fmt_sliced_vbi_out(struct file *file, void *priv, struct v4l2= _format *fmt); -int vidioc_try_fmt_sliced_vbi_out(struct file *file, void *priv, struct v4= l2_format *fmt); -int vidioc_s_fmt_sliced_vbi_out(struct file *file, void *priv, struct v4l2= _format *fmt); +int vidioc_g_fmt_sliced_vbi_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt); +int vidioc_try_fmt_sliced_vbi_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt); +int vidioc_s_fmt_sliced_vbi_out(struct file *file, + struct video_device_state *state, + struct v4l2_format *fmt); =20 extern const struct vb2_ops vivid_vbi_out_qops; =20 diff --git a/drivers/media/test-drivers/vivid/vivid-vid-cap.c b/drivers/med= ia/test-drivers/vivid/vivid-vid-cap.c index 8b3162e8203271e7708b4b8a7389da9873aff40c..094cbd5792448cc89d455fcae8e= fd05a769c09fc 100644 --- a/drivers/media/test-drivers/vivid/vivid-vid-cap.c +++ b/drivers/media/test-drivers/vivid/vivid-vid-cap.c @@ -518,7 +518,8 @@ static unsigned vivid_quantization_cap(struct vivid_dev= *dev) return dev->quantization_out; } =20 -int vivid_g_fmt_vid_cap(struct file *file, void *priv, +int vivid_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); @@ -547,7 +548,8 @@ int vivid_g_fmt_vid_cap(struct file *file, void *priv, return 0; } =20 -int vivid_try_fmt_vid_cap(struct file *file, void *priv, +int vivid_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct v4l2_pix_format_mplane *mp =3D &f->fmt.pix_mp; @@ -660,7 +662,8 @@ int vivid_try_fmt_vid_cap(struct file *file, void *priv, return 0; } =20 -int vivid_s_fmt_vid_cap(struct file *file, void *priv, +int vivid_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct v4l2_pix_format_mplane *mp =3D &f->fmt.pix_mp; @@ -668,7 +671,7 @@ int vivid_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_rect *crop =3D &dev->crop_cap; struct v4l2_rect *compose =3D &dev->compose_cap; struct vb2_queue *q =3D &dev->vb_vid_cap_q; - int ret =3D vivid_try_fmt_vid_cap(file, priv, f); + int ret =3D vivid_try_fmt_vid_cap(file, state, f); unsigned factor =3D 1; unsigned p; unsigned i; @@ -793,67 +796,74 @@ int vivid_s_fmt_vid_cap(struct file *file, void *priv, return 0; } =20 -int vidioc_g_fmt_vid_cap_mplane(struct file *file, void *priv, +int vidioc_g_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); =20 if (!dev->multiplanar) return -ENOTTY; - return vivid_g_fmt_vid_cap(file, priv, f); + return vivid_g_fmt_vid_cap(file, state, f); } =20 -int vidioc_try_fmt_vid_cap_mplane(struct file *file, void *priv, +int vidioc_try_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); =20 if (!dev->multiplanar) return -ENOTTY; - return vivid_try_fmt_vid_cap(file, priv, f); + return vivid_try_fmt_vid_cap(file, state, f); } =20 -int vidioc_s_fmt_vid_cap_mplane(struct file *file, void *priv, +int vidioc_s_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); =20 if (!dev->multiplanar) return -ENOTTY; - return vivid_s_fmt_vid_cap(file, priv, f); + return vivid_s_fmt_vid_cap(file, state, f); } =20 -int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); =20 if (dev->multiplanar) return -ENOTTY; - return fmt_sp2mp_func(file, priv, f, vivid_g_fmt_vid_cap); + return fmt_sp2mp_func(file, state, f, vivid_g_fmt_vid_cap); } =20 -int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); =20 if (dev->multiplanar) return -ENOTTY; - return fmt_sp2mp_func(file, priv, f, vivid_try_fmt_vid_cap); + return fmt_sp2mp_func(file, state, f, vivid_try_fmt_vid_cap); } =20 -int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); =20 if (dev->multiplanar) return -ENOTTY; - return fmt_sp2mp_func(file, priv, f, vivid_s_fmt_vid_cap); + return fmt_sp2mp_func(file, state, f, vivid_s_fmt_vid_cap); } =20 -int vivid_vid_cap_g_selection(struct file *file, void *priv, +int vivid_vid_cap_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct vivid_dev *dev =3D video_drvdata(file); @@ -899,7 +909,9 @@ int vivid_vid_cap_g_selection(struct file *file, void *= priv, return 0; } =20 -int vivid_vid_cap_s_selection(struct file *file, void *priv, struct v4l2_s= election *s) +int vivid_vid_cap_s_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *s) { struct vivid_dev *dev =3D video_drvdata(file); struct v4l2_rect *crop =3D &dev->crop_cap; @@ -1031,8 +1043,9 @@ int vivid_vid_cap_s_selection(struct file *file, void= *priv, struct v4l2_selecti return 0; } =20 -int vivid_vid_cap_g_pixelaspect(struct file *file, void *priv, - int type, struct v4l2_fract *f) +int vivid_vid_cap_g_pixelaspect(struct file *file, + struct video_device_state *state, int type, + struct v4l2_fract *f) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -1059,7 +1072,8 @@ static const struct v4l2_audio vivid_audio_inputs[] = =3D { { 1, "Line-In", V4L2_AUDCAP_STEREO }, }; =20 -int vidioc_enum_input(struct file *file, void *priv, +int vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { struct vivid_dev *dev =3D video_drvdata(file); @@ -1128,7 +1142,8 @@ int vidioc_enum_input(struct file *file, void *priv, return 0; } =20 -int vidioc_g_input(struct file *file, void *priv, unsigned *i) +int vidioc_g_input(struct file *file, struct video_device_state *state, + unsigned int *i) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -1136,7 +1151,8 @@ int vidioc_g_input(struct file *file, void *priv, uns= igned *i) return 0; } =20 -int vidioc_s_input(struct file *file, void *priv, unsigned i) +int vidioc_s_input(struct file *file, struct video_device_state *state, + unsigned int i) { struct vivid_dev *dev =3D video_drvdata(file); struct v4l2_bt_timings *bt =3D &dev->dv_timings_cap[dev->input].bt; @@ -1222,7 +1238,8 @@ int vidioc_s_input(struct file *file, void *priv, uns= igned i) return 0; } =20 -int vidioc_enumaudio(struct file *file, void *priv, struct v4l2_audio *vin) +int vidioc_enumaudio(struct file *file, struct video_device_state *state, + struct v4l2_audio *vin) { if (vin->index >=3D ARRAY_SIZE(vivid_audio_inputs)) return -EINVAL; @@ -1230,7 +1247,8 @@ int vidioc_enumaudio(struct file *file, void *priv, s= truct v4l2_audio *vin) return 0; } =20 -int vidioc_g_audio(struct file *file, void *priv, struct v4l2_audio *vin) +int vidioc_g_audio(struct file *file, struct video_device_state *state, + struct v4l2_audio *vin) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -1240,7 +1258,8 @@ int vidioc_g_audio(struct file *file, void *priv, str= uct v4l2_audio *vin) return 0; } =20 -int vidioc_s_audio(struct file *file, void *priv, const struct v4l2_audio = *vin) +int vidioc_s_audio(struct file *file, struct video_device_state *state, + const struct v4l2_audio *vin) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -1252,7 +1271,9 @@ int vidioc_s_audio(struct file *file, void *priv, con= st struct v4l2_audio *vin) return 0; } =20 -int vivid_video_g_frequency(struct file *file, void *priv, struct v4l2_fre= quency *vf) +int vivid_video_g_frequency(struct file *file, + struct video_device_state *state, + struct v4l2_frequency *vf) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -1262,7 +1283,9 @@ int vivid_video_g_frequency(struct file *file, void *= priv, struct v4l2_frequency return 0; } =20 -int vivid_video_s_frequency(struct file *file, void *priv, const struct v4= l2_frequency *vf) +int vivid_video_s_frequency(struct file *file, + struct video_device_state *state, + const struct v4l2_frequency *vf) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -1274,7 +1297,8 @@ int vivid_video_s_frequency(struct file *file, void *= priv, const struct v4l2_fre return 0; } =20 -int vivid_video_s_tuner(struct file *file, void *priv, const struct v4l2_t= uner *vt) +int vivid_video_s_tuner(struct file *file, struct video_device_state *stat= e, + const struct v4l2_tuner *vt) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -1286,7 +1310,8 @@ int vivid_video_s_tuner(struct file *file, void *priv= , const struct v4l2_tuner * return 0; } =20 -int vivid_video_g_tuner(struct file *file, void *priv, struct v4l2_tuner *= vt) +int vivid_video_g_tuner(struct file *file, struct video_device_state *stat= e, + struct v4l2_tuner *vt) { struct vivid_dev *dev =3D video_drvdata(file); enum tpg_quality qual; @@ -1377,7 +1402,8 @@ const char * const vivid_ctrl_standard_strings[] =3D { NULL, }; =20 -int vidioc_querystd(struct file *file, void *priv, v4l2_std_id *id) +int vidioc_querystd(struct file *file, struct video_device_state *state, + v4l2_std_id *id) { struct vivid_dev *dev =3D video_drvdata(file); unsigned int last =3D dev->query_std_last[dev->input]; @@ -1404,7 +1430,8 @@ int vidioc_querystd(struct file *file, void *priv, v4= l2_std_id *id) return 0; } =20 -int vivid_vid_cap_s_std(struct file *file, void *priv, v4l2_std_id id) +int vivid_vid_cap_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id id) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -1490,7 +1517,8 @@ static bool valid_cvt_gtf_timings(struct v4l2_dv_timi= ngs *timings) return false; } =20 -int vivid_vid_cap_s_dv_timings(struct file *file, void *priv, +int vivid_vid_cap_s_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct vivid_dev *dev =3D video_drvdata(file); @@ -1513,7 +1541,8 @@ int vivid_vid_cap_s_dv_timings(struct file *file, voi= d *priv, return 0; } =20 -int vidioc_query_dv_timings(struct file *file, void *priv, +int vidioc_query_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct vivid_dev *dev =3D video_drvdata(file); @@ -1600,7 +1629,8 @@ void vivid_update_connected_outputs(struct vivid_dev = *dev) } } =20 -int vidioc_s_edid(struct file *file, void *priv, +int vidioc_s_edid(struct file *file, + struct video_device_state *state, struct v4l2_edid *edid) { struct vivid_dev *dev =3D video_drvdata(file); @@ -1638,7 +1668,8 @@ int vidioc_s_edid(struct file *file, void *priv, return 0; } =20 -int vidioc_enum_framesizes(struct file *file, void *priv, +int vidioc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct vivid_dev *dev =3D video_drvdata(file); @@ -1667,7 +1698,8 @@ int vidioc_enum_framesizes(struct file *file, void *p= riv, } =20 /* timeperframe is arbitrary and continuous */ -int vidioc_enum_frameintervals(struct file *file, void *priv, +int vidioc_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *fival) { struct vivid_dev *dev =3D video_drvdata(file); @@ -1703,7 +1735,8 @@ int vidioc_enum_frameintervals(struct file *file, voi= d *priv, return 0; } =20 -int vivid_vid_cap_g_parm(struct file *file, void *priv, +int vivid_vid_cap_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct vivid_dev *dev =3D video_drvdata(file); @@ -1719,7 +1752,8 @@ int vivid_vid_cap_g_parm(struct file *file, void *pri= v, return 0; } =20 -int vivid_vid_cap_s_parm(struct file *file, void *priv, +int vivid_vid_cap_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct vivid_dev *dev =3D video_drvdata(file); @@ -1732,7 +1766,7 @@ int vivid_vid_cap_s_parm(struct file *file, void *pri= v, V4L2_BUF_TYPE_VIDEO_CAPTURE)) return -EINVAL; if (!vivid_is_webcam(dev)) - return vivid_vid_cap_g_parm(file, priv, parm); + return vivid_vid_cap_g_parm(file, state, parm); =20 tpf =3D parm->parm.capture.timeperframe; =20 diff --git a/drivers/media/test-drivers/vivid/vivid-vid-cap.h b/drivers/med= ia/test-drivers/vivid/vivid-vid-cap.h index 38a99f7e038eaa13477d5ce8ff7d4497b557f905..175cf0d388dc6821414593c9112= fe171953fc8d0 100644 --- a/drivers/media/test-drivers/vivid/vivid-vid-cap.h +++ b/drivers/media/test-drivers/vivid/vivid-vid-cap.h @@ -19,40 +19,87 @@ extern const char * const vivid_ctrl_standard_strings[]; =20 extern const struct vb2_ops vivid_vid_cap_qops; =20 -int vivid_g_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format = *f); -int vivid_try_fmt_vid_cap(struct file *file, void *priv, struct v4l2_forma= t *f); -int vivid_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format = *f); -int vidioc_g_fmt_vid_cap_mplane(struct file *file, void *priv, struct v4l2= _format *f); -int vidioc_try_fmt_vid_cap_mplane(struct file *file, void *priv, struct v4= l2_format *f); -int vidioc_s_fmt_vid_cap_mplane(struct file *file, void *priv, struct v4l2= _format *f); -int vidioc_g_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format= *f); -int vidioc_try_fmt_vid_cap(struct file *file, void *priv, struct v4l2_form= at *f); -int vidioc_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format= *f); -int vivid_vid_cap_g_selection(struct file *file, void *priv, struct v4l2_s= election *sel); -int vivid_vid_cap_s_selection(struct file *file, void *priv, struct v4l2_s= election *s); -int vivid_vid_cap_g_pixelaspect(struct file *file, void *priv, int type, s= truct v4l2_fract *f); -int vidioc_enum_fmt_vid_overlay(struct file *file, void *priv, struct v4l= 2_fmtdesc *f); -int vidioc_g_fmt_vid_overlay(struct file *file, void *priv, struct v4l2_fo= rmat *f); -int vidioc_try_fmt_vid_overlay(struct file *file, void *priv, struct v4l2_= format *f); -int vidioc_s_fmt_vid_overlay(struct file *file, void *priv, struct v4l2_fo= rmat *f); -int vidioc_enum_input(struct file *file, void *priv, struct v4l2_input *in= p); -int vidioc_g_input(struct file *file, void *priv, unsigned *i); -int vidioc_s_input(struct file *file, void *priv, unsigned i); -int vidioc_enumaudio(struct file *file, void *priv, struct v4l2_audio *vin= ); -int vidioc_g_audio(struct file *file, void *priv, struct v4l2_audio *vin); -int vidioc_s_audio(struct file *file, void *priv, const struct v4l2_audio = *vin); -int vivid_video_g_frequency(struct file *file, void *priv, struct v4l2_fre= quency *vf); -int vivid_video_s_frequency(struct file *file, void *priv, const struct v4= l2_frequency *vf); -int vivid_video_s_tuner(struct file *file, void *priv, const struct v4l2_t= uner *vt); -int vivid_video_g_tuner(struct file *file, void *priv, struct v4l2_tuner *= vt); -int vidioc_querystd(struct file *file, void *priv, v4l2_std_id *id); -int vivid_vid_cap_s_std(struct file *file, void *priv, v4l2_std_id id); -int vivid_vid_cap_s_dv_timings(struct file *file, void *priv, struct v4l2_= dv_timings *timings); -int vidioc_query_dv_timings(struct file *file, void *priv, struct v4l2_dv_= timings *timings); -int vidioc_s_edid(struct file *file, void *priv, struct v4l2_edid *edid); -int vidioc_enum_framesizes(struct file *file, void *priv, struct v4l2_frms= izeenum *fsize); -int vidioc_enum_frameintervals(struct file *file, void *priv, struct v4l2_= frmivalenum *fival); -int vivid_vid_cap_g_parm(struct file *file, void *priv, struct v4l2_stream= parm *parm); -int vivid_vid_cap_s_parm(struct file *file, void *priv, struct v4l2_stream= parm *parm); +int vivid_g_fmt_vid_cap(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f); +int vivid_try_fmt_vid_cap(struct file *file, struct video_device_state *st= ate, + struct v4l2_format *f); +int vivid_s_fmt_vid_cap(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f); +int vidioc_g_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, + struct v4l2_format *f); +int vidioc_try_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, + struct v4l2_format *f); +int vidioc_s_fmt_vid_cap_mplane(struct file *file, + struct video_device_state *state, + struct v4l2_format *f); +int vidioc_g_fmt_vid_cap(struct file *file, struct video_device_state *sta= te, + struct v4l2_format *f); +int vidioc_try_fmt_vid_cap(struct file *file, struct video_device_state *s= tate, + struct v4l2_format *f); +int vidioc_s_fmt_vid_cap(struct file *file, struct video_device_state *sta= te, + struct v4l2_format *f); +int vivid_vid_cap_g_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *sel); +int vivid_vid_cap_s_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *s); +int vivid_vid_cap_g_pixelaspect(struct file *file, + struct video_device_state *state, int type, + struct v4l2_fract *f); +int vidioc_enum_fmt_vid_overlay(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *f); +int vidioc_g_fmt_vid_overlay(struct file *file, + struct video_device_state *state, + struct v4l2_format *f); +int vidioc_try_fmt_vid_overlay(struct file *file, + struct video_device_state *state, + struct v4l2_format *f); +int vidioc_s_fmt_vid_overlay(struct file *file, + struct video_device_state *state, + struct v4l2_format *f); +int vidioc_enum_input(struct file *file, struct video_device_state *state, + struct v4l2_input *inp); +int vidioc_g_input(struct file *file, struct video_device_state *state, + unsigned int *i); +int vidioc_s_input(struct file *file, struct video_device_state *state, + unsigned int i); +int vidioc_enumaudio(struct file *file, struct video_device_state *state, + struct v4l2_audio *vin); +int vidioc_g_audio(struct file *file, struct video_device_state *state, + struct v4l2_audio *vin); +int vidioc_s_audio(struct file *file, struct video_device_state *state, + const struct v4l2_audio *vin); +int vivid_video_g_frequency(struct file *file, struct video_device_state *= state, + struct v4l2_frequency *vf); +int vivid_video_s_frequency(struct file *file, struct video_device_state *= state, + const struct v4l2_frequency *vf); +int vivid_video_s_tuner(struct file *file, struct video_device_state *stat= e, + const struct v4l2_tuner *vt); +int vivid_video_g_tuner(struct file *file, struct video_device_state *stat= e, + struct v4l2_tuner *vt); +int vidioc_querystd(struct file *file, struct video_device_state *state, + v4l2_std_id *id); +int vivid_vid_cap_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id id); +int vivid_vid_cap_s_dv_timings(struct file *file, + struct video_device_state *state, + struct v4l2_dv_timings *timings); +int vidioc_query_dv_timings(struct file *file, struct video_device_state *= state, + struct v4l2_dv_timings *timings); +int vidioc_s_edid(struct file *file, struct video_device_state *state, + struct v4l2_edid *edid); +int vidioc_enum_framesizes(struct file *file, struct video_device_state *s= tate, + struct v4l2_frmsizeenum *fsize); +int vidioc_enum_frameintervals(struct file *file, + struct video_device_state *state, + struct v4l2_frmivalenum *fival); +int vivid_vid_cap_g_parm(struct file *file, struct video_device_state *sta= te, + struct v4l2_streamparm *parm); +int vivid_vid_cap_s_parm(struct file *file, struct video_device_state *sta= te, + struct v4l2_streamparm *parm); =20 #endif diff --git a/drivers/media/test-drivers/vivid/vivid-vid-common.c b/drivers/= media/test-drivers/vivid/vivid-vid-common.c index 786a1aa3b26b7058a025895ba1b1f4cf03940376..30b7c9d4ff7d7b33d09b5d99276= c0cca4159e054 100644 --- a/drivers/media/test-drivers/vivid/vivid-vid-common.c +++ b/drivers/media/test-drivers/vivid/vivid-vid-common.c @@ -886,8 +886,8 @@ void fmt_sp2mp(const struct v4l2_format *sp_fmt, struct= v4l2_format *mp_fmt) memset(ppix->reserved, 0, sizeof(ppix->reserved)); } =20 -int fmt_sp2mp_func(struct file *file, void *priv, - struct v4l2_format *f, fmtfunc func) +int fmt_sp2mp_func(struct file *file, struct video_device_state *state, st= ruct v4l2_format *f, + fmtfunc func) { struct v4l2_format fmt; struct v4l2_pix_format_mplane *mp =3D &fmt.fmt.pix_mp; @@ -898,7 +898,7 @@ int fmt_sp2mp_func(struct file *file, void *priv, /* Converts to a mplane format */ fmt_sp2mp(f, &fmt); /* Passes it to the generic mplane format function */ - ret =3D func(file, priv, &fmt); + ret =3D func(file, state, &fmt); /* Copies back the mplane data to the single plane format */ pix->width =3D mp->width; pix->height =3D mp->height; @@ -963,7 +963,8 @@ int vivid_vid_adjust_sel(unsigned flags, struct v4l2_re= ct *r) return 0; } =20 -int vivid_enum_fmt_vid(struct file *file, void *priv, +int vivid_enum_fmt_vid(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct vivid_dev *dev =3D video_drvdata(file); @@ -1004,7 +1005,8 @@ int vivid_enum_fmt_vid(struct file *file, void *priv, return 0; } =20 -int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *id) +int vidioc_g_std(struct file *file, struct video_device_state *state, + v4l2_std_id *id) { struct vivid_dev *dev =3D video_drvdata(file); struct video_device *vdev =3D video_devdata(file); @@ -1021,7 +1023,8 @@ int vidioc_g_std(struct file *file, void *priv, v4l2_= std_id *id) return 0; } =20 -int vidioc_g_dv_timings(struct file *file, void *priv, +int vidioc_g_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct vivid_dev *dev =3D video_drvdata(file); @@ -1039,7 +1042,8 @@ int vidioc_g_dv_timings(struct file *file, void *priv, return 0; } =20 -int vidioc_enum_dv_timings(struct file *file, void *priv, +int vidioc_enum_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_enum_dv_timings *timings) { struct vivid_dev *dev =3D video_drvdata(file); @@ -1056,7 +1060,8 @@ int vidioc_enum_dv_timings(struct file *file, void *p= riv, NULL, NULL); } =20 -int vidioc_dv_timings_cap(struct file *file, void *priv, +int vidioc_dv_timings_cap(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings_cap *cap) { struct vivid_dev *dev =3D video_drvdata(file); @@ -1073,7 +1078,8 @@ int vidioc_dv_timings_cap(struct file *file, void *pr= iv, return 0; } =20 -int vidioc_g_edid(struct file *file, void *priv, +int vidioc_g_edid(struct file *file, + struct video_device_state *state, struct v4l2_edid *edid) { struct vivid_dev *dev =3D video_drvdata(file); diff --git a/drivers/media/test-drivers/vivid/vivid-vid-common.h b/drivers/= media/test-drivers/vivid/vivid-vid-common.h index fb5878174dba4cc1ed65846f85bca4020cae09cc..00a2ab66eae0b97c4d1a0dc6565= d49682e577c32 100644 --- a/drivers/media/test-drivers/vivid/vivid-vid-common.h +++ b/drivers/media/test-drivers/vivid/vivid-vid-common.h @@ -8,34 +8,44 @@ #ifndef _VIVID_VID_COMMON_H_ #define _VIVID_VID_COMMON_H_ =20 -typedef int (*fmtfunc)(struct file *file, void *priv, struct v4l2_format *= f); +typedef int (*fmtfunc)(struct file *file, struct video_device_state *state, + struct v4l2_format *f); =20 /* * Conversion function that converts a single-planar format to a * single-plane multiplanar format. */ void fmt_sp2mp(const struct v4l2_format *sp_fmt, struct v4l2_format *mp_fm= t); -int fmt_sp2mp_func(struct file *file, void *priv, - struct v4l2_format *f, fmtfunc func); +int fmt_sp2mp_func(struct file *file, struct video_device_state *state, + struct v4l2_format *f, fmtfunc func); =20 extern const struct v4l2_dv_timings_cap vivid_dv_timings_cap; =20 -const struct vivid_fmt *vivid_get_format(struct vivid_dev *dev, u32 pixelf= ormat); +const struct vivid_fmt *vivid_get_format(struct vivid_dev *dev, + u32 pixelformat); =20 struct vivid_dev *vivid_input_is_connected_to(struct vivid_dev *dev); struct vivid_dev *vivid_output_is_connected_to(struct vivid_dev *dev); bool vivid_vid_can_loop(struct vivid_dev *dev); void vivid_send_source_change(struct vivid_dev *dev, unsigned int type); -void vivid_send_input_source_change(struct vivid_dev *dev, unsigned int in= put_index); +void vivid_send_input_source_change(struct vivid_dev *dev, + unsigned int input_index); =20 int vivid_vid_adjust_sel(unsigned flags, struct v4l2_rect *r); =20 -int vivid_enum_fmt_vid(struct file *file, void *priv, struct v4l2_fmtdesc= *f); -int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *id); -int vidioc_g_dv_timings(struct file *file, void *priv, struct v4l2_dv_timi= ngs *timings); -int vidioc_enum_dv_timings(struct file *file, void *priv, struct v4l2_enum= _dv_timings *timings); -int vidioc_dv_timings_cap(struct file *file, void *priv, struct v4l2_dv_ti= mings_cap *cap); -int vidioc_g_edid(struct file *file, void *priv, struct v4l2_edid *edid); -int vidioc_subscribe_event(struct v4l2_fh *fh, const struct v4l2_event_sub= scription *sub); +int vivid_enum_fmt_vid(struct file *file, struct video_device_state *state, + struct v4l2_fmtdesc *f); +int vidioc_g_std(struct file *file, struct video_device_state *state, + v4l2_std_id *id); +int vidioc_g_dv_timings(struct file *file, struct video_device_state *stat= e, + struct v4l2_dv_timings *timings); +int vidioc_enum_dv_timings(struct file *file, struct video_device_state *s= tate, + struct v4l2_enum_dv_timings *timings); +int vidioc_dv_timings_cap(struct file *file, struct video_device_state *st= ate, + struct v4l2_dv_timings_cap *cap); +int vidioc_g_edid(struct file *file, struct video_device_state *state, + struct v4l2_edid *edid); +int vidioc_subscribe_event(struct v4l2_fh *fh, + const struct v4l2_event_subscription *sub); =20 #endif diff --git a/drivers/media/test-drivers/vivid/vivid-vid-out.c b/drivers/med= ia/test-drivers/vivid/vivid-vid-out.c index 8c037b90833e74563654a60f8c8ecc292e21151c..bb56490ea4c8a14eabf677a8e16= d9b223503d497 100644 --- a/drivers/media/test-drivers/vivid/vivid-vid-out.c +++ b/drivers/media/test-drivers/vivid/vivid-vid-out.c @@ -308,8 +308,8 @@ static enum tpg_pixel_aspect vivid_get_pixel_aspect(con= st struct vivid_dev *dev) return TPG_PIXEL_ASPECT_SQUARE; } =20 -int vivid_g_fmt_vid_out(struct file *file, void *priv, - struct v4l2_format *f) +int vivid_g_fmt_vid_out(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); struct v4l2_pix_format_mplane *mp =3D &f->fmt.pix_mp; @@ -340,8 +340,8 @@ int vivid_g_fmt_vid_out(struct file *file, void *priv, return 0; } =20 -int vivid_try_fmt_vid_out(struct file *file, void *priv, - struct v4l2_format *f) +int vivid_try_fmt_vid_out(struct file *file, struct video_device_state *st= ate, + struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); struct v4l2_bt_timings *bt =3D &dev->dv_timings_out.bt; @@ -438,15 +438,15 @@ int vivid_try_fmt_vid_out(struct file *file, void *pr= iv, return 0; } =20 -int vivid_s_fmt_vid_out(struct file *file, void *priv, - struct v4l2_format *f) +int vivid_s_fmt_vid_out(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct v4l2_pix_format_mplane *mp =3D &f->fmt.pix_mp; struct vivid_dev *dev =3D video_drvdata(file); struct v4l2_rect *crop =3D &dev->crop_out; struct v4l2_rect *compose =3D &dev->compose_out; struct vb2_queue *q =3D &dev->vb_vid_out_q; - int ret =3D vivid_try_fmt_vid_out(file, priv, f); + int ret =3D vivid_try_fmt_vid_out(file, state, f); unsigned factor =3D 1; unsigned p; =20 @@ -568,67 +568,70 @@ int vivid_s_fmt_vid_out(struct file *file, void *priv, return 0; } =20 -int vidioc_g_fmt_vid_out_mplane(struct file *file, void *priv, - struct v4l2_format *f) +int vidioc_g_fmt_vid_out_mplane(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); =20 if (!dev->multiplanar) return -ENOTTY; - return vivid_g_fmt_vid_out(file, priv, f); + return vivid_g_fmt_vid_out(file, state, f); } =20 -int vidioc_try_fmt_vid_out_mplane(struct file *file, void *priv, - struct v4l2_format *f) +int vidioc_try_fmt_vid_out_mplane(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); =20 if (!dev->multiplanar) return -ENOTTY; - return vivid_try_fmt_vid_out(file, priv, f); + return vivid_try_fmt_vid_out(file, state, f); } =20 -int vidioc_s_fmt_vid_out_mplane(struct file *file, void *priv, - struct v4l2_format *f) +int vidioc_s_fmt_vid_out_mplane(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); =20 if (!dev->multiplanar) return -ENOTTY; - return vivid_s_fmt_vid_out(file, priv, f); + return vivid_s_fmt_vid_out(file, state, f); } =20 -int vidioc_g_fmt_vid_out(struct file *file, void *priv, - struct v4l2_format *f) +int vidioc_g_fmt_vid_out(struct file *file, struct video_device_state *sta= te, + struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); =20 if (dev->multiplanar) return -ENOTTY; - return fmt_sp2mp_func(file, priv, f, vivid_g_fmt_vid_out); + return fmt_sp2mp_func(file, state, f, vivid_g_fmt_vid_out); } =20 -int vidioc_try_fmt_vid_out(struct file *file, void *priv, - struct v4l2_format *f) +int vidioc_try_fmt_vid_out(struct file *file, struct video_device_state *s= tate, + struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); =20 if (dev->multiplanar) return -ENOTTY; - return fmt_sp2mp_func(file, priv, f, vivid_try_fmt_vid_out); + return fmt_sp2mp_func(file, state, f, vivid_try_fmt_vid_out); } =20 -int vidioc_s_fmt_vid_out(struct file *file, void *priv, - struct v4l2_format *f) +int vidioc_s_fmt_vid_out(struct file *file, struct video_device_state *sta= te, + struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); =20 if (dev->multiplanar) return -ENOTTY; - return fmt_sp2mp_func(file, priv, f, vivid_s_fmt_vid_out); + return fmt_sp2mp_func(file, state, f, vivid_s_fmt_vid_out); } =20 -int vivid_vid_out_g_selection(struct file *file, void *priv, +int vivid_vid_out_g_selection(struct file *file, struct video_device_state= *state, struct v4l2_selection *sel) { struct vivid_dev *dev =3D video_drvdata(file); @@ -672,7 +675,9 @@ int vivid_vid_out_g_selection(struct file *file, void *= priv, return 0; } =20 -int vivid_vid_out_s_selection(struct file *file, void *priv, struct v4l2_s= election *s) +int vivid_vid_out_s_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *s) { struct vivid_dev *dev =3D video_drvdata(file); struct v4l2_rect *crop =3D &dev->crop_out; @@ -798,7 +803,7 @@ int vivid_vid_out_s_selection(struct file *file, void *= priv, struct v4l2_selecti return 0; } =20 -int vivid_vid_out_g_pixelaspect(struct file *file, void *priv, +int vivid_vid_out_g_pixelaspect(struct file *file, struct video_device_sta= te *state, int type, struct v4l2_fract *f) { struct vivid_dev *dev =3D video_drvdata(file); @@ -821,8 +826,9 @@ int vivid_vid_out_g_pixelaspect(struct file *file, void= *priv, return 0; } =20 -int vidioc_g_fmt_vid_out_overlay(struct file *file, void *priv, - struct v4l2_format *f) +int vidioc_g_fmt_vid_out_overlay(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); const struct v4l2_rect *compose =3D &dev->compose_out; @@ -840,8 +846,9 @@ int vidioc_g_fmt_vid_out_overlay(struct file *file, voi= d *priv, return 0; } =20 -int vidioc_try_fmt_vid_out_overlay(struct file *file, void *priv, - struct v4l2_format *f) +int vidioc_try_fmt_vid_out_overlay(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); const struct v4l2_rect *compose =3D &dev->compose_out; @@ -863,12 +870,13 @@ int vidioc_try_fmt_vid_out_overlay(struct file *file,= void *priv, return 0; } =20 -int vidioc_s_fmt_vid_out_overlay(struct file *file, void *priv, - struct v4l2_format *f) +int vidioc_s_fmt_vid_out_overlay(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct vivid_dev *dev =3D video_drvdata(file); struct v4l2_window *win =3D &f->fmt.win; - int ret =3D vidioc_try_fmt_vid_out_overlay(file, priv, f); + int ret =3D vidioc_try_fmt_vid_out_overlay(file, state, f); =20 if (ret) return ret; @@ -880,7 +888,8 @@ int vidioc_s_fmt_vid_out_overlay(struct file *file, voi= d *priv, return ret; } =20 -int vivid_vid_out_overlay(struct file *file, void *priv, unsigned i) +int vivid_vid_out_overlay(struct file *file, struct video_device_state *st= ate, + unsigned int i) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -893,8 +902,8 @@ int vivid_vid_out_overlay(struct file *file, void *priv= , unsigned i) return 0; } =20 -int vivid_vid_out_g_fbuf(struct file *file, void *priv, - struct v4l2_framebuffer *a) +int vivid_vid_out_g_fbuf(struct file *file, struct video_device_state *sta= te, + struct v4l2_framebuffer *a) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -920,8 +929,8 @@ int vivid_vid_out_g_fbuf(struct file *file, void *priv, return 0; } =20 -int vivid_vid_out_s_fbuf(struct file *file, void *priv, - const struct v4l2_framebuffer *a) +int vivid_vid_out_s_fbuf(struct file *file, struct video_device_state *sta= te, + const struct v4l2_framebuffer *a) { struct vivid_dev *dev =3D video_drvdata(file); const unsigned chroma_flags =3D V4L2_FBUF_FLAG_CHROMAKEY | @@ -952,8 +961,8 @@ static const struct v4l2_audioout vivid_audio_outputs[]= =3D { { 1, "Line-Out 2" }, }; =20 -int vidioc_enum_output(struct file *file, void *priv, - struct v4l2_output *out) +int vidioc_enum_output(struct file *file, struct video_device_state *state, + struct v4l2_output *out) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -979,7 +988,8 @@ int vidioc_enum_output(struct file *file, void *priv, return 0; } =20 -int vidioc_g_output(struct file *file, void *priv, unsigned *o) +int vidioc_g_output(struct file *file, struct video_device_state *state, + unsigned int *o) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -987,7 +997,8 @@ int vidioc_g_output(struct file *file, void *priv, unsi= gned *o) return 0; } =20 -int vidioc_s_output(struct file *file, void *priv, unsigned o) +int vidioc_s_output(struct file *file, struct video_device_state *state, + unsigned int o) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -1016,7 +1027,8 @@ int vidioc_s_output(struct file *file, void *priv, un= signed o) return 0; } =20 -int vidioc_enumaudout(struct file *file, void *priv, struct v4l2_audioout = *vout) +int vidioc_enumaudout(struct file *file, struct video_device_state *state, + struct v4l2_audioout *vout) { if (vout->index >=3D ARRAY_SIZE(vivid_audio_outputs)) return -EINVAL; @@ -1024,7 +1036,8 @@ int vidioc_enumaudout(struct file *file, void *priv, = struct v4l2_audioout *vout) return 0; } =20 -int vidioc_g_audout(struct file *file, void *priv, struct v4l2_audioout *v= out) +int vidioc_g_audout(struct file *file, struct video_device_state *state, + struct v4l2_audioout *vout) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -1034,7 +1047,8 @@ int vidioc_g_audout(struct file *file, void *priv, st= ruct v4l2_audioout *vout) return 0; } =20 -int vidioc_s_audout(struct file *file, void *priv, const struct v4l2_audio= out *vout) +int vidioc_s_audout(struct file *file, struct video_device_state *state, + const struct v4l2_audioout *vout) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -1046,7 +1060,8 @@ int vidioc_s_audout(struct file *file, void *priv, co= nst struct v4l2_audioout *v return 0; } =20 -int vivid_vid_out_s_std(struct file *file, void *priv, v4l2_std_id id) +int vivid_vid_out_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id id) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -1072,8 +1087,9 @@ static bool valid_cvt_gtf_timings(struct v4l2_dv_timi= ngs *timings) return false; } =20 -int vivid_vid_out_s_dv_timings(struct file *file, void *priv, - struct v4l2_dv_timings *timings) +int vivid_vid_out_s_dv_timings(struct file *file, + struct video_device_state *state, + struct v4l2_dv_timings *timings) { struct vivid_dev *dev =3D video_drvdata(file); if (!vivid_is_hdmi_out(dev)) @@ -1091,8 +1107,8 @@ int vivid_vid_out_s_dv_timings(struct file *file, voi= d *priv, return 0; } =20 -int vivid_vid_out_g_parm(struct file *file, void *priv, - struct v4l2_streamparm *parm) +int vivid_vid_out_g_parm(struct file *file, struct video_device_state *sta= te, + struct v4l2_streamparm *parm) { struct vivid_dev *dev =3D video_drvdata(file); =20 @@ -1109,7 +1125,7 @@ int vivid_vid_out_g_parm(struct file *file, void *pri= v, } =20 int vidioc_subscribe_event(struct v4l2_fh *fh, - const struct v4l2_event_subscription *sub) + const struct v4l2_event_subscription *sub) { switch (sub->type) { case V4L2_EVENT_SOURCE_CHANGE: diff --git a/drivers/media/test-drivers/vivid/vivid-vid-out.h b/drivers/med= ia/test-drivers/vivid/vivid-vid-out.h index 1d03891a5de576a59441c0b2d77e0c3815e3c05c..58a9e7736987a2a4d05f7acd4e1= 8c5f3729287f9 100644 --- a/drivers/media/test-drivers/vivid/vivid-vid-out.h +++ b/drivers/media/test-drivers/vivid/vivid-vid-out.h @@ -12,33 +12,72 @@ extern const struct vb2_ops vivid_vid_out_qops; =20 void vivid_update_format_out(struct vivid_dev *dev); =20 -int vivid_g_fmt_vid_out(struct file *file, void *priv, struct v4l2_format = *f); -int vivid_try_fmt_vid_out(struct file *file, void *priv, struct v4l2_forma= t *f); -int vivid_s_fmt_vid_out(struct file *file, void *priv, struct v4l2_format = *f); -int vidioc_g_fmt_vid_out_mplane(struct file *file, void *priv, struct v4l2= _format *f); -int vidioc_try_fmt_vid_out_mplane(struct file *file, void *priv, struct v4= l2_format *f); -int vidioc_s_fmt_vid_out_mplane(struct file *file, void *priv, struct v4l2= _format *f); -int vidioc_g_fmt_vid_out(struct file *file, void *priv, struct v4l2_format= *f); -int vidioc_try_fmt_vid_out(struct file *file, void *priv, struct v4l2_form= at *f); -int vidioc_s_fmt_vid_out(struct file *file, void *priv, struct v4l2_format= *f); -int vivid_vid_out_g_selection(struct file *file, void *priv, struct v4l2_s= election *sel); -int vivid_vid_out_s_selection(struct file *file, void *priv, struct v4l2_s= election *s); -int vivid_vid_out_g_pixelaspect(struct file *file, void *priv, int type, s= truct v4l2_fract *f); -int vidioc_enum_fmt_vid_out_overlay(struct file *file, void *priv, struct= v4l2_fmtdesc *f); -int vidioc_g_fmt_vid_out_overlay(struct file *file, void *priv, struct v4l= 2_format *f); -int vidioc_try_fmt_vid_out_overlay(struct file *file, void *priv, struct v= 4l2_format *f); -int vidioc_s_fmt_vid_out_overlay(struct file *file, void *priv, struct v4l= 2_format *f); -int vivid_vid_out_overlay(struct file *file, void *priv, unsigned i); -int vivid_vid_out_g_fbuf(struct file *file, void *priv, struct v4l2_frameb= uffer *a); -int vivid_vid_out_s_fbuf(struct file *file, void *priv, const struct v4l2_= framebuffer *a); -int vidioc_enum_output(struct file *file, void *priv, struct v4l2_output *= out); -int vidioc_g_output(struct file *file, void *priv, unsigned *i); -int vidioc_s_output(struct file *file, void *priv, unsigned i); -int vidioc_enumaudout(struct file *file, void *priv, struct v4l2_audioout = *vout); -int vidioc_g_audout(struct file *file, void *priv, struct v4l2_audioout *v= out); -int vidioc_s_audout(struct file *file, void *priv, const struct v4l2_audio= out *vout); -int vivid_vid_out_s_std(struct file *file, void *priv, v4l2_std_id id); -int vivid_vid_out_s_dv_timings(struct file *file, void *priv, struct v4l2_= dv_timings *timings); -int vivid_vid_out_g_parm(struct file *file, void *priv, struct v4l2_stream= parm *parm); +int vivid_g_fmt_vid_out(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f); +int vivid_try_fmt_vid_out(struct file *file, struct video_device_state *st= ate, + struct v4l2_format *f); +int vivid_s_fmt_vid_out(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f); +int vidioc_g_fmt_vid_out_mplane(struct file *file, + struct video_device_state *state, + struct v4l2_format *f); +int vidioc_try_fmt_vid_out_mplane(struct file *file, + struct video_device_state *state, + struct v4l2_format *f); +int vidioc_s_fmt_vid_out_mplane(struct file *file, + struct video_device_state *state, + struct v4l2_format *f); +int vidioc_g_fmt_vid_out(struct file *file, struct video_device_state *sta= te, + struct v4l2_format *f); +int vidioc_try_fmt_vid_out(struct file *file, struct video_device_state *s= tate, + struct v4l2_format *f); +int vidioc_s_fmt_vid_out(struct file *file, struct video_device_state *sta= te, + struct v4l2_format *f); +int vivid_vid_out_g_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *sel); +int vivid_vid_out_s_selection(struct file *file, + struct video_device_state *state, + struct v4l2_selection *s); +int vivid_vid_out_g_pixelaspect(struct file *file, + struct video_device_state *state, int type, + struct v4l2_fract *f); +int vidioc_enum_fmt_vid_out_overlay(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *f); +int vidioc_g_fmt_vid_out_overlay(struct file *file, + struct video_device_state *state, + struct v4l2_format *f); +int vidioc_try_fmt_vid_out_overlay(struct file *file, + struct video_device_state *state, + struct v4l2_format *f); +int vidioc_s_fmt_vid_out_overlay(struct file *file, + struct video_device_state *state, + struct v4l2_format *f); +int vivid_vid_out_overlay(struct file *file, struct video_device_state *st= ate, + unsigned int i); +int vivid_vid_out_g_fbuf(struct file *file, struct video_device_state *sta= te, + struct v4l2_framebuffer *a); +int vivid_vid_out_s_fbuf(struct file *file, struct video_device_state *sta= te, + const struct v4l2_framebuffer *a); +int vidioc_enum_output(struct file *file, struct video_device_state *state, + struct v4l2_output *out); +int vidioc_g_output(struct file *file, struct video_device_state *state, + unsigned int *i); +int vidioc_s_output(struct file *file, struct video_device_state *state, + unsigned int i); +int vidioc_enumaudout(struct file *file, struct video_device_state *state, + struct v4l2_audioout *vout); +int vidioc_g_audout(struct file *file, struct video_device_state *state, + struct v4l2_audioout *vout); +int vidioc_s_audout(struct file *file, struct video_device_state *state, + const struct v4l2_audioout *vout); +int vivid_vid_out_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id id); +int vivid_vid_out_s_dv_timings(struct file *file, + struct video_device_state *state, + struct v4l2_dv_timings *timings); +int vivid_vid_out_g_parm(struct file *file, struct video_device_state *sta= te, + struct v4l2_streamparm *parm); =20 #endif diff --git a/drivers/media/usb/airspy/airspy.c b/drivers/media/usb/airspy/a= irspy.c index 08f0920cf6ca2f2f0fcc8e9a7b1632488d9af5f5..c91db6296c2327fdd6e16874c99= c56470578511c 100644 --- a/drivers/media/usb/airspy/airspy.c +++ b/drivers/media/usb/airspy/airspy.c @@ -605,8 +605,8 @@ static const struct vb2_ops airspy_vb2_ops =3D { .stop_streaming =3D airspy_stop_streaming, }; =20 -static int airspy_querycap(struct file *file, void *fh, - struct v4l2_capability *cap) +static int airspy_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct airspy *s =3D video_drvdata(file); =20 @@ -616,8 +616,8 @@ static int airspy_querycap(struct file *file, void *fh, return 0; } =20 -static int airspy_enum_fmt_sdr_cap(struct file *file, void *priv, - struct v4l2_fmtdesc *f) +static int airspy_enum_fmt_sdr_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index >=3D NUM_FORMATS) return -EINVAL; @@ -627,8 +627,8 @@ static int airspy_enum_fmt_sdr_cap(struct file *file, v= oid *priv, return 0; } =20 -static int airspy_g_fmt_sdr_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int airspy_g_fmt_sdr_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct airspy *s =3D video_drvdata(file); =20 @@ -638,8 +638,8 @@ static int airspy_g_fmt_sdr_cap(struct file *file, void= *priv, return 0; } =20 -static int airspy_s_fmt_sdr_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int airspy_s_fmt_sdr_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct airspy *s =3D video_drvdata(file); struct vb2_queue *q =3D &s->vb_queue; @@ -665,8 +665,8 @@ static int airspy_s_fmt_sdr_cap(struct file *file, void= *priv, return 0; } =20 -static int airspy_try_fmt_sdr_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int airspy_try_fmt_sdr_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int i; =20 @@ -683,8 +683,8 @@ static int airspy_try_fmt_sdr_cap(struct file *file, vo= id *priv, return 0; } =20 -static int airspy_s_tuner(struct file *file, void *priv, - const struct v4l2_tuner *v) +static int airspy_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *v) { int ret; =20 @@ -698,7 +698,8 @@ static int airspy_s_tuner(struct file *file, void *priv, return ret; } =20 -static int airspy_g_tuner(struct file *file, void *priv, struct v4l2_tuner= *v) +static int airspy_g_tuner(struct file *file, struct video_device_state *st= ate, + struct v4l2_tuner *v) { int ret; =20 @@ -723,8 +724,8 @@ static int airspy_g_tuner(struct file *file, void *priv= , struct v4l2_tuner *v) return ret; } =20 -static int airspy_g_frequency(struct file *file, void *priv, - struct v4l2_frequency *f) +static int airspy_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct airspy *s =3D video_drvdata(file); int ret; @@ -746,7 +747,8 @@ static int airspy_g_frequency(struct file *file, void *= priv, return ret; } =20 -static int airspy_s_frequency(struct file *file, void *priv, +static int airspy_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct airspy *s =3D video_drvdata(file); @@ -776,7 +778,8 @@ static int airspy_s_frequency(struct file *file, void *= priv, return ret; } =20 -static int airspy_enum_freq_bands(struct file *file, void *priv, +static int airspy_enum_freq_bands(struct file *file, + struct video_device_state *state, struct v4l2_frequency_band *band) { int ret; diff --git a/drivers/media/usb/au0828/au0828-video.c b/drivers/media/usb/au= 0828/au0828-video.c index fbaa542c8259ac007ed441280d06a2770e4134f4..ec2a9c2b5390b632b0ba11a1be7= 6fba145fd9a88 100644 --- a/drivers/media/usb/au0828/au0828-video.c +++ b/drivers/media/usb/au0828/au0828-video.c @@ -1173,7 +1173,8 @@ static int au0828_set_format(struct au0828_dev *dev, = unsigned int cmd, return 0; } =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct au0828_dev *dev =3D video_drvdata(file); @@ -1193,7 +1194,8 @@ static int vidioc_querycap(struct file *file, void *= priv, return 0; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index) @@ -1206,7 +1208,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file,= void *priv, return 0; } =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct au0828_dev *dev =3D video_drvdata(file); @@ -1224,7 +1227,8 @@ static int vidioc_g_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct au0828_dev *dev =3D video_drvdata(file); @@ -1235,7 +1239,8 @@ static int vidioc_try_fmt_vid_cap(struct file *file, = void *priv, return au0828_set_format(dev, VIDIOC_TRY_FMT, f); } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct au0828_dev *dev =3D video_drvdata(file); @@ -1259,7 +1264,8 @@ static int vidioc_s_fmt_vid_cap(struct file *file, vo= id *priv, return rc; } =20 -static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id norm) +static int vidioc_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id norm) { struct au0828_dev *dev =3D video_drvdata(file); =20 @@ -1291,7 +1297,8 @@ static int vidioc_s_std(struct file *file, void *priv= , v4l2_std_id norm) return 0; } =20 -static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *norm) +static int vidioc_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *norm) { struct au0828_dev *dev =3D video_drvdata(file); =20 @@ -1302,7 +1309,8 @@ static int vidioc_g_std(struct file *file, void *priv= , v4l2_std_id *norm) return 0; } =20 -static int vidioc_enum_input(struct file *file, void *priv, +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *input) { struct au0828_dev *dev =3D video_drvdata(file); @@ -1343,7 +1351,8 @@ static int vidioc_enum_input(struct file *file, void = *priv, return 0; } =20 -static int vidioc_g_input(struct file *file, void *priv, unsigned int *i) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { struct au0828_dev *dev =3D video_drvdata(file); =20 @@ -1410,7 +1419,8 @@ static void au0828_s_input(struct au0828_dev *dev, in= t index) AUVI_INPUT(index).amux, 0, 0); } =20 -static int vidioc_s_input(struct file *file, void *priv, unsigned int inde= x) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int index) { struct au0828_dev *dev =3D video_drvdata(file); struct video_device *vfd =3D video_devdata(file); @@ -1436,7 +1446,9 @@ static int vidioc_s_input(struct file *file, void *pr= iv, unsigned int index) return v4l_enable_media_source(vfd); } =20 -static int vidioc_enumaudio(struct file *file, void *priv, struct v4l2_aud= io *a) +static int vidioc_enumaudio(struct file *file, + struct video_device_state *state, + struct v4l2_audio *a) { if (a->index > 1) return -EINVAL; @@ -1452,7 +1464,8 @@ static int vidioc_enumaudio(struct file *file, void *= priv, struct v4l2_audio *a) return 0; } =20 -static int vidioc_g_audio(struct file *file, void *priv, struct v4l2_audio= *a) +static int vidioc_g_audio(struct file *file, struct video_device_state *st= ate, + struct v4l2_audio *a) { struct au0828_dev *dev =3D video_drvdata(file); =20 @@ -1469,7 +1482,8 @@ static int vidioc_g_audio(struct file *file, void *pr= iv, struct v4l2_audio *a) return 0; } =20 -static int vidioc_s_audio(struct file *file, void *priv, const struct v4l2= _audio *a) +static int vidioc_s_audio(struct file *file, struct video_device_state *st= ate, + const struct v4l2_audio *a) { struct au0828_dev *dev =3D video_drvdata(file); =20 @@ -1481,7 +1495,8 @@ static int vidioc_s_audio(struct file *file, void *pr= iv, const struct v4l2_audio return 0; } =20 -static int vidioc_g_tuner(struct file *file, void *priv, struct v4l2_tuner= *t) +static int vidioc_g_tuner(struct file *file, struct video_device_state *st= ate, + struct v4l2_tuner *t) { struct au0828_dev *dev =3D video_drvdata(file); struct video_device *vfd =3D video_devdata(file); @@ -1506,7 +1521,8 @@ static int vidioc_g_tuner(struct file *file, void *pr= iv, struct v4l2_tuner *t) return 0; } =20 -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *t) { struct au0828_dev *dev =3D video_drvdata(file); @@ -1529,7 +1545,8 @@ static int vidioc_s_tuner(struct file *file, void *pr= iv, =20 } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *freq) { struct au0828_dev *dev =3D video_drvdata(file); @@ -1542,7 +1559,8 @@ static int vidioc_g_frequency(struct file *file, void= *priv, return 0; } =20 -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *freq) { struct au0828_dev *dev =3D video_drvdata(file); @@ -1572,7 +1590,8 @@ static int vidioc_s_frequency(struct file *file, void= *priv, =20 /* RAW VBI ioctls */ =20 -static int vidioc_g_fmt_vbi_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *format) { struct au0828_dev *dev =3D video_drvdata(file); @@ -1595,8 +1614,9 @@ static int vidioc_g_fmt_vbi_cap(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_g_pixelaspect(struct file *file, void *priv, - int type, struct v4l2_fract *f) +static int vidioc_g_pixelaspect(struct file *file, + struct video_device_state *state, int type, + struct v4l2_fract *f) { struct au0828_dev *dev =3D video_drvdata(file); =20 @@ -1612,7 +1632,8 @@ static int vidioc_g_pixelaspect(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_g_selection(struct file *file, void *priv, +static int vidioc_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct au0828_dev *dev =3D video_drvdata(file); @@ -1635,7 +1656,8 @@ static int vidioc_g_selection(struct file *file, void= *priv, } =20 #ifdef CONFIG_VIDEO_ADV_DEBUG -static int vidioc_g_register(struct file *file, void *priv, +static int vidioc_g_register(struct file *file, + struct video_device_state *state, struct v4l2_dbg_register *reg) { struct au0828_dev *dev =3D video_drvdata(file); @@ -1648,7 +1670,8 @@ static int vidioc_g_register(struct file *file, void = *priv, return 0; } =20 -static int vidioc_s_register(struct file *file, void *priv, +static int vidioc_s_register(struct file *file, + struct video_device_state *state, const struct v4l2_dbg_register *reg) { struct au0828_dev *dev =3D video_drvdata(file); @@ -1660,13 +1683,14 @@ static int vidioc_s_register(struct file *file, voi= d *priv, } #endif =20 -static int vidioc_log_status(struct file *file, void *fh) +static int vidioc_log_status(struct file *file, + struct video_device_state *state) { struct video_device *vdev =3D video_devdata(file); =20 dprintk(1, "%s called\n", __func__); =20 - v4l2_ctrl_log_status(file, fh); + v4l2_ctrl_log_status(file, state); v4l2_device_call_all(vdev->v4l2_dev, 0, core, log_status); return 0; } diff --git a/drivers/media/usb/cx231xx/cx231xx-417.c b/drivers/media/usb/cx= 231xx/cx231xx-417.c index c695a97e202b7134f66d9b1438ebabfcf5628def..183a46a46ba491956807024d3d6= 11c8b15d4f7de 100644 --- a/drivers/media/usb/cx231xx/cx231xx-417.c +++ b/drivers/media/usb/cx231xx/cx231xx-417.c @@ -1462,8 +1462,9 @@ static const struct vb2_ops cx231xx_video_qops =3D { =20 /* ------------------------------------------------------------------ */ =20 -static int vidioc_g_pixelaspect(struct file *file, void *priv, - int type, struct v4l2_fract *f) +static int vidioc_g_pixelaspect(struct file *file, + struct video_device_state *state, int type, + struct v4l2_fract *f) { struct cx231xx *dev =3D video_drvdata(file); bool is_50hz =3D dev->encodernorm.id & V4L2_STD_625_50; @@ -1477,7 +1478,8 @@ static int vidioc_g_pixelaspect(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_g_selection(struct file *file, void *priv, +static int vidioc_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct cx231xx *dev =3D video_drvdata(file); @@ -1499,7 +1501,8 @@ static int vidioc_g_selection(struct file *file, void= *priv, return 0; } =20 -static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *norm) +static int vidioc_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *norm) { struct cx231xx *dev =3D video_drvdata(file); =20 @@ -1507,7 +1510,8 @@ static int vidioc_g_std(struct file *file, void *priv= , v4l2_std_id *norm) return 0; } =20 -static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id id) +static int vidioc_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id id) { struct cx231xx *dev =3D video_drvdata(file); unsigned int i; @@ -1538,7 +1542,8 @@ static int vidioc_s_std(struct file *file, void *priv= , v4l2_std_id id) return 0; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index !=3D 0) @@ -1549,7 +1554,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file,= void *priv, return 0; } =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx231xx *dev =3D video_drvdata(file); @@ -1568,7 +1574,8 @@ static int vidioc_g_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx231xx *dev =3D video_drvdata(file); @@ -1585,12 +1592,13 @@ static int vidioc_try_fmt_vid_cap(struct file *file= , void *priv, return 0; } =20 -static int vidioc_log_status(struct file *file, void *priv) +static int vidioc_log_status(struct file *file, + struct video_device_state *state) { struct cx231xx *dev =3D video_drvdata(file); =20 call_all(dev, core, log_status); - return v4l2_ctrl_log_status(file, priv); + return v4l2_ctrl_log_status(file, state); } =20 static const struct v4l2_file_operations mpeg_fops =3D { diff --git a/drivers/media/usb/cx231xx/cx231xx-video.c b/drivers/media/usb/= cx231xx/cx231xx-video.c index 2cd4e333bc4b012f97df98f8771f2508d81c3b3c..a751b55fc60e3df69e03a89fc48= 154b63bc9138c 100644 --- a/drivers/media/usb/cx231xx/cx231xx-video.c +++ b/drivers/media/usb/cx231xx/cx231xx-video.c @@ -825,7 +825,8 @@ void video_mux(struct cx231xx *dev, int index) IOCTL vidioc handling ------------------------------------------------------------------*/ =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx231xx *dev =3D video_drvdata(file); @@ -853,7 +854,8 @@ static struct cx231xx_fmt *format_by_fourcc(unsigned in= t fourcc) return NULL; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx231xx *dev =3D video_drvdata(file); @@ -885,7 +887,8 @@ static int vidioc_try_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx231xx *dev =3D video_drvdata(file); @@ -894,7 +897,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void= *priv, }; int rc; =20 - rc =3D vidioc_try_fmt_vid_cap(file, priv, f); + rc =3D vidioc_try_fmt_vid_cap(file, state, f); if (rc) return rc; =20 @@ -915,7 +918,8 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void= *priv, return rc; } =20 -static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *id) +static int vidioc_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *id) { struct cx231xx *dev =3D video_drvdata(file); =20 @@ -923,7 +927,8 @@ static int vidioc_g_std(struct file *file, void *priv, = v4l2_std_id *id) return 0; } =20 -static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id norm) +static int vidioc_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id norm) { struct cx231xx *dev =3D video_drvdata(file); struct v4l2_subdev_format format =3D { @@ -1012,7 +1017,8 @@ void cx231xx_v4l2_create_entities(struct cx231xx *dev) #endif } =20 -int cx231xx_enum_input(struct file *file, void *priv, +int cx231xx_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { struct cx231xx *dev =3D video_drvdata(file); @@ -1052,7 +1058,8 @@ int cx231xx_enum_input(struct file *file, void *priv, return 0; } =20 -int cx231xx_g_input(struct file *file, void *priv, unsigned int *i) +int cx231xx_g_input(struct file *file, struct video_device_state *state, + unsigned int *i) { struct cx231xx *dev =3D video_drvdata(file); =20 @@ -1061,7 +1068,8 @@ int cx231xx_g_input(struct file *file, void *priv, un= signed int *i) return 0; } =20 -int cx231xx_s_input(struct file *file, void *priv, unsigned int i) +int cx231xx_s_input(struct file *file, struct video_device_state *state, + unsigned int i) { struct cx231xx *dev =3D video_drvdata(file); =20 @@ -1085,7 +1093,8 @@ int cx231xx_s_input(struct file *file, void *priv, un= signed int i) return 0; } =20 -int cx231xx_g_tuner(struct file *file, void *priv, struct v4l2_tuner *t) +int cx231xx_g_tuner(struct file *file, struct video_device_state *state, + struct v4l2_tuner *t) { struct cx231xx *dev =3D video_drvdata(file); =20 @@ -1103,14 +1112,16 @@ int cx231xx_g_tuner(struct file *file, void *priv, = struct v4l2_tuner *t) return 0; } =20 -int cx231xx_s_tuner(struct file *file, void *priv, const struct v4l2_tuner= *t) +int cx231xx_s_tuner(struct file *file, struct video_device_state *state, + const struct v4l2_tuner *t) { if (0 !=3D t->index) return -EINVAL; return 0; } =20 -int cx231xx_g_frequency(struct file *file, void *priv, +int cx231xx_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct cx231xx *dev =3D video_drvdata(file); @@ -1123,7 +1134,8 @@ int cx231xx_g_frequency(struct file *file, void *priv, return 0; } =20 -int cx231xx_s_frequency(struct file *file, void *priv, +int cx231xx_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct cx231xx *dev =3D video_drvdata(file); @@ -1194,7 +1206,8 @@ int cx231xx_s_frequency(struct file *file, void *priv, =20 #ifdef CONFIG_VIDEO_ADV_DEBUG =20 -int cx231xx_g_chip_info(struct file *file, void *fh, +int cx231xx_g_chip_info(struct file *file, + struct video_device_state *state, struct v4l2_dbg_chip_info *chip) { switch (chip->match.addr) { @@ -1222,7 +1235,8 @@ int cx231xx_g_chip_info(struct file *file, void *fh, return -EINVAL; } =20 -int cx231xx_g_register(struct file *file, void *priv, +int cx231xx_g_register(struct file *file, + struct video_device_state *state, struct v4l2_dbg_register *reg) { struct cx231xx *dev =3D video_drvdata(file); @@ -1280,7 +1294,8 @@ int cx231xx_g_register(struct file *file, void *priv, return ret < 0 ? ret : 0; } =20 -int cx231xx_s_register(struct file *file, void *priv, +int cx231xx_s_register(struct file *file, + struct video_device_state *state, const struct v4l2_dbg_register *reg) { struct cx231xx *dev =3D video_drvdata(file); @@ -1327,8 +1342,9 @@ int cx231xx_s_register(struct file *file, void *priv, } #endif =20 -static int vidioc_g_pixelaspect(struct file *file, void *priv, - int type, struct v4l2_fract *f) +static int vidioc_g_pixelaspect(struct file *file, + struct video_device_state *state, int type, + struct v4l2_fract *f) { struct cx231xx *dev =3D video_drvdata(file); bool is_50hz =3D dev->norm & V4L2_STD_625_50; @@ -1342,7 +1358,8 @@ static int vidioc_g_pixelaspect(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_g_selection(struct file *file, void *priv, +static int vidioc_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct cx231xx *dev =3D video_drvdata(file); @@ -1364,7 +1381,8 @@ static int vidioc_g_selection(struct file *file, void= *priv, return 0; } =20 -int cx231xx_querycap(struct file *file, void *priv, +int cx231xx_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct cx231xx *dev =3D video_drvdata(file); @@ -1394,7 +1412,8 @@ int cx231xx_querycap(struct file *file, void *priv, return 0; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (unlikely(f->index >=3D ARRAY_SIZE(format))) @@ -1407,7 +1426,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file,= void *priv, =20 /* RAW VBI ioctls */ =20 -static int vidioc_g_fmt_vbi_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx231xx *dev =3D video_drvdata(file); @@ -1429,7 +1449,8 @@ static int vidioc_g_fmt_vbi_cap(struct file *file, vo= id *priv, =20 } =20 -static int vidioc_try_fmt_vbi_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cx231xx *dev =3D video_drvdata(file); @@ -1452,17 +1473,19 @@ static int vidioc_try_fmt_vbi_cap(struct file *file= , void *priv, =20 } =20 -static int vidioc_s_fmt_vbi_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { - return vidioc_try_fmt_vbi_cap(file, priv, f); + return vidioc_try_fmt_vbi_cap(file, state, f); } =20 /* ----------------------------------------------------------- */ /* RADIO ESPECIFIC IOCTLS */ /* ----------------------------------------------------------- */ =20 -static int radio_g_tuner(struct file *file, void *priv, struct v4l2_tuner = *t) +static int radio_g_tuner(struct file *file, struct video_device_state *sta= te, + struct v4l2_tuner *t) { struct cx231xx *dev =3D video_drvdata(file); =20 @@ -1475,7 +1498,9 @@ static int radio_g_tuner(struct file *file, void *pri= v, struct v4l2_tuner *t) =20 return 0; } -static int radio_s_tuner(struct file *file, void *priv, const struct v4l2_= tuner *t) + +static int radio_s_tuner(struct file *file, struct video_device_state *sta= te, + const struct v4l2_tuner *t) { struct cx231xx *dev =3D video_drvdata(file); =20 diff --git a/drivers/media/usb/cx231xx/cx231xx.h b/drivers/media/usb/cx231x= x/cx231xx.h index 19f5036a78d7f42aebdfe164025477a68eadf1b7..0e92db0b0455333d831095946d0= d791b2a017bae 100644 --- a/drivers/media/usb/cx231xx/cx231xx.h +++ b/drivers/media/usb/cx231xx/cx231xx.h @@ -924,23 +924,28 @@ void cx231xx_unregister_extension(struct cx231xx_ops = *dev); void cx231xx_init_extension(struct cx231xx *dev); void cx231xx_close_extension(struct cx231xx *dev); void cx231xx_v4l2_create_entities(struct cx231xx *dev); -int cx231xx_querycap(struct file *file, void *priv, - struct v4l2_capability *cap); -int cx231xx_g_tuner(struct file *file, void *priv, struct v4l2_tuner *t); -int cx231xx_s_tuner(struct file *file, void *priv, const struct v4l2_tuner= *t); -int cx231xx_g_frequency(struct file *file, void *priv, - struct v4l2_frequency *f); -int cx231xx_s_frequency(struct file *file, void *priv, - const struct v4l2_frequency *f); -int cx231xx_enum_input(struct file *file, void *priv, - struct v4l2_input *i); -int cx231xx_g_input(struct file *file, void *priv, unsigned int *i); -int cx231xx_s_input(struct file *file, void *priv, unsigned int i); -int cx231xx_g_chip_info(struct file *file, void *fh, struct v4l2_dbg_chip_= info *chip); -int cx231xx_g_register(struct file *file, void *priv, - struct v4l2_dbg_register *reg); -int cx231xx_s_register(struct file *file, void *priv, - const struct v4l2_dbg_register *reg); +int cx231xx_querycap(struct file *file, struct video_device_state *state, + struct v4l2_capability *cap); +int cx231xx_g_tuner(struct file *file, struct video_device_state *state, + struct v4l2_tuner *t); +int cx231xx_s_tuner(struct file *file, struct video_device_state *state, + const struct v4l2_tuner *t); +int cx231xx_g_frequency(struct file *file, struct video_device_state *stat= e, + struct v4l2_frequency *f); +int cx231xx_s_frequency(struct file *file, struct video_device_state *stat= e, + const struct v4l2_frequency *f); +int cx231xx_enum_input(struct file *file, struct video_device_state *state, + struct v4l2_input *i); +int cx231xx_g_input(struct file *file, struct video_device_state *state, + unsigned int *i); +int cx231xx_s_input(struct file *file, struct video_device_state *state, + unsigned int i); +int cx231xx_g_chip_info(struct file *file, struct video_device_state *stat= e, + struct v4l2_dbg_chip_info *chip); +int cx231xx_g_register(struct file *file, struct video_device_state *state, + struct v4l2_dbg_register *reg); +int cx231xx_s_register(struct file *file, struct video_device_state *state, + const struct v4l2_dbg_register *reg); =20 /* Provided by cx231xx-cards.c */ extern void cx231xx_pre_card_setup(struct cx231xx *dev); diff --git a/drivers/media/usb/dvb-usb/cxusb-analog.c b/drivers/media/usb/d= vb-usb/cxusb-analog.c index 3bbee1fcbc8dc3d7ef7b408333d4af1f16bb1d6d..a7e209e8173bb2d2795202f8568= 87e0a6ad46b7d 100644 --- a/drivers/media/usb/dvb-usb/cxusb-analog.c +++ b/drivers/media/usb/dvb-usb/cxusb-analog.c @@ -962,7 +962,8 @@ static const __u32 videocaps =3D V4L2_CAP_VIDEO_CAPTURE= | V4L2_CAP_TUNER | V4L2_CAP_READWRITE | V4L2_CAP_STREAMING; static const __u32 radiocaps =3D V4L2_CAP_TUNER | V4L2_CAP_RADIO; =20 -static int cxusb_medion_v_querycap(struct file *file, void *fh, +static int cxusb_medion_v_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct dvb_usb_device *dvbdev =3D video_drvdata(file); @@ -977,7 +978,8 @@ static int cxusb_medion_v_querycap(struct file *file, v= oid *fh, return 0; } =20 -static int cxusb_medion_v_enum_fmt_vid_cap(struct file *file, void *fh, +static int cxusb_medion_v_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index !=3D 0) @@ -988,7 +990,8 @@ static int cxusb_medion_v_enum_fmt_vid_cap(struct file = *file, void *fh, return 0; } =20 -static int cxusb_medion_g_fmt_vid_cap(struct file *file, void *fh, +static int cxusb_medion_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct dvb_usb_device *dvbdev =3D video_drvdata(file); @@ -1051,13 +1054,15 @@ static int cxusb_medion_try_s_fmt_vid_cap(struct fi= le *file, return 0; } =20 -static int cxusb_medion_try_fmt_vid_cap(struct file *file, void *fh, +static int cxusb_medion_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { return cxusb_medion_try_s_fmt_vid_cap(file, f, false); } =20 -static int cxusb_medion_s_fmt_vid_cap(struct file *file, void *fh, +static int cxusb_medion_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { return cxusb_medion_try_s_fmt_vid_cap(file, f, true); @@ -1082,7 +1087,8 @@ static const struct { =20 #define CXUSB_INPUT_CNT ARRAY_SIZE(cxusb_medion_inputs) =20 -static int cxusb_medion_enum_input(struct file *file, void *fh, +static int cxusb_medion_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { struct dvb_usb_device *dvbdev =3D video_drvdata(file); @@ -1113,7 +1119,8 @@ static int cxusb_medion_enum_input(struct file *file,= void *fh, return 0; } =20 -static int cxusb_medion_g_input(struct file *file, void *fh, +static int cxusb_medion_g_input(struct file *file, + struct video_device_state *state, unsigned int *i) { struct dvb_usb_device *dvbdev =3D video_drvdata(file); @@ -1182,7 +1189,8 @@ static int cxusb_medion_set_norm(struct cxusb_medion_= dev *cxdev, return 0; } =20 -static int cxusb_medion_s_input(struct file *file, void *fh, +static int cxusb_medion_s_input(struct file *file, + struct video_device_state *state, unsigned int i) { struct dvb_usb_device *dvbdev =3D video_drvdata(file); @@ -1210,7 +1218,8 @@ static int cxusb_medion_s_input(struct file *file, vo= id *fh, return 0; } =20 -static int cxusb_medion_g_tuner(struct file *file, void *fh, +static int cxusb_medion_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *tuner) { struct dvb_usb_device *dvbdev =3D video_drvdata(file); @@ -1267,7 +1276,8 @@ static int cxusb_medion_g_tuner(struct file *file, vo= id *fh, return 0; } =20 -static int cxusb_medion_s_tuner(struct file *file, void *fh, +static int cxusb_medion_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *tuner) { struct dvb_usb_device *dvbdev =3D video_drvdata(file); @@ -1298,7 +1308,8 @@ static int cxusb_medion_s_tuner(struct file *file, vo= id *fh, return v4l2_subdev_call(cxdev->cx25840, tuner, s_tuner, tuner); } =20 -static int cxusb_medion_g_frequency(struct file *file, void *fh, +static int cxusb_medion_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *freq) { struct dvb_usb_device *dvbdev =3D video_drvdata(file); @@ -1310,7 +1321,8 @@ static int cxusb_medion_g_frequency(struct file *file= , void *fh, return v4l2_subdev_call(cxdev->tuner, tuner, g_frequency, freq); } =20 -static int cxusb_medion_s_frequency(struct file *file, void *fh, +static int cxusb_medion_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *freq) { struct dvb_usb_device *dvbdev =3D video_drvdata(file); @@ -1341,7 +1353,8 @@ static int cxusb_medion_s_frequency(struct file *file= , void *fh, return v4l2_subdev_call(cxdev->cx25840, tuner, s_frequency, freq); } =20 -static int cxusb_medion_g_std(struct file *file, void *fh, +static int cxusb_medion_g_std(struct file *file, + struct video_device_state *state, v4l2_std_id *norm) { struct dvb_usb_device *dvbdev =3D video_drvdata(file); @@ -1355,7 +1368,8 @@ static int cxusb_medion_g_std(struct file *file, void= *fh, return 0; } =20 -static int cxusb_medion_s_std(struct file *file, void *fh, +static int cxusb_medion_s_std(struct file *file, + struct video_device_state *state, v4l2_std_id norm) { struct dvb_usb_device *dvbdev =3D video_drvdata(file); @@ -1364,7 +1378,8 @@ static int cxusb_medion_s_std(struct file *file, void= *fh, return cxusb_medion_set_norm(cxdev, norm); } =20 -static int cxusb_medion_querystd(struct file *file, void *fh, +static int cxusb_medion_querystd(struct file *file, + struct video_device_state *state, v4l2_std_id *norm) { struct dvb_usb_device *dvbdev =3D video_drvdata(file); @@ -1396,7 +1411,8 @@ static int cxusb_medion_querystd(struct file *file, v= oid *fh, return 0; } =20 -static int cxusb_medion_log_status(struct file *file, void *fh) +static int cxusb_medion_log_status(struct file *file, + struct video_device_state *state) { struct dvb_usb_device *dvbdev =3D video_drvdata(file); struct cxusb_medion_dev *cxdev =3D dvbdev->priv; diff --git a/drivers/media/usb/em28xx/em28xx-video.c b/drivers/media/usb/em= 28xx/em28xx-video.c index 2dfa3242a7ab52b7dcaf279efe54bbcf00658fdf..796198e3aa4f8e64fcc45e1668e= bc4d743508983 100644 --- a/drivers/media/usb/em28xx/em28xx-video.c +++ b/drivers/media/usb/em28xx/em28xx-video.c @@ -1407,7 +1407,8 @@ static void scale_to_size(struct em28xx *dev, * IOCTL vidioc handling */ =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct em28xx *dev =3D video_drvdata(file); @@ -1440,7 +1441,8 @@ static struct em28xx_fmt *format_by_fourcc(unsigned i= nt fourcc) return NULL; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct em28xx *dev =3D video_drvdata(file); @@ -1525,7 +1527,8 @@ static int em28xx_set_video_format(struct em28xx *dev= , unsigned int fourcc, return 0; } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct em28xx *dev =3D video_drvdata(file); @@ -1534,13 +1537,14 @@ static int vidioc_s_fmt_vid_cap(struct file *file, = void *priv, if (vb2_is_busy(&v4l2->vb_vidq)) return -EBUSY; =20 - vidioc_try_fmt_vid_cap(file, priv, f); + vidioc_try_fmt_vid_cap(file, state, f); =20 return em28xx_set_video_format(dev, f->fmt.pix.pixelformat, f->fmt.pix.width, f->fmt.pix.height); } =20 -static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *norm) +static int vidioc_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *norm) { struct em28xx *dev =3D video_drvdata(file); =20 @@ -1549,7 +1553,9 @@ static int vidioc_g_std(struct file *file, void *priv= , v4l2_std_id *norm) return 0; } =20 -static int vidioc_querystd(struct file *file, void *priv, v4l2_std_id *nor= m) +static int vidioc_querystd(struct file *file, + struct video_device_state *state, + v4l2_std_id *norm) { struct em28xx *dev =3D video_drvdata(file); =20 @@ -1558,7 +1564,8 @@ static int vidioc_querystd(struct file *file, void *p= riv, v4l2_std_id *norm) return 0; } =20 -static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id norm) +static int vidioc_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id norm) { struct em28xx *dev =3D video_drvdata(file); struct em28xx_v4l2 *v4l2 =3D dev->v4l2; @@ -1575,7 +1582,7 @@ static int vidioc_s_std(struct file *file, void *priv= , v4l2_std_id norm) /* Adjusts width/height, if needed */ f.fmt.pix.width =3D 720; f.fmt.pix.height =3D (norm & V4L2_STD_525_60) ? 480 : 576; - vidioc_try_fmt_vid_cap(file, priv, &f); + vidioc_try_fmt_vid_cap(file, state, &f); =20 /* set new image size */ v4l2->width =3D f.fmt.pix.width; @@ -1589,7 +1596,8 @@ static int vidioc_s_std(struct file *file, void *priv= , v4l2_std_id norm) return 0; } =20 -static int vidioc_g_parm(struct file *file, void *priv, +static int vidioc_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *p) { struct v4l2_subdev_frame_interval ival =3D { 0 }; @@ -1617,7 +1625,8 @@ static int vidioc_g_parm(struct file *file, void *pri= v, return rc; } =20 -static int vidioc_s_parm(struct file *file, void *priv, +static int vidioc_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *p) { struct em28xx *dev =3D video_drvdata(file); @@ -1645,7 +1654,8 @@ static int vidioc_s_parm(struct file *file, void *pri= v, return rc; } =20 -static int vidioc_enum_input(struct file *file, void *priv, +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { struct em28xx *dev =3D video_drvdata(file); @@ -1679,7 +1689,8 @@ static int vidioc_enum_input(struct file *file, void = *priv, return 0; } =20 -static int vidioc_g_input(struct file *file, void *priv, unsigned int *i) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { struct em28xx *dev =3D video_drvdata(file); =20 @@ -1688,7 +1699,8 @@ static int vidioc_g_input(struct file *file, void *pr= iv, unsigned int *i) return 0; } =20 -static int vidioc_s_input(struct file *file, void *priv, unsigned int i) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int i) { struct em28xx *dev =3D video_drvdata(file); =20 @@ -1756,7 +1768,9 @@ static int em28xx_fill_audio_input(struct em28xx *dev, return 0; } =20 -static int vidioc_enumaudio(struct file *file, void *fh, struct v4l2_audio= *a) +static int vidioc_enumaudio(struct file *file, + struct video_device_state *state, + struct v4l2_audio *a) { struct em28xx *dev =3D video_drvdata(file); =20 @@ -1766,7 +1780,8 @@ static int vidioc_enumaudio(struct file *file, void *= fh, struct v4l2_audio *a) return em28xx_fill_audio_input(dev, __func__, a, a->index); } =20 -static int vidioc_g_audio(struct file *file, void *priv, struct v4l2_audio= *a) +static int vidioc_g_audio(struct file *file, struct video_device_state *st= ate, + struct v4l2_audio *a) { struct em28xx *dev =3D video_drvdata(file); int i; @@ -1779,7 +1794,8 @@ static int vidioc_g_audio(struct file *file, void *pr= iv, struct v4l2_audio *a) return -EINVAL; } =20 -static int vidioc_s_audio(struct file *file, void *priv, +static int vidioc_s_audio(struct file *file, + struct video_device_state *state, const struct v4l2_audio *a) { struct em28xx *dev =3D video_drvdata(file); @@ -1819,7 +1835,8 @@ static int vidioc_s_audio(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_g_tuner(struct file *file, void *priv, +static int vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *t) { struct em28xx *dev =3D video_drvdata(file); @@ -1833,7 +1850,8 @@ static int vidioc_g_tuner(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *t) { struct em28xx *dev =3D video_drvdata(file); @@ -1845,7 +1863,8 @@ static int vidioc_s_tuner(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct em28xx *dev =3D video_drvdata(file); @@ -1858,7 +1877,8 @@ static int vidioc_g_frequency(struct file *file, void= *priv, return 0; } =20 -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct v4l2_frequency new_freq =3D *f; @@ -1876,7 +1896,8 @@ static int vidioc_s_frequency(struct file *file, void= *priv, } =20 #ifdef CONFIG_VIDEO_ADV_DEBUG -static int vidioc_g_chip_info(struct file *file, void *priv, +static int vidioc_g_chip_info(struct file *file, + struct video_device_state *state, struct v4l2_dbg_chip_info *chip) { struct em28xx *dev =3D video_drvdata(file); @@ -1903,7 +1924,8 @@ static int em28xx_reg_len(int reg) } } =20 -static int vidioc_g_register(struct file *file, void *priv, +static int vidioc_g_register(struct file *file, + struct video_device_state *state, struct v4l2_dbg_register *reg) { struct em28xx *dev =3D video_drvdata(file); @@ -1944,7 +1966,8 @@ static int vidioc_g_register(struct file *file, void = *priv, return 0; } =20 -static int vidioc_s_register(struct file *file, void *priv, +static int vidioc_s_register(struct file *file, + struct video_device_state *state, const struct v4l2_dbg_register *reg) { struct em28xx *dev =3D video_drvdata(file); @@ -1963,7 +1986,8 @@ static int vidioc_s_register(struct file *file, void = *priv, } #endif =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct em28xx *dev =3D video_drvdata(file); @@ -1987,7 +2011,8 @@ static int vidioc_querycap(struct file *file, void *= priv, return 0; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (unlikely(f->index >=3D ARRAY_SIZE(format))) @@ -1998,7 +2023,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file,= void *priv, return 0; } =20 -static int vidioc_enum_framesizes(struct file *file, void *priv, +static int vidioc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct em28xx *dev =3D video_drvdata(file); @@ -2042,7 +2068,8 @@ static int vidioc_enum_framesizes(struct file *file, = void *priv, =20 /* RAW VBI ioctls */ =20 -static int vidioc_g_fmt_vbi_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *format) { struct em28xx *dev =3D video_drvdata(file); @@ -2075,7 +2102,8 @@ static int vidioc_g_fmt_vbi_cap(struct file *file, vo= id *priv, * RADIO ESPECIFIC IOCTLS */ =20 -static int radio_g_tuner(struct file *file, void *priv, +static int radio_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *t) { struct em28xx *dev =3D video_drvdata(file); @@ -2090,7 +2118,8 @@ static int radio_g_tuner(struct file *file, void *pri= v, return 0; } =20 -static int radio_s_tuner(struct file *file, void *priv, +static int radio_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *t) { struct em28xx *dev =3D video_drvdata(file); diff --git a/drivers/media/usb/go7007/go7007-v4l2.c b/drivers/media/usb/go7= 007/go7007-v4l2.c index 2087ffcb85a5a6d1f89b66a81d65f01772758c9f..22b09429beedc259c94b4d18ba8= fbb68cf054b0a 100644 --- a/drivers/media/usb/go7007/go7007-v4l2.c +++ b/drivers/media/usb/go7007/go7007-v4l2.c @@ -271,7 +271,8 @@ static int set_capture_size(struct go7007 *go, struct v= 4l2_format *fmt, int try) return 0; } =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct go7007 *go =3D video_drvdata(file); @@ -282,7 +283,8 @@ static int vidioc_querycap(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *fmt) { switch (fmt->index) { @@ -304,7 +306,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct go7007 *go =3D video_drvdata(file); @@ -321,7 +324,8 @@ static int vidioc_g_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct go7007 *go =3D video_drvdata(file); @@ -329,7 +333,8 @@ static int vidioc_try_fmt_vid_cap(struct file *file, vo= id *priv, return set_capture_size(go, fmt, 1); } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct go7007 *go =3D video_drvdata(file); @@ -454,7 +459,8 @@ static const struct vb2_ops go7007_video_qops =3D { .stop_streaming =3D go7007_stop_streaming, }; =20 -static int vidioc_g_parm(struct file *filp, void *priv, +static int vidioc_g_parm(struct file *filp, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct go7007 *go =3D video_drvdata(filp); @@ -473,7 +479,8 @@ static int vidioc_g_parm(struct file *filp, void *priv, return 0; } =20 -static int vidioc_s_parm(struct file *filp, void *priv, +static int vidioc_s_parm(struct file *filp, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct go7007 *go =3D video_drvdata(filp); @@ -490,7 +497,7 @@ static int vidioc_s_parm(struct file *filp, void *priv, else go->fps_scale =3D 1; =20 - return vidioc_g_parm(filp, priv, parm); + return vidioc_g_parm(filp, state, parm); } =20 /* VIDIOC_ENUMSTD on go7007 were used for enumerating the supported fps and @@ -503,7 +510,8 @@ static int vidioc_s_parm(struct file *filp, void *priv, =20 The two functions below implement the newer ioctls */ -static int vidioc_enum_framesizes(struct file *filp, void *priv, +static int vidioc_enum_framesizes(struct file *filp, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct go7007 *go =3D video_drvdata(filp); @@ -522,7 +530,8 @@ static int vidioc_enum_framesizes(struct file *filp, vo= id *priv, return 0; } =20 -static int vidioc_enum_frameintervals(struct file *filp, void *priv, +static int vidioc_enum_frameintervals(struct file *filp, + struct video_device_state *state, struct v4l2_frmivalenum *fival) { struct go7007 *go =3D video_drvdata(filp); @@ -550,7 +559,8 @@ static int vidioc_enum_frameintervals(struct file *filp= , void *priv, return 0; } =20 -static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *std) +static int vidioc_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *std) { struct go7007 *go =3D video_drvdata(file); =20 @@ -573,7 +583,8 @@ static int go7007_s_std(struct go7007 *go) return 0; } =20 -static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id std) +static int vidioc_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id std) { struct go7007 *go =3D video_drvdata(file); =20 @@ -585,14 +596,16 @@ static int vidioc_s_std(struct file *file, void *priv= , v4l2_std_id std) return go7007_s_std(go); } =20 -static int vidioc_querystd(struct file *file, void *priv, v4l2_std_id *std) +static int vidioc_querystd(struct file *file, + struct video_device_state *state, v4l2_std_id *std) { struct go7007 *go =3D video_drvdata(file); =20 return call_all(&go->v4l2_dev, video, querystd, std); } =20 -static int vidioc_enum_input(struct file *file, void *priv, +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { struct go7007 *go =3D video_drvdata(file); @@ -624,7 +637,8 @@ static int vidioc_enum_input(struct file *file, void *p= riv, } =20 =20 -static int vidioc_g_input(struct file *file, void *priv, unsigned int *inp= ut) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *input) { struct go7007 *go =3D video_drvdata(file); =20 @@ -633,7 +647,9 @@ static int vidioc_g_input(struct file *file, void *priv= , unsigned int *input) return 0; } =20 -static int vidioc_enumaudio(struct file *file, void *fh, struct v4l2_audio= *a) +static int vidioc_enumaudio(struct file *file, + struct video_device_state *state, + struct v4l2_audio *a) { struct go7007 *go =3D video_drvdata(file); =20 @@ -645,7 +661,8 @@ static int vidioc_enumaudio(struct file *file, void *fh= , struct v4l2_audio *a) return 0; } =20 -static int vidioc_g_audio(struct file *file, void *fh, struct v4l2_audio *= a) +static int vidioc_g_audio(struct file *file, struct video_device_state *st= ate, + struct v4l2_audio *a) { struct go7007 *go =3D video_drvdata(file); =20 @@ -656,8 +673,8 @@ static int vidioc_g_audio(struct file *file, void *fh, = struct v4l2_audio *a) return 0; } =20 -static int vidioc_s_audio(struct file *file, void *fh, - const struct v4l2_audio *a) +static int vidioc_s_audio(struct file *file, + struct video_device_state *state, const struct v4l2_audio *a) { struct go7007 *go =3D video_drvdata(file); =20 @@ -685,7 +702,8 @@ static void go7007_s_input(struct go7007 *go) } } =20 -static int vidioc_s_input(struct file *file, void *priv, unsigned int inpu= t) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int input) { struct go7007 *go =3D video_drvdata(file); =20 @@ -700,7 +718,8 @@ static int vidioc_s_input(struct file *file, void *priv= , unsigned int input) return 0; } =20 -static int vidioc_g_tuner(struct file *file, void *priv, +static int vidioc_g_tuner(struct file *file, + struct video_device_state *state, struct v4l2_tuner *t) { struct go7007 *go =3D video_drvdata(file); @@ -712,7 +731,8 @@ static int vidioc_g_tuner(struct file *file, void *priv, return call_all(&go->v4l2_dev, tuner, g_tuner, t); } =20 -static int vidioc_s_tuner(struct file *file, void *priv, +static int vidioc_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *t) { struct go7007 *go =3D video_drvdata(file); @@ -723,7 +743,8 @@ static int vidioc_s_tuner(struct file *file, void *priv, return call_all(&go->v4l2_dev, tuner, s_tuner, t); } =20 -static int vidioc_g_frequency(struct file *file, void *priv, +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct go7007 *go =3D video_drvdata(file); @@ -734,7 +755,8 @@ static int vidioc_g_frequency(struct file *file, void *= priv, return call_all(&go->v4l2_dev, tuner, g_frequency, f); } =20 -static int vidioc_s_frequency(struct file *file, void *priv, +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct go7007 *go =3D video_drvdata(file); @@ -745,11 +767,12 @@ static int vidioc_s_frequency(struct file *file, void= *priv, return call_all(&go->v4l2_dev, tuner, s_frequency, f); } =20 -static int vidioc_log_status(struct file *file, void *priv) +static int vidioc_log_status(struct file *file, + struct video_device_state *state) { struct go7007 *go =3D video_drvdata(file); =20 - v4l2_ctrl_log_status(file, priv); + v4l2_ctrl_log_status(file, state); return call_all(&go->v4l2_dev, core, log_status); } =20 diff --git a/drivers/media/usb/gspca/gspca.c b/drivers/media/usb/gspca/gspc= a.c index 3fc15d16df8e10d4762c1f0a6c7dd2f7c57c2675..4d0cb2b93c0fdea6a9f9221b0e9= ec2460f5019ee 100644 --- a/drivers/media/usb/gspca/gspca.c +++ b/drivers/media/usb/gspca/gspca.c @@ -967,7 +967,8 @@ static int gspca_get_mode(struct gspca_dev *gspca_dev, } =20 #ifdef CONFIG_VIDEO_ADV_DEBUG -static int vidioc_g_chip_info(struct file *file, void *priv, +static int vidioc_g_chip_info(struct file *file, + struct video_device_state *state, struct v4l2_dbg_chip_info *chip) { struct gspca_dev *gspca_dev =3D video_drvdata(file); @@ -978,7 +979,8 @@ static int vidioc_g_chip_info(struct file *file, void *= priv, return chip->match.addr ? -EINVAL : 0; } =20 -static int vidioc_g_register(struct file *file, void *priv, +static int vidioc_g_register(struct file *file, + struct video_device_state *state, struct v4l2_dbg_register *reg) { struct gspca_dev *gspca_dev =3D video_drvdata(file); @@ -987,7 +989,8 @@ static int vidioc_g_register(struct file *file, void *p= riv, return gspca_dev->sd_desc->get_register(gspca_dev, reg); } =20 -static int vidioc_s_register(struct file *file, void *priv, +static int vidioc_s_register(struct file *file, + struct video_device_state *state, const struct v4l2_dbg_register *reg) { struct gspca_dev *gspca_dev =3D video_drvdata(file); @@ -997,7 +1000,8 @@ static int vidioc_s_register(struct file *file, void *= priv, } #endif =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *fmtdesc) { struct gspca_dev *gspca_dev =3D video_drvdata(file); @@ -1029,7 +1033,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file,= void *priv, return 0; } =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct gspca_dev *gspca_dev =3D video_drvdata(file); @@ -1075,7 +1080,8 @@ static int try_fmt_vid_cap(struct gspca_dev *gspca_de= v, return mode; /* used when s_fmt */ } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct gspca_dev *gspca_dev =3D video_drvdata(file); @@ -1088,7 +1094,8 @@ static int vidioc_try_fmt_vid_cap(struct file *file, = void *priv, return 0; } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct gspca_dev *gspca_dev =3D video_drvdata(file); @@ -1113,7 +1120,8 @@ static int vidioc_s_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_enum_framesizes(struct file *file, void *priv, +static int vidioc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct gspca_dev *gspca_dev =3D video_drvdata(file); @@ -1142,7 +1150,8 @@ static int vidioc_enum_framesizes(struct file *file, = void *priv, return -EINVAL; } =20 -static int vidioc_enum_frameintervals(struct file *filp, void *priv, +static int vidioc_enum_frameintervals(struct file *filp, + struct video_device_state *state, struct v4l2_frmivalenum *fival) { struct gspca_dev *gspca_dev =3D video_drvdata(filp); @@ -1186,7 +1195,8 @@ static void gspca_release(struct v4l2_device *v4l2_de= vice) kfree(gspca_dev); } =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct gspca_dev *gspca_dev =3D video_drvdata(file); @@ -1207,7 +1217,8 @@ static int vidioc_querycap(struct file *file, void *= priv, return 0; } =20 -static int vidioc_enum_input(struct file *file, void *priv, +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *input) { struct gspca_dev *gspca_dev =3D video_drvdata(file); @@ -1221,20 +1232,23 @@ static int vidioc_enum_input(struct file *file, voi= d *priv, return 0; } =20 -static int vidioc_g_input(struct file *file, void *priv, unsigned int *i) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { *i =3D 0; return 0; } =20 -static int vidioc_s_input(struct file *file, void *priv, unsigned int i) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int i) { if (i > 0) return -EINVAL; return 0; } =20 -static int vidioc_g_jpegcomp(struct file *file, void *priv, +static int vidioc_g_jpegcomp(struct file *file, + struct video_device_state *state, struct v4l2_jpegcompression *jpegcomp) { struct gspca_dev *gspca_dev =3D video_drvdata(file); @@ -1243,7 +1257,8 @@ static int vidioc_g_jpegcomp(struct file *file, void = *priv, return gspca_dev->sd_desc->get_jcomp(gspca_dev, jpegcomp); } =20 -static int vidioc_s_jpegcomp(struct file *file, void *priv, +static int vidioc_s_jpegcomp(struct file *file, + struct video_device_state *state, const struct v4l2_jpegcompression *jpegcomp) { struct gspca_dev *gspca_dev =3D video_drvdata(file); @@ -1252,7 +1267,8 @@ static int vidioc_s_jpegcomp(struct file *file, void = *priv, return gspca_dev->sd_desc->set_jcomp(gspca_dev, jpegcomp); } =20 -static int vidioc_g_parm(struct file *filp, void *priv, +static int vidioc_g_parm(struct file *filp, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct gspca_dev *gspca_dev =3D video_drvdata(filp); @@ -1268,7 +1284,8 @@ static int vidioc_g_parm(struct file *filp, void *pri= v, return gspca_dev->usb_err; } =20 -static int vidioc_s_parm(struct file *filp, void *priv, +static int vidioc_s_parm(struct file *filp, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct gspca_dev *gspca_dev =3D video_drvdata(filp); diff --git a/drivers/media/usb/hackrf/hackrf.c b/drivers/media/usb/hackrf/h= ackrf.c index 0b50de8775a38deb11c50da799c98b1a1ef14d0a..4b5a2f5f311c107ab6c67d946fd= 0c89b43ead5fa 100644 --- a/drivers/media/usb/hackrf/hackrf.c +++ b/drivers/media/usb/hackrf/hackrf.c @@ -890,8 +890,8 @@ static const struct vb2_ops hackrf_vb2_ops =3D { .stop_streaming =3D hackrf_stop_streaming, }; =20 -static int hackrf_querycap(struct file *file, void *fh, - struct v4l2_capability *cap) +static int hackrf_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct hackrf_dev *dev =3D video_drvdata(file); struct usb_interface *intf =3D dev->intf; @@ -909,7 +909,8 @@ static int hackrf_querycap(struct file *file, void *fh, return 0; } =20 -static int hackrf_s_fmt_sdr(struct file *file, void *priv, +static int hackrf_s_fmt_sdr(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct hackrf_dev *dev =3D video_drvdata(file); @@ -945,7 +946,8 @@ static int hackrf_s_fmt_sdr(struct file *file, void *pr= iv, return 0; } =20 -static int hackrf_g_fmt_sdr(struct file *file, void *priv, +static int hackrf_g_fmt_sdr(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct hackrf_dev *dev =3D video_drvdata(file); @@ -959,7 +961,8 @@ static int hackrf_g_fmt_sdr(struct file *file, void *pr= iv, return 0; } =20 -static int hackrf_try_fmt_sdr(struct file *file, void *priv, +static int hackrf_try_fmt_sdr(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct hackrf_dev *dev =3D video_drvdata(file); @@ -981,7 +984,8 @@ static int hackrf_try_fmt_sdr(struct file *file, void *= priv, return 0; } =20 -static int hackrf_enum_fmt_sdr(struct file *file, void *priv, +static int hackrf_enum_fmt_sdr(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct hackrf_dev *dev =3D video_drvdata(file); @@ -996,8 +1000,8 @@ static int hackrf_enum_fmt_sdr(struct file *file, void= *priv, return 0; } =20 -static int hackrf_s_tuner(struct file *file, void *priv, - const struct v4l2_tuner *v) +static int hackrf_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *v) { struct hackrf_dev *dev =3D video_drvdata(file); int ret; @@ -1014,7 +1018,8 @@ static int hackrf_s_tuner(struct file *file, void *pr= iv, return ret; } =20 -static int hackrf_g_tuner(struct file *file, void *priv, struct v4l2_tuner= *v) +static int hackrf_g_tuner(struct file *file, struct video_device_state *st= ate, + struct v4l2_tuner *v) { struct hackrf_dev *dev =3D video_drvdata(file); int ret; @@ -1042,7 +1047,8 @@ static int hackrf_g_tuner(struct file *file, void *pr= iv, struct v4l2_tuner *v) return ret; } =20 -static int hackrf_s_modulator(struct file *file, void *fh, +static int hackrf_s_modulator(struct file *file, + struct video_device_state *state, const struct v4l2_modulator *a) { struct hackrf_dev *dev =3D video_drvdata(file); @@ -1052,7 +1058,8 @@ static int hackrf_s_modulator(struct file *file, void= *fh, return a->index > 1 ? -EINVAL : 0; } =20 -static int hackrf_g_modulator(struct file *file, void *fh, +static int hackrf_g_modulator(struct file *file, + struct video_device_state *state, struct v4l2_modulator *a) { struct hackrf_dev *dev =3D video_drvdata(file); @@ -1081,7 +1088,8 @@ static int hackrf_g_modulator(struct file *file, void= *fh, return ret; } =20 -static int hackrf_s_frequency(struct file *file, void *priv, +static int hackrf_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct hackrf_dev *dev =3D video_drvdata(file); @@ -1128,8 +1136,8 @@ static int hackrf_s_frequency(struct file *file, void= *priv, return ret; } =20 -static int hackrf_g_frequency(struct file *file, void *priv, - struct v4l2_frequency *f) +static int hackrf_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct hackrf_dev *dev =3D video_drvdata(file); struct usb_interface *intf =3D dev->intf; @@ -1161,7 +1169,8 @@ static int hackrf_g_frequency(struct file *file, void= *priv, return ret; } =20 -static int hackrf_enum_freq_bands(struct file *file, void *priv, +static int hackrf_enum_freq_bands(struct file *file, + struct video_device_state *state, struct v4l2_frequency_band *band) { struct hackrf_dev *dev =3D video_drvdata(file); diff --git a/drivers/media/usb/hdpvr/hdpvr-video.c b/drivers/media/usb/hdpv= r/hdpvr-video.c index 8c7ae362d992ab603827424e9159d98c79886fb8..16770b18259b11fce04f85c999b= 9759dbe06c9c6 100644 --- a/drivers/media/usb/hdpvr/hdpvr-video.c +++ b/drivers/media/usb/hdpvr/hdpvr-video.c @@ -579,7 +579,8 @@ static const struct v4l2_file_operations hdpvr_fops =3D= { * V4L2 ioctl handling */ =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct hdpvr_device *dev =3D video_drvdata(file); @@ -590,8 +591,8 @@ static int vidioc_querycap(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_s_std(struct file *file, void *priv, - v4l2_std_id std) +static int vidioc_s_std(struct file *file, + struct video_device_state *state, v4l2_std_id std) { struct hdpvr_device *dev =3D video_drvdata(file); struct hdpvr_fh *fh =3D file_to_hdpvr_fh(file); @@ -610,8 +611,8 @@ static int vidioc_s_std(struct file *file, void *priv, return hdpvr_config_call(dev, CTRL_VIDEO_STD_TYPE, std_type); } =20 -static int vidioc_g_std(struct file *file, void *priv, - v4l2_std_id *std) +static int vidioc_g_std(struct file *file, + struct video_device_state *state, v4l2_std_id *std) { struct hdpvr_device *dev =3D video_drvdata(file); struct hdpvr_fh *fh =3D file_to_hdpvr_fh(file); @@ -623,7 +624,8 @@ static int vidioc_g_std(struct file *file, void *priv, return 0; } =20 -static int vidioc_querystd(struct file *file, void *priv, v4l2_std_id *a) +static int vidioc_querystd(struct file *file, + struct video_device_state *state, v4l2_std_id *a) { struct hdpvr_device *dev =3D video_drvdata(file); struct hdpvr_fh *fh =3D file_to_hdpvr_fh(file); @@ -642,7 +644,8 @@ static int vidioc_querystd(struct file *file, void *pri= v, v4l2_std_id *a) return ret; } =20 -static int vidioc_s_dv_timings(struct file *file, void *priv, +static int vidioc_s_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct hdpvr_device *dev =3D video_drvdata(file); @@ -665,7 +668,8 @@ static int vidioc_s_dv_timings(struct file *file, void = *priv, return 0; } =20 -static int vidioc_g_dv_timings(struct file *file, void *priv, +static int vidioc_g_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct hdpvr_device *dev =3D video_drvdata(file); @@ -678,7 +682,8 @@ static int vidioc_g_dv_timings(struct file *file, void = *priv, return 0; } =20 -static int vidioc_query_dv_timings(struct file *file, void *priv, +static int vidioc_query_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct hdpvr_device *dev =3D video_drvdata(file); @@ -720,7 +725,8 @@ static int vidioc_query_dv_timings(struct file *file, v= oid *priv, return ret; } =20 -static int vidioc_enum_dv_timings(struct file *file, void *priv, +static int vidioc_enum_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_enum_dv_timings *timings) { struct hdpvr_device *dev =3D video_drvdata(file); @@ -736,7 +742,8 @@ static int vidioc_enum_dv_timings(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_dv_timings_cap(struct file *file, void *priv, +static int vidioc_dv_timings_cap(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings_cap *cap) { struct hdpvr_device *dev =3D video_drvdata(file); @@ -763,7 +770,9 @@ static const char *iname[] =3D { [HDPVR_COMPOSITE] =3D "Composite", }; =20 -static int vidioc_enum_input(struct file *file, void *priv, struct v4l2_in= put *i) +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, + struct v4l2_input *i) { unsigned int n; =20 @@ -783,7 +792,8 @@ static int vidioc_enum_input(struct file *file, void *p= riv, struct v4l2_input *i return 0; } =20 -static int vidioc_s_input(struct file *file, void *priv, +static int vidioc_s_input(struct file *file, + struct video_device_state *state, unsigned int index) { struct hdpvr_device *dev =3D video_drvdata(file); @@ -817,7 +827,8 @@ static int vidioc_s_input(struct file *file, void *priv, return retval; } =20 -static int vidioc_g_input(struct file *file, void *priv, +static int vidioc_g_input(struct file *file, + struct video_device_state *state, unsigned int *index) { struct hdpvr_device *dev =3D video_drvdata(file); @@ -833,7 +844,8 @@ static const char *audio_iname[] =3D { [HDPVR_SPDIF] =3D "SPDIF", }; =20 -static int vidioc_enumaudio(struct file *file, void *priv, +static int vidioc_enumaudio(struct file *file, + struct video_device_state *state, struct v4l2_audio *audio) { unsigned int n; @@ -849,7 +861,8 @@ static int vidioc_enumaudio(struct file *file, void *pr= iv, return 0; } =20 -static int vidioc_s_audio(struct file *file, void *priv, +static int vidioc_s_audio(struct file *file, + struct video_device_state *state, const struct v4l2_audio *audio) { struct hdpvr_device *dev =3D video_drvdata(file); @@ -868,7 +881,8 @@ static int vidioc_s_audio(struct file *file, void *priv, return retval; } =20 -static int vidioc_g_audio(struct file *file, void *priv, +static int vidioc_g_audio(struct file *file, + struct video_device_state *state, struct v4l2_audio *audio) { struct hdpvr_device *dev =3D video_drvdata(file); @@ -985,7 +999,8 @@ static int hdpvr_s_ctrl(struct v4l2_ctrl *ctrl) return ret; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index !=3D 0) @@ -996,7 +1011,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, = void *priv, return 0; } =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct hdpvr_device *dev =3D video_drvdata(file); @@ -1042,7 +1058,8 @@ static int vidioc_g_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_encoder_cmd(struct file *filp, void *priv, +static int vidioc_encoder_cmd(struct file *filp, + struct video_device_state *state, struct v4l2_encoder_cmd *a) { struct hdpvr_device *dev =3D video_drvdata(filp); @@ -1087,7 +1104,8 @@ static int vidioc_encoder_cmd(struct file *filp, void= *priv, return res; } =20 -static int vidioc_try_encoder_cmd(struct file *filp, void *priv, +static int vidioc_try_encoder_cmd(struct file *filp, + struct video_device_state *state, struct v4l2_encoder_cmd *a) { a->flags =3D 0; diff --git a/drivers/media/usb/msi2500/msi2500.c b/drivers/media/usb/msi250= 0/msi2500.c index 33099f39146afd6f59e0bd6b316d8f9e1eaa6a64..6cae78276da10be75145f377278= 4f5bbcc22be36 100644 --- a/drivers/media/usb/msi2500/msi2500.c +++ b/drivers/media/usb/msi2500/msi2500.c @@ -581,7 +581,8 @@ static void msi2500_disconnect(struct usb_interface *in= tf) v4l2_device_put(&dev->v4l2_dev); } =20 -static int msi2500_querycap(struct file *file, void *fh, +static int msi2500_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct msi2500_dev *dev =3D video_drvdata(file); @@ -885,7 +886,8 @@ static const struct vb2_ops msi2500_vb2_ops =3D { .stop_streaming =3D msi2500_stop_streaming, }; =20 -static int msi2500_enum_fmt_sdr_cap(struct file *file, void *priv, +static int msi2500_enum_fmt_sdr_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct msi2500_dev *dev =3D video_drvdata(file); @@ -900,7 +902,8 @@ static int msi2500_enum_fmt_sdr_cap(struct file *file, = void *priv, return 0; } =20 -static int msi2500_g_fmt_sdr_cap(struct file *file, void *priv, +static int msi2500_g_fmt_sdr_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct msi2500_dev *dev =3D video_drvdata(file); @@ -914,7 +917,8 @@ static int msi2500_g_fmt_sdr_cap(struct file *file, voi= d *priv, return 0; } =20 -static int msi2500_s_fmt_sdr_cap(struct file *file, void *priv, +static int msi2500_s_fmt_sdr_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct msi2500_dev *dev =3D video_drvdata(file); @@ -944,7 +948,8 @@ static int msi2500_s_fmt_sdr_cap(struct file *file, voi= d *priv, return 0; } =20 -static int msi2500_try_fmt_sdr_cap(struct file *file, void *priv, +static int msi2500_try_fmt_sdr_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct msi2500_dev *dev =3D video_drvdata(file); @@ -966,7 +971,8 @@ static int msi2500_try_fmt_sdr_cap(struct file *file, v= oid *priv, return 0; } =20 -static int msi2500_s_tuner(struct file *file, void *priv, +static int msi2500_s_tuner(struct file *file, + struct video_device_state *state, const struct v4l2_tuner *v) { struct msi2500_dev *dev =3D video_drvdata(file); @@ -984,7 +990,9 @@ static int msi2500_s_tuner(struct file *file, void *pri= v, return ret; } =20 -static int msi2500_g_tuner(struct file *file, void *priv, struct v4l2_tune= r *v) +static int msi2500_g_tuner(struct file *file, + struct video_device_state *state, + struct v4l2_tuner *v) { struct msi2500_dev *dev =3D video_drvdata(file); int ret; @@ -1007,7 +1015,8 @@ static int msi2500_g_tuner(struct file *file, void *p= riv, struct v4l2_tuner *v) return ret; } =20 -static int msi2500_g_frequency(struct file *file, void *priv, +static int msi2500_g_frequency(struct file *file, + struct video_device_state *state, struct v4l2_frequency *f) { struct msi2500_dev *dev =3D video_drvdata(file); @@ -1028,7 +1037,8 @@ static int msi2500_g_frequency(struct file *file, voi= d *priv, return ret; } =20 -static int msi2500_s_frequency(struct file *file, void *priv, +static int msi2500_s_frequency(struct file *file, + struct video_device_state *state, const struct v4l2_frequency *f) { struct msi2500_dev *dev =3D video_drvdata(file); @@ -1052,7 +1062,8 @@ static int msi2500_s_frequency(struct file *file, voi= d *priv, return ret; } =20 -static int msi2500_enum_freq_bands(struct file *file, void *priv, +static int msi2500_enum_freq_bands(struct file *file, + struct video_device_state *state, struct v4l2_frequency_band *band) { struct msi2500_dev *dev =3D video_drvdata(file); diff --git a/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c b/drivers/media/usb/p= vrusb2/pvrusb2-v4l2.c index f9535a484738a9ef25795daa11a74ccb0b914be9..87933dec13cb10f35cfc0185c55= 23224ba020791 100644 --- a/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c +++ b/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c @@ -109,7 +109,8 @@ static struct v4l2_format pvr_format [] =3D { /* * This is part of Video 4 Linux API. These procedures handle ioctl() call= s. */ -static int pvr2_querycap(struct file *file, void *priv, struct v4l2_capabi= lity *cap) +static int pvr2_querycap(struct file *file, struct video_device_state *sta= te, + struct v4l2_capability *cap) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -124,7 +125,8 @@ static int pvr2_querycap(struct file *file, void *priv,= struct v4l2_capability * return 0; } =20 -static int pvr2_g_std(struct file *file, void *priv, v4l2_std_id *std) +static int pvr2_g_std(struct file *file, struct video_device_state *state, + v4l2_std_id *std) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -137,7 +139,8 @@ static int pvr2_g_std(struct file *file, void *priv, v4= l2_std_id *std) return ret; } =20 -static int pvr2_s_std(struct file *file, void *priv, v4l2_std_id std) +static int pvr2_s_std(struct file *file, struct video_device_state *state, + v4l2_std_id std) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -149,7 +152,8 @@ static int pvr2_s_std(struct file *file, void *priv, v4= l2_std_id std) return ret; } =20 -static int pvr2_querystd(struct file *file, void *priv, v4l2_std_id *std) +static int pvr2_querystd(struct file *file, struct video_device_state *sta= te, + v4l2_std_id *std) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -162,7 +166,9 @@ static int pvr2_querystd(struct file *file, void *priv,= v4l2_std_id *std) return ret; } =20 -static int pvr2_enum_input(struct file *file, void *priv, struct v4l2_inpu= t *vi) +static int pvr2_enum_input(struct file *file, + struct video_device_state *state, + struct v4l2_input *vi) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -210,7 +216,8 @@ static int pvr2_enum_input(struct file *file, void *pri= v, struct v4l2_input *vi) return 0; } =20 -static int pvr2_g_input(struct file *file, void *priv, unsigned int *i) +static int pvr2_g_input(struct file *file, struct video_device_state *stat= e, + unsigned int *i) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -232,7 +239,8 @@ static int pvr2_g_input(struct file *file, void *priv, = unsigned int *i) return ret; } =20 -static int pvr2_s_input(struct file *file, void *priv, unsigned int inp) +static int pvr2_s_input(struct file *file, struct video_device_state *stat= e, + unsigned int inp) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -247,7 +255,8 @@ static int pvr2_s_input(struct file *file, void *priv, = unsigned int inp) return ret; } =20 -static int pvr2_enumaudio(struct file *file, void *priv, struct v4l2_audio= *vin) +static int pvr2_enumaudio(struct file *file, struct video_device_state *st= ate, + struct v4l2_audio *vin) { /* pkt: FIXME: We are returning one "fake" input here which could very well be called "whatever_we_like". @@ -271,7 +280,8 @@ static int pvr2_enumaudio(struct file *file, void *priv= , struct v4l2_audio *vin) return 0; } =20 -static int pvr2_g_audio(struct file *file, void *priv, struct v4l2_audio *= vin) +static int pvr2_g_audio(struct file *file, struct video_device_state *stat= e, + struct v4l2_audio *vin) { /* pkt: FIXME: see above comment (VIDIOC_ENUMAUDIO) */ vin->index =3D 0; @@ -280,14 +290,16 @@ static int pvr2_g_audio(struct file *file, void *priv= , struct v4l2_audio *vin) return 0; } =20 -static int pvr2_s_audio(struct file *file, void *priv, const struct v4l2_a= udio *vout) +static int pvr2_s_audio(struct file *file, struct video_device_state *stat= e, + const struct v4l2_audio *vout) { if (vout->index) return -EINVAL; return 0; } =20 -static int pvr2_g_tuner(struct file *file, void *priv, struct v4l2_tuner *= vt) +static int pvr2_g_tuner(struct file *file, struct video_device_state *stat= e, + struct v4l2_tuner *vt) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -299,7 +311,8 @@ static int pvr2_g_tuner(struct file *file, void *priv, = struct v4l2_tuner *vt) return pvr2_hdw_get_tuner_status(hdw, vt); } =20 -static int pvr2_s_tuner(struct file *file, void *priv, const struct v4l2_t= uner *vt) +static int pvr2_s_tuner(struct file *file, struct video_device_state *stat= e, + const struct v4l2_tuner *vt) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -315,7 +328,9 @@ static int pvr2_s_tuner(struct file *file, void *priv, = const struct v4l2_tuner * return ret; } =20 -static int pvr2_s_frequency(struct file *file, void *priv, const struct v4= l2_frequency *vf) +static int pvr2_s_frequency(struct file *file, + struct video_device_state *state, + const struct v4l2_frequency *vf) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -350,7 +365,9 @@ static int pvr2_s_frequency(struct file *file, void *pr= iv, const struct v4l2_fre return ret; } =20 -static int pvr2_g_frequency(struct file *file, void *priv, struct v4l2_fre= quency *vf) +static int pvr2_g_frequency(struct file *file, + struct video_device_state *state, + struct v4l2_frequency *vf) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -382,7 +399,9 @@ static int pvr2_g_frequency(struct file *file, void *pr= iv, struct v4l2_frequency return 0; } =20 -static int pvr2_enum_fmt_vid_cap(struct file *file, void *priv, struct v4l= 2_fmtdesc *fd) +static int pvr2_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *fd) { /* Only one format is supported: MPEG. */ if (fd->index) @@ -392,7 +411,9 @@ static int pvr2_enum_fmt_vid_cap(struct file *file, voi= d *priv, struct v4l2_fmtd return 0; } =20 -static int pvr2_g_fmt_vid_cap(struct file *file, void *priv, struct v4l2_f= ormat *vf) +static int pvr2_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *vf) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -412,7 +433,9 @@ static int pvr2_g_fmt_vid_cap(struct file *file, void *= priv, struct v4l2_format return 0; } =20 -static int pvr2_try_fmt_vid_cap(struct file *file, void *priv, struct v4l2= _format *vf) +static int pvr2_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *vf) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -450,12 +473,14 @@ static int pvr2_try_fmt_vid_cap(struct file *file, vo= id *priv, struct v4l2_forma return 0; } =20 -static int pvr2_s_fmt_vid_cap(struct file *file, void *priv, struct v4l2_f= ormat *vf) +static int pvr2_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *vf) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; struct pvr2_ctrl *hcp, *vcp; - int ret =3D pvr2_try_fmt_vid_cap(file, fh, vf); + int ret =3D pvr2_try_fmt_vid_cap(file, state, vf); =20 if (ret) return ret; @@ -467,7 +492,8 @@ static int pvr2_s_fmt_vid_cap(struct file *file, void *= priv, struct v4l2_format return 0; } =20 -static int pvr2_streamon(struct file *file, void *priv, enum v4l2_buf_type= i) +static int pvr2_streamon(struct file *file, struct video_device_state *sta= te, + enum v4l2_buf_type i) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -486,7 +512,8 @@ static int pvr2_streamon(struct file *file, void *priv,= enum v4l2_buf_type i) return pvr2_hdw_set_streaming(hdw, !0); } =20 -static int pvr2_streamoff(struct file *file, void *priv, enum v4l2_buf_typ= e i) +static int pvr2_streamoff(struct file *file, struct video_device_state *st= ate, + enum v4l2_buf_type i) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -500,7 +527,8 @@ static int pvr2_streamoff(struct file *file, void *priv= , enum v4l2_buf_type i) return pvr2_hdw_set_streaming(hdw, 0); } =20 -static int pvr2_query_ext_ctrl(struct file *file, void *priv, +static int pvr2_query_ext_ctrl(struct file *file, + struct video_device_state *state, struct v4l2_query_ext_ctrl *vc) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); @@ -562,7 +590,8 @@ static int pvr2_query_ext_ctrl(struct file *file, void = *priv, return 0; } =20 -static int pvr2_querymenu(struct file *file, void *priv, struct v4l2_query= menu *vm) +static int pvr2_querymenu(struct file *file, struct video_device_state *st= ate, + struct v4l2_querymenu *vm) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -577,7 +606,8 @@ static int pvr2_querymenu(struct file *file, void *priv= , struct v4l2_querymenu * return ret; } =20 -static int pvr2_g_ext_ctrls(struct file *file, void *priv, +static int pvr2_g_ext_ctrls(struct file *file, + struct video_device_state *state, struct v4l2_ext_controls *ctls) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); @@ -612,7 +642,8 @@ static int pvr2_g_ext_ctrls(struct file *file, void *pr= iv, return 0; } =20 -static int pvr2_s_ext_ctrls(struct file *file, void *priv, +static int pvr2_s_ext_ctrls(struct file *file, + struct video_device_state *state, struct v4l2_ext_controls *ctls) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); @@ -637,7 +668,8 @@ static int pvr2_s_ext_ctrls(struct file *file, void *pr= iv, return ret; } =20 -static int pvr2_try_ext_ctrls(struct file *file, void *priv, +static int pvr2_try_ext_ctrls(struct file *file, + struct video_device_state *state, struct v4l2_ext_controls *ctls) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); @@ -659,8 +691,9 @@ static int pvr2_try_ext_ctrls(struct file *file, void *= priv, return 0; } =20 -static int pvr2_g_pixelaspect(struct file *file, void *priv, - int type, struct v4l2_fract *f) +static int pvr2_g_pixelaspect(struct file *file, + struct video_device_state *state, int type, + struct v4l2_fract *f) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; @@ -675,7 +708,8 @@ static int pvr2_g_pixelaspect(struct file *file, void *= priv, return ret; } =20 -static int pvr2_g_selection(struct file *file, void *priv, +static int pvr2_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); @@ -726,7 +760,8 @@ static int pvr2_g_selection(struct file *file, void *pr= iv, return ret; } =20 -static int pvr2_s_selection(struct file *file, void *priv, +static int pvr2_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); @@ -759,7 +794,8 @@ static int pvr2_s_selection(struct file *file, void *pr= iv, return ret; } =20 -static int pvr2_log_status(struct file *file, void *priv) +static int pvr2_log_status(struct file *file, + struct video_device_state *state) { struct pvr2_v4l2_fh *fh =3D to_pvr2_v4l2_fh(file); struct pvr2_hdw *hdw =3D fh->channel.mc_head->hdw; diff --git a/drivers/media/usb/pwc/pwc-v4l.c b/drivers/media/usb/pwc/pwc-v4= l.c index 71b719d363a5df71a65b34b103b968a5b3b8cb68..986552e8a11fe4e9fe0b6b316c7= b34840be300b6 100644 --- a/drivers/media/usb/pwc/pwc-v4l.c +++ b/drivers/media/usb/pwc/pwc-v4l.c @@ -446,7 +446,9 @@ static int pwc_vidioc_try_fmt(struct pwc_device *pdev, = struct v4l2_format *f) =20 /* ioctl(VIDIOC_SET_FMT) */ =20 -static int pwc_s_fmt_vid_cap(struct file *file, void *fh, struct v4l2_form= at *f) +static int pwc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct pwc_device *pdev =3D video_drvdata(file); int ret, pixelformat, compression =3D 0; @@ -476,7 +478,8 @@ static int pwc_s_fmt_vid_cap(struct file *file, void *f= h, struct v4l2_format *f) return ret; } =20 -static int pwc_querycap(struct file *file, void *fh, struct v4l2_capabilit= y *cap) +static int pwc_querycap(struct file *file, struct video_device_state *stat= e, + struct v4l2_capability *cap) { struct pwc_device *pdev =3D video_drvdata(file); =20 @@ -486,7 +489,8 @@ static int pwc_querycap(struct file *file, void *fh, st= ruct v4l2_capability *cap return 0; } =20 -static int pwc_enum_input(struct file *file, void *fh, struct v4l2_input *= i) +static int pwc_enum_input(struct file *file, struct video_device_state *st= ate, + struct v4l2_input *i) { if (i->index) /* Only one INPUT is supported */ return -EINVAL; @@ -496,13 +500,15 @@ static int pwc_enum_input(struct file *file, void *fh= , struct v4l2_input *i) return 0; } =20 -static int pwc_g_input(struct file *file, void *fh, unsigned int *i) +static int pwc_g_input(struct file *file, struct video_device_state *state, + unsigned int *i) { *i =3D 0; return 0; } =20 -static int pwc_s_input(struct file *file, void *fh, unsigned int i) +static int pwc_s_input(struct file *file, struct video_device_state *state, + unsigned int i) { return i ? -EINVAL : 0; } @@ -864,7 +870,9 @@ static int pwc_s_ctrl(struct v4l2_ctrl *ctrl) return ret; } =20 -static int pwc_enum_fmt_vid_cap(struct file *file, void *fh, struct v4l2_f= mtdesc *f) +static int pwc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_fmtdesc *f) { struct pwc_device *pdev =3D video_drvdata(file); =20 @@ -883,7 +891,9 @@ static int pwc_enum_fmt_vid_cap(struct file *file, void= *fh, struct v4l2_fmtdesc return 0; } =20 -static int pwc_g_fmt_vid_cap(struct file *file, void *fh, struct v4l2_form= at *f) +static int pwc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct pwc_device *pdev =3D video_drvdata(file); =20 @@ -896,14 +906,17 @@ static int pwc_g_fmt_vid_cap(struct file *file, void = *fh, struct v4l2_format *f) return 0; } =20 -static int pwc_try_fmt_vid_cap(struct file *file, void *fh, struct v4l2_fo= rmat *f) +static int pwc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct pwc_device *pdev =3D video_drvdata(file); =20 return pwc_vidioc_try_fmt(pdev, f); } =20 -static int pwc_enum_framesizes(struct file *file, void *fh, +static int pwc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct pwc_device *pdev =3D video_drvdata(file); @@ -928,8 +941,9 @@ static int pwc_enum_framesizes(struct file *file, void = *fh, return -EINVAL; } =20 -static int pwc_enum_frameintervals(struct file *file, void *fh, - struct v4l2_frmivalenum *fival) +static int pwc_enum_frameintervals(struct file *file, + struct video_device_state *state, + struct v4l2_frmivalenum *fival) { struct pwc_device *pdev =3D video_drvdata(file); int size =3D -1; @@ -958,7 +972,8 @@ static int pwc_enum_frameintervals(struct file *file, v= oid *fh, return 0; } =20 -static int pwc_g_parm(struct file *file, void *fh, +static int pwc_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct pwc_device *pdev =3D video_drvdata(file); @@ -977,7 +992,8 @@ static int pwc_g_parm(struct file *file, void *fh, return 0; } =20 -static int pwc_s_parm(struct file *file, void *fh, +static int pwc_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct pwc_device *pdev =3D video_drvdata(file); @@ -1003,7 +1019,7 @@ static int pwc_s_parm(struct file *file, void *fh, ret =3D pwc_set_video_mode(pdev, pdev->width, pdev->height, pdev->pixfmt, fps, &compression, 0); =20 - pwc_g_parm(file, fh, parm); + pwc_g_parm(file, state, parm); =20 return ret; } diff --git a/drivers/media/usb/s2255/s2255drv.c b/drivers/media/usb/s2255/s= 2255drv.c index 8332f2c5aed7067035ef6475e0b3d528e7fc804f..efc9526135a5212c6c3d104a4ca= e940922357acd 100644 --- a/drivers/media/usb/s2255/s2255drv.c +++ b/drivers/media/usb/s2255/s2255drv.c @@ -706,7 +706,8 @@ static const struct vb2_ops s2255_video_qops =3D { .stop_streaming =3D stop_streaming, }; =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct s2255_vc *vc =3D video_drvdata(file); @@ -718,7 +719,8 @@ static int vidioc_querycap(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { int index =3D f->index; @@ -732,7 +734,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct s2255_vc *vc =3D video_drvdata(file); @@ -752,8 +755,9 @@ static int vidioc_g_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { const struct s2255_fmt *fmt; enum v4l2_field field; @@ -803,8 +807,9 @@ static int vidioc_try_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_format *f) +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct s2255_vc *vc =3D video_drvdata(file); const struct s2255_fmt *fmt; @@ -812,7 +817,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void= *priv, struct s2255_mode mode; int ret; =20 - ret =3D vidioc_try_fmt_vid_cap(file, vc, f); + ret =3D vidioc_try_fmt_vid_cap(file, state, f); =20 if (ret < 0) return ret; @@ -1089,7 +1094,8 @@ static void stop_streaming(struct vb2_queue *vq) spin_unlock_irqrestore(&vc->qlock, flags); } =20 -static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id i) +static int vidioc_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id i) { struct s2255_vc *vc =3D video_drvdata(file); struct s2255_mode mode; @@ -1130,7 +1136,8 @@ static int vidioc_s_std(struct file *file, void *priv= , v4l2_std_id i) return 0; } =20 -static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *i) +static int vidioc_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *i) { struct s2255_vc *vc =3D video_drvdata(file); =20 @@ -1145,7 +1152,8 @@ static int vidioc_g_std(struct file *file, void *priv= , v4l2_std_id *i) For instance, you cannot do full FPS on more than 2 channels(2 videodev= s) at once in color(you can do full fps on 4 channels with greyscale. */ -static int vidioc_enum_input(struct file *file, void *priv, +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { struct s2255_vc *vc =3D video_drvdata(file); @@ -1179,12 +1187,15 @@ static int vidioc_enum_input(struct file *file, voi= d *priv, return 0; } =20 -static int vidioc_g_input(struct file *file, void *priv, unsigned int *i) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { *i =3D 0; return 0; } -static int vidioc_s_input(struct file *file, void *priv, unsigned int i) + +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int i) { if (i > 0) return -EINVAL; @@ -1230,7 +1241,8 @@ static int s2255_s_ctrl(struct v4l2_ctrl *ctrl) return 0; } =20 -static int vidioc_g_jpegcomp(struct file *file, void *priv, +static int vidioc_g_jpegcomp(struct file *file, + struct video_device_state *state, struct v4l2_jpegcompression *jc) { struct s2255_vc *vc =3D video_drvdata(file); @@ -1241,7 +1253,8 @@ static int vidioc_g_jpegcomp(struct file *file, void = *priv, return 0; } =20 -static int vidioc_s_jpegcomp(struct file *file, void *priv, +static int vidioc_s_jpegcomp(struct file *file, + struct video_device_state *state, const struct v4l2_jpegcompression *jc) { struct s2255_vc *vc =3D video_drvdata(file); @@ -1253,7 +1266,8 @@ static int vidioc_s_jpegcomp(struct file *file, void = *priv, return 0; } =20 -static int vidioc_g_parm(struct file *file, void *priv, +static int vidioc_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *sp) { __u32 def_num, def_dem; @@ -1290,7 +1304,8 @@ static int vidioc_g_parm(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_s_parm(struct file *file, void *priv, +static int vidioc_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *sp) { struct s2255_vc *vc =3D video_drvdata(file); @@ -1344,7 +1359,8 @@ static const struct v4l2_frmsize_discrete pal_sizes[]= =3D { { 352, 288 }, }; =20 -static int vidioc_enum_framesizes(struct file *file, void *priv, +static int vidioc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fe) { struct s2255_vc *vc =3D video_drvdata(file); @@ -1362,7 +1378,8 @@ static int vidioc_enum_framesizes(struct file *file, = void *priv, return 0; } =20 -static int vidioc_enum_frameintervals(struct file *file, void *priv, +static int vidioc_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *fe) { struct s2255_vc *vc =3D video_drvdata(file); diff --git a/drivers/media/usb/stk1160/stk1160-v4l.c b/drivers/media/usb/st= k1160/stk1160-v4l.c index 715ce1dcb304129d76d73ba327858da4e89396a4..4a9efc72b47e11a7c99ba7b16ad= 6fafec0efd3e8 100644 --- a/drivers/media/usb/stk1160/stk1160-v4l.c +++ b/drivers/media/usb/stk1160/stk1160-v4l.c @@ -329,7 +329,7 @@ static const struct v4l2_file_operations stk1160_fops = =3D { * vidioc ioctls */ static int vidioc_querycap(struct file *file, - void *priv, struct v4l2_capability *cap) + struct video_device_state *state, struct v4l2_capability *cap) { struct stk1160 *dev =3D video_drvdata(file); =20 @@ -339,8 +339,8 @@ static int vidioc_querycap(struct file *file, return 0; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, - struct v4l2_fmtdesc *f) +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index !=3D 0) return -EINVAL; @@ -349,7 +349,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct stk1160 *dev =3D video_drvdata(file); @@ -468,7 +469,8 @@ static int stk1160_try_fmt(struct stk1160 *dev, struct = v4l2_format *f, return 0; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct stk1160 *dev =3D video_drvdata(file); @@ -476,7 +478,8 @@ static int vidioc_try_fmt_vid_cap(struct file *file, vo= id *priv, return stk1160_try_fmt(dev, f, NULL); } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct stk1160 *dev =3D video_drvdata(file); @@ -497,14 +500,17 @@ static int vidioc_s_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int vidioc_querystd(struct file *file, void *priv, v4l2_std_id *nor= m) +static int vidioc_querystd(struct file *file, + struct video_device_state *state, + v4l2_std_id *norm) { struct stk1160 *dev =3D video_drvdata(file); v4l2_device_call_all(&dev->v4l2_dev, 0, video, querystd, norm); return 0; } =20 -static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *norm) +static int vidioc_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *norm) { struct stk1160 *dev =3D video_drvdata(file); =20 @@ -512,7 +518,8 @@ static int vidioc_g_std(struct file *file, void *priv, = v4l2_std_id *norm) return 0; } =20 -static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id norm) +static int vidioc_s_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id norm) { struct stk1160 *dev =3D video_drvdata(file); struct vb2_queue *q =3D &dev->vb_vidq; @@ -544,7 +551,8 @@ static int vidioc_s_std(struct file *file, void *priv, = v4l2_std_id norm) } =20 =20 -static int vidioc_enum_input(struct file *file, void *priv, +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { struct stk1160 *dev =3D video_drvdata(file); @@ -563,14 +571,16 @@ static int vidioc_enum_input(struct file *file, void = *priv, return 0; } =20 -static int vidioc_g_input(struct file *file, void *priv, unsigned int *i) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { struct stk1160 *dev =3D video_drvdata(file); *i =3D dev->ctl_input; return 0; } =20 -static int vidioc_s_input(struct file *file, void *priv, unsigned int i) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int i) { struct stk1160 *dev =3D video_drvdata(file); =20 @@ -585,7 +595,8 @@ static int vidioc_s_input(struct file *file, void *priv= , unsigned int i) } =20 #ifdef CONFIG_VIDEO_ADV_DEBUG -static int vidioc_g_register(struct file *file, void *priv, +static int vidioc_g_register(struct file *file, + struct video_device_state *state, struct v4l2_dbg_register *reg) { struct stk1160 *dev =3D video_drvdata(file); @@ -600,7 +611,8 @@ static int vidioc_g_register(struct file *file, void *p= riv, return rc; } =20 -static int vidioc_s_register(struct file *file, void *priv, +static int vidioc_s_register(struct file *file, + struct video_device_state *state, const struct v4l2_dbg_register *reg) { struct stk1160 *dev =3D video_drvdata(file); diff --git a/drivers/media/usb/usbtv/usbtv-video.c b/drivers/media/usb/usbt= v/usbtv-video.c index de0328100a60dd7b4335e208fee4cd2864d5b99d..da256a4cf2481662c9df5f105f8= 649ed658558d1 100644 --- a/drivers/media/usb/usbtv/usbtv-video.c +++ b/drivers/media/usb/usbtv/usbtv-video.c @@ -602,7 +602,8 @@ static int usbtv_start(struct usbtv *usbtv) return ret; } =20 -static int usbtv_querycap(struct file *file, void *priv, +static int usbtv_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct usbtv *dev =3D video_drvdata(file); @@ -613,7 +614,8 @@ static int usbtv_querycap(struct file *file, void *priv, return 0; } =20 -static int usbtv_enum_input(struct file *file, void *priv, +static int usbtv_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *i) { struct usbtv *dev =3D video_drvdata(file); @@ -634,7 +636,8 @@ static int usbtv_enum_input(struct file *file, void *pr= iv, return 0; } =20 -static int usbtv_enum_fmt_vid_cap(struct file *file, void *priv, +static int usbtv_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index > 0) @@ -644,7 +647,8 @@ static int usbtv_enum_fmt_vid_cap(struct file *file, vo= id *priv, return 0; } =20 -static int usbtv_fmt_vid_cap(struct file *file, void *priv, +static int usbtv_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct usbtv *usbtv =3D video_drvdata(file); @@ -660,14 +664,16 @@ static int usbtv_fmt_vid_cap(struct file *file, void = *priv, return 0; } =20 -static int usbtv_g_std(struct file *file, void *priv, v4l2_std_id *norm) +static int usbtv_g_std(struct file *file, struct video_device_state *state, + v4l2_std_id *norm) { struct usbtv *usbtv =3D video_drvdata(file); *norm =3D usbtv->norm; return 0; } =20 -static int usbtv_s_std(struct file *file, void *priv, v4l2_std_id norm) +static int usbtv_s_std(struct file *file, struct video_device_state *state, + v4l2_std_id norm) { int ret =3D -EINVAL; struct usbtv *usbtv =3D video_drvdata(file); @@ -678,14 +684,16 @@ static int usbtv_s_std(struct file *file, void *priv,= v4l2_std_id norm) return ret; } =20 -static int usbtv_g_input(struct file *file, void *priv, unsigned int *i) +static int usbtv_g_input(struct file *file, struct video_device_state *sta= te, + unsigned int *i) { struct usbtv *usbtv =3D video_drvdata(file); *i =3D usbtv->input; return 0; } =20 -static int usbtv_s_input(struct file *file, void *priv, unsigned int i) +static int usbtv_s_input(struct file *file, struct video_device_state *sta= te, + unsigned int i) { struct usbtv *usbtv =3D video_drvdata(file); =20 diff --git a/drivers/media/usb/uvc/uvc_metadata.c b/drivers/media/usb/uvc/u= vc_metadata.c index c23b174965c379a1abbc51d42acacade80ff7e10..5c4f61054e8013a13c9062cfa9f= e84319b051980 100644 --- a/drivers/media/usb/uvc/uvc_metadata.c +++ b/drivers/media/usb/uvc/uvc_metadata.c @@ -23,7 +23,8 @@ * V4L2 ioctls */ =20 -static int uvc_meta_v4l2_querycap(struct file *file, void *priv, +static int uvc_meta_v4l2_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); @@ -39,7 +40,8 @@ static int uvc_meta_v4l2_querycap(struct file *file, void= *priv, return 0; } =20 -static int uvc_meta_v4l2_get_format(struct file *file, void *priv, +static int uvc_meta_v4l2_get_format(struct file *file, + struct video_device_state *state, struct v4l2_format *format) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); @@ -55,7 +57,8 @@ static int uvc_meta_v4l2_get_format(struct file *file, vo= id *priv, return 0; } =20 -static int uvc_meta_v4l2_try_format(struct file *file, void *priv, +static int uvc_meta_v4l2_try_format(struct file *file, + struct video_device_state *state, struct v4l2_format *format) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); @@ -82,7 +85,8 @@ static int uvc_meta_v4l2_try_format(struct file *file, vo= id *priv, return 0; } =20 -static int uvc_meta_v4l2_set_format(struct file *file, void *priv, +static int uvc_meta_v4l2_set_format(struct file *file, + struct video_device_state *state, struct v4l2_format *format) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); @@ -90,7 +94,7 @@ static int uvc_meta_v4l2_set_format(struct file *file, vo= id *priv, struct v4l2_meta_format *fmt =3D &format->fmt.meta; int ret; =20 - ret =3D uvc_meta_v4l2_try_format(file, priv, format); + ret =3D uvc_meta_v4l2_try_format(file, state, format); if (ret < 0) return ret; =20 @@ -107,7 +111,8 @@ static int uvc_meta_v4l2_set_format(struct file *file, = void *priv, return 0; } =20 -static int uvc_meta_v4l2_enum_formats(struct file *file, void *priv, +static int uvc_meta_v4l2_enum_formats(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *fdesc) { struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v= 4l2.c index 9e4a251eca88085a1b4e0e854370015855be92ee..ce6b9403638e71676b15cb3e18c= 41b8aa4e9c15d 100644 --- a/drivers/media/usb/uvc/uvc_v4l2.c +++ b/drivers/media/usb/uvc/uvc_v4l2.c @@ -386,7 +386,8 @@ static int uvc_v4l2_try_format(struct uvc_streaming *st= ream, return ret; } =20 -static int uvc_ioctl_g_fmt(struct file *file, void *priv, +static int uvc_ioctl_g_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct uvc_fh *handle =3D to_uvc_fh(file); @@ -416,7 +417,8 @@ static int uvc_ioctl_g_fmt(struct file *file, void *pri= v, return 0; } =20 -static int uvc_ioctl_s_fmt(struct file *file, void *priv, +static int uvc_ioctl_s_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct uvc_fh *handle =3D to_uvc_fh(file); @@ -443,7 +445,8 @@ static int uvc_ioctl_s_fmt(struct file *file, void *pri= v, return 0; } =20 -static int uvc_ioctl_g_parm(struct file *file, void *priv, +static int uvc_ioctl_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { u32 numerator, denominator; @@ -477,7 +480,8 @@ static int uvc_ioctl_g_parm(struct file *file, void *pr= iv, return 0; } =20 -static int uvc_ioctl_s_parm(struct file *file, void *priv, +static int uvc_ioctl_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct uvc_fh *handle =3D to_uvc_fh(file); @@ -599,7 +603,8 @@ static int uvc_v4l2_release(struct file *file) return 0; } =20 -static int uvc_ioctl_querycap(struct file *file, void *priv, +static int uvc_ioctl_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct uvc_fh *handle =3D to_uvc_fh(file); @@ -615,7 +620,8 @@ static int uvc_ioctl_querycap(struct file *file, void *= priv, return 0; } =20 -static int uvc_ioctl_enum_fmt(struct file *file, void *priv, +static int uvc_ioctl_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *fmt) { struct uvc_fh *handle =3D to_uvc_fh(file); @@ -639,7 +645,8 @@ static int uvc_ioctl_enum_fmt(struct file *file, void *= priv, return 0; } =20 -static int uvc_ioctl_try_fmt(struct file *file, void *priv, +static int uvc_ioctl_try_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct uvc_fh *handle =3D to_uvc_fh(file); @@ -649,7 +656,8 @@ static int uvc_ioctl_try_fmt(struct file *file, void *p= riv, return uvc_v4l2_try_format(stream, fmt, &probe, NULL, NULL); } =20 -static int uvc_ioctl_enum_input(struct file *file, void *priv, +static int uvc_ioctl_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *input) { struct uvc_fh *handle =3D to_uvc_fh(file); @@ -692,7 +700,9 @@ static int uvc_ioctl_enum_input(struct file *file, void= *priv, return 0; } =20 -static int uvc_ioctl_g_input(struct file *file, void *priv, unsigned int *= input) +static int uvc_ioctl_g_input(struct file *file, + struct video_device_state *state, + unsigned int *input) { struct uvc_fh *handle =3D to_uvc_fh(file); struct uvc_video_chain *chain =3D handle->chain; @@ -720,7 +730,9 @@ static int uvc_ioctl_g_input(struct file *file, void *p= riv, unsigned int *input) return ret; } =20 -static int uvc_ioctl_s_input(struct file *file, void *priv, unsigned int i= nput) +static int uvc_ioctl_s_input(struct file *file, + struct video_device_state *state, + unsigned int input) { struct uvc_fh *handle =3D to_uvc_fh(file); struct uvc_streaming *stream =3D handle->stream; @@ -754,7 +766,8 @@ static int uvc_ioctl_s_input(struct file *file, void *p= riv, unsigned int input) return ret; } =20 -static int uvc_ioctl_query_ext_ctrl(struct file *file, void *priv, +static int uvc_ioctl_query_ext_ctrl(struct file *file, + struct video_device_state *state, struct v4l2_query_ext_ctrl *qec) { struct uvc_fh *handle =3D to_uvc_fh(file); @@ -782,7 +795,8 @@ static int uvc_ctrl_check_access(struct uvc_video_chain= *chain, return ret; } =20 -static int uvc_ioctl_g_ext_ctrls(struct file *file, void *priv, +static int uvc_ioctl_g_ext_ctrls(struct file *file, + struct video_device_state *state, struct v4l2_ext_controls *ctrls) { struct uvc_fh *handle =3D to_uvc_fh(file); @@ -866,7 +880,8 @@ static int uvc_ioctl_s_try_ext_ctrls(struct uvc_fh *han= dle, return uvc_ctrl_rollback(handle); } =20 -static int uvc_ioctl_s_ext_ctrls(struct file *file, void *priv, +static int uvc_ioctl_s_ext_ctrls(struct file *file, + struct video_device_state *state, struct v4l2_ext_controls *ctrls) { struct uvc_fh *handle =3D to_uvc_fh(file); @@ -874,7 +889,8 @@ static int uvc_ioctl_s_ext_ctrls(struct file *file, voi= d *priv, return uvc_ioctl_s_try_ext_ctrls(handle, ctrls, VIDIOC_S_EXT_CTRLS); } =20 -static int uvc_ioctl_try_ext_ctrls(struct file *file, void *priv, +static int uvc_ioctl_try_ext_ctrls(struct file *file, + struct video_device_state *state, struct v4l2_ext_controls *ctrls) { struct uvc_fh *handle =3D to_uvc_fh(file); @@ -882,7 +898,8 @@ static int uvc_ioctl_try_ext_ctrls(struct file *file, v= oid *priv, return uvc_ioctl_s_try_ext_ctrls(handle, ctrls, VIDIOC_TRY_EXT_CTRLS); } =20 -static int uvc_ioctl_querymenu(struct file *file, void *priv, +static int uvc_ioctl_querymenu(struct file *file, + struct video_device_state *state, struct v4l2_querymenu *qm) { struct uvc_fh *handle =3D to_uvc_fh(file); @@ -891,7 +908,8 @@ static int uvc_ioctl_querymenu(struct file *file, void = *priv, return uvc_query_v4l2_menu(chain, qm); } =20 -static int uvc_ioctl_g_selection(struct file *file, void *priv, +static int uvc_ioctl_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct uvc_fh *handle =3D to_uvc_fh(file); @@ -923,7 +941,8 @@ static int uvc_ioctl_g_selection(struct file *file, voi= d *priv, return 0; } =20 -static int uvc_ioctl_enum_framesizes(struct file *file, void *priv, +static int uvc_ioctl_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct uvc_fh *handle =3D to_uvc_fh(file); @@ -963,7 +982,8 @@ static int uvc_ioctl_enum_framesizes(struct file *file,= void *priv, return 0; } =20 -static int uvc_ioctl_enum_frameintervals(struct file *file, void *priv, +static int uvc_ioctl_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *fival) { struct uvc_fh *handle =3D to_uvc_fh(file); @@ -1035,7 +1055,8 @@ static int uvc_ioctl_subscribe_event(struct v4l2_fh *= fh, } } =20 -static long uvc_ioctl_default(struct file *file, void *priv, bool valid_pr= io, +static long uvc_ioctl_default(struct file *file, + struct video_device_state *state, bool valid_prio, unsigned int cmd, void *arg) { struct uvc_fh *handle =3D to_uvc_fh(file); diff --git a/drivers/media/v4l2-core/v4l2-ctrls-api.c b/drivers/media/v4l2-= core/v4l2-ctrls-api.c index 0078a04c544590cc02988c7d041e66519432a8cf..9fe86526e38ffd131f2c5fb48bb= 61843a2543f8a 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls-api.c +++ b/drivers/media/v4l2-core/v4l2-ctrls-api.c @@ -1250,7 +1250,7 @@ EXPORT_SYMBOL(v4l2_querymenu); * VIDIOC_LOG_STATUS helpers */ =20 -int v4l2_ctrl_log_status(struct file *file, void *priv) +int v4l2_ctrl_log_status(struct file *file, struct video_device_state *sta= te) { struct video_device *vfd =3D video_devdata(file); =20 diff --git a/drivers/media/v4l2-core/v4l2-dev.c b/drivers/media/v4l2-core/v= 4l2-dev.c index 2606077538be0e83032c6ae8956c1d67da0d0c5d..93bf8067eaf79b5b33363922434= bd82591f19f83 100644 --- a/drivers/media/v4l2-core/v4l2-dev.c +++ b/drivers/media/v4l2-core/v4l2-dev.c @@ -208,9 +208,9 @@ struct v4l2_format *video_device_state_get_fmt(struct v= ideo_device_state *state) } EXPORT_SYMBOL_GPL(video_device_state_get_fmt); =20 -int video_device_g_fmt(struct file *file, void *priv, struct v4l2_format *= fmt) +int video_device_g_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *fmt) { - struct video_device_state *state =3D priv; struct v4l2_format *vfmt =3D video_device_state_get_fmt(state); =20 if (!vfmt) diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-co= re/v4l2-mem2mem.c index 21acd9bc860718ccbe59925865d3a6dd9ec9484b..f6b310e70082a4d5d98fba1920a= 67b15152c5a1c 100644 --- a/drivers/media/v4l2-core/v4l2-mem2mem.c +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c @@ -1364,8 +1364,8 @@ EXPORT_SYMBOL_GPL(v4l2_m2m_request_queue); =20 /* Videobuf2 ioctl helpers */ =20 -int v4l2_m2m_ioctl_reqbufs(struct file *file, void *priv, - struct v4l2_requestbuffers *rb) +int v4l2_m2m_ioctl_reqbufs(struct file *file, struct video_device_state *s= tate, + struct v4l2_requestbuffers *rb) { struct v4l2_fh *fh =3D file_to_v4l2_fh(file); =20 @@ -1373,8 +1373,9 @@ int v4l2_m2m_ioctl_reqbufs(struct file *file, void *p= riv, } EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_reqbufs); =20 -int v4l2_m2m_ioctl_create_bufs(struct file *file, void *priv, - struct v4l2_create_buffers *create) +int v4l2_m2m_ioctl_create_bufs(struct file *file, + struct video_device_state *state, + struct v4l2_create_buffers *create) { struct v4l2_fh *fh =3D file_to_v4l2_fh(file); =20 @@ -1382,7 +1383,8 @@ int v4l2_m2m_ioctl_create_bufs(struct file *file, voi= d *priv, } EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_create_bufs); =20 -int v4l2_m2m_ioctl_remove_bufs(struct file *file, void *priv, +int v4l2_m2m_ioctl_remove_bufs(struct file *file, + struct video_device_state *state, struct v4l2_remove_buffers *remove) { struct v4l2_fh *fh =3D file_to_v4l2_fh(file); @@ -1397,8 +1399,8 @@ int v4l2_m2m_ioctl_remove_bufs(struct file *file, voi= d *priv, } EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_remove_bufs); =20 -int v4l2_m2m_ioctl_querybuf(struct file *file, void *priv, - struct v4l2_buffer *buf) +int v4l2_m2m_ioctl_querybuf(struct file *file, struct video_device_state *= state, + struct v4l2_buffer *buf) { struct v4l2_fh *fh =3D file_to_v4l2_fh(file); =20 @@ -1406,8 +1408,8 @@ int v4l2_m2m_ioctl_querybuf(struct file *file, void *= priv, } EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_querybuf); =20 -int v4l2_m2m_ioctl_qbuf(struct file *file, void *priv, - struct v4l2_buffer *buf) +int v4l2_m2m_ioctl_qbuf(struct file *file, struct video_device_state *stat= e, + struct v4l2_buffer *buf) { struct v4l2_fh *fh =3D file_to_v4l2_fh(file); =20 @@ -1415,8 +1417,8 @@ int v4l2_m2m_ioctl_qbuf(struct file *file, void *priv, } EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_qbuf); =20 -int v4l2_m2m_ioctl_dqbuf(struct file *file, void *priv, - struct v4l2_buffer *buf) +int v4l2_m2m_ioctl_dqbuf(struct file *file, struct video_device_state *sta= te, + struct v4l2_buffer *buf) { struct v4l2_fh *fh =3D file_to_v4l2_fh(file); =20 @@ -1424,7 +1426,8 @@ int v4l2_m2m_ioctl_dqbuf(struct file *file, void *pri= v, } EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_dqbuf); =20 -int v4l2_m2m_ioctl_prepare_buf(struct file *file, void *priv, +int v4l2_m2m_ioctl_prepare_buf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf) { struct v4l2_fh *fh =3D file_to_v4l2_fh(file); @@ -1433,7 +1436,8 @@ int v4l2_m2m_ioctl_prepare_buf(struct file *file, voi= d *priv, } EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_prepare_buf); =20 -int v4l2_m2m_ioctl_expbuf(struct file *file, void *priv, +int v4l2_m2m_ioctl_expbuf(struct file *file, + struct video_device_state *state, struct v4l2_exportbuffer *eb) { struct v4l2_fh *fh =3D file_to_v4l2_fh(file); @@ -1442,7 +1446,8 @@ int v4l2_m2m_ioctl_expbuf(struct file *file, void *pr= iv, } EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_expbuf); =20 -int v4l2_m2m_ioctl_streamon(struct file *file, void *priv, +int v4l2_m2m_ioctl_streamon(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct v4l2_fh *fh =3D file_to_v4l2_fh(file); @@ -1451,7 +1456,8 @@ int v4l2_m2m_ioctl_streamon(struct file *file, void *= priv, } EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_streamon); =20 -int v4l2_m2m_ioctl_streamoff(struct file *file, void *priv, +int v4l2_m2m_ioctl_streamoff(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type) { struct v4l2_fh *fh =3D file_to_v4l2_fh(file); @@ -1460,7 +1466,8 @@ int v4l2_m2m_ioctl_streamoff(struct file *file, void = *priv, } EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_streamoff); =20 -int v4l2_m2m_ioctl_try_encoder_cmd(struct file *file, void *priv, +int v4l2_m2m_ioctl_try_encoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_encoder_cmd *ec) { if (ec->cmd !=3D V4L2_ENC_CMD_STOP && ec->cmd !=3D V4L2_ENC_CMD_START) @@ -1471,7 +1478,8 @@ int v4l2_m2m_ioctl_try_encoder_cmd(struct file *file,= void *priv, } EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_try_encoder_cmd); =20 -int v4l2_m2m_ioctl_try_decoder_cmd(struct file *file, void *priv, +int v4l2_m2m_ioctl_try_decoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_decoder_cmd *dc) { if (dc->cmd !=3D V4L2_DEC_CMD_STOP && dc->cmd !=3D V4L2_DEC_CMD_START) @@ -1535,7 +1543,8 @@ int v4l2_m2m_decoder_cmd(struct file *file, struct v4= l2_m2m_ctx *m2m_ctx, } EXPORT_SYMBOL_GPL(v4l2_m2m_decoder_cmd); =20 -int v4l2_m2m_ioctl_encoder_cmd(struct file *file, void *priv, +int v4l2_m2m_ioctl_encoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_encoder_cmd *ec) { struct v4l2_fh *fh =3D file_to_v4l2_fh(file); @@ -1544,7 +1553,8 @@ int v4l2_m2m_ioctl_encoder_cmd(struct file *file, voi= d *priv, } EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_encoder_cmd); =20 -int v4l2_m2m_ioctl_decoder_cmd(struct file *file, void *priv, +int v4l2_m2m_ioctl_decoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_decoder_cmd *dc) { struct v4l2_fh *fh =3D file_to_v4l2_fh(file); @@ -1553,7 +1563,8 @@ int v4l2_m2m_ioctl_decoder_cmd(struct file *file, voi= d *priv, } EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_decoder_cmd); =20 -int v4l2_m2m_ioctl_stateless_try_decoder_cmd(struct file *file, void *priv, +int v4l2_m2m_ioctl_stateless_try_decoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_decoder_cmd *dc) { if (dc->cmd !=3D V4L2_DEC_CMD_FLUSH) @@ -1565,7 +1576,8 @@ int v4l2_m2m_ioctl_stateless_try_decoder_cmd(struct f= ile *file, void *priv, } EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_stateless_try_decoder_cmd); =20 -int v4l2_m2m_ioctl_stateless_decoder_cmd(struct file *file, void *priv, +int v4l2_m2m_ioctl_stateless_decoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_decoder_cmd *dc) { struct v4l2_fh *fh =3D file_to_v4l2_fh(file); @@ -1574,7 +1586,7 @@ int v4l2_m2m_ioctl_stateless_decoder_cmd(struct file = *file, void *priv, unsigned long flags; int ret; =20 - ret =3D v4l2_m2m_ioctl_stateless_try_decoder_cmd(file, priv, dc); + ret =3D v4l2_m2m_ioctl_stateless_try_decoder_cmd(file, state, dc); if (ret < 0) return ret; =20 diff --git a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c b/drivers/st= aging/media/atomisp/pci/atomisp_ioctl.c index bb8b2f2213b08f0329326e70d704e609bbffb321..d46589788fe20f3e17bbdaca3f2= 8649346e34bce 100644 --- a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c +++ b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c @@ -360,7 +360,8 @@ int atomisp_pipe_check(struct atomisp_video_pipe *pipe,= bool settings_change) * v4l2 ioctls * return ISP capabilities */ -static int atomisp_querycap(struct file *file, void *fh, +static int atomisp_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct video_device *vdev =3D video_devdata(file); @@ -376,7 +377,8 @@ static int atomisp_querycap(struct file *file, void *fh, /* * enum input are used to check primary/secondary camera */ -static int atomisp_enum_input(struct file *file, void *fh, +static int atomisp_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *input) { struct video_device *vdev =3D video_devdata(file); @@ -403,7 +405,9 @@ static int atomisp_enum_input(struct file *file, void *= fh, /* * get input are used to get current primary/secondary camera */ -static int atomisp_g_input(struct file *file, void *fh, unsigned int *inpu= t) +static int atomisp_g_input(struct file *file, + struct video_device_state *state, + unsigned int *input) { struct video_device *vdev =3D video_devdata(file); struct atomisp_sub_device *asd =3D atomisp_to_video_pipe(vdev)->asd; @@ -412,7 +416,8 @@ static int atomisp_g_input(struct file *file, void *fh,= unsigned int *input) return 0; } =20 -static int atomisp_s_fmt_cap(struct file *file, void *fh, +static int atomisp_s_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct video_device *vdev =3D video_devdata(file); @@ -423,7 +428,9 @@ static int atomisp_s_fmt_cap(struct file *file, void *f= h, /* * set input are used to set current primary/secondary camera */ -static int atomisp_s_input(struct file *file, void *fh, unsigned int input) +static int atomisp_s_input(struct file *file, + struct video_device_state *state, + unsigned int input) { struct video_device *vdev =3D video_devdata(file); struct atomisp_device *isp =3D video_get_drvdata(vdev); @@ -524,7 +531,8 @@ static int atomisp_enum_framesizes_crop(struct atomisp_= device *isp, return atomisp_enum_framesizes_crop_inner(isp, fsize, &active, &native, &= valid_sizes); } =20 -static int atomisp_enum_framesizes(struct file *file, void *priv, +static int atomisp_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct video_device *vdev =3D video_devdata(file); @@ -560,7 +568,8 @@ static int atomisp_enum_framesizes(struct file *file, v= oid *priv, return 0; } =20 -static int atomisp_enum_frameintervals(struct file *file, void *priv, +static int atomisp_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *fival) { struct video_device *vdev =3D video_devdata(file); @@ -594,7 +603,8 @@ static int atomisp_enum_frameintervals(struct file *fil= e, void *priv, return ret; } =20 -static int atomisp_enum_fmt_cap(struct file *file, void *fh, +static int atomisp_enum_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct video_device *vdev =3D video_devdata(file); @@ -648,7 +658,8 @@ static int atomisp_enum_fmt_cap(struct file *file, void= *fh, } =20 /* This function looks up the closest available resolution. */ -static int atomisp_try_fmt_cap(struct file *file, void *fh, +static int atomisp_try_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct video_device *vdev =3D video_devdata(file); @@ -657,7 +668,8 @@ static int atomisp_try_fmt_cap(struct file *file, void = *fh, return atomisp_try_fmt(isp, &f->fmt.pix, NULL, NULL); } =20 -static int atomisp_g_fmt_cap(struct file *file, void *fh, +static int atomisp_g_fmt_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct video_device *vdev =3D video_devdata(file); @@ -675,7 +687,7 @@ static int atomisp_g_fmt_cap(struct file *file, void *f= h, f->fmt.pix.width =3D 10000; f->fmt.pix.height =3D 10000; =20 - return atomisp_try_fmt_cap(file, fh, f); + return atomisp_try_fmt_cap(file, state, f); } =20 int atomisp_alloc_css_stat_bufs(struct atomisp_sub_device *asd, @@ -787,7 +799,9 @@ int atomisp_alloc_css_stat_bufs(struct atomisp_sub_devi= ce *asd, * Once this is fixed these wrappers can be removed, replacing them with d= irect * calls to vb2_ioctl_[d]qbuf(). */ -static int atomisp_qbuf_wrapper(struct file *file, void *fh, struct v4l2_b= uffer *buf) +static int atomisp_qbuf_wrapper(struct file *file, + struct video_device_state *state, + struct v4l2_buffer *buf) { struct video_device *vdev =3D video_devdata(file); struct atomisp_device *isp =3D video_get_drvdata(vdev); @@ -807,10 +821,12 @@ static int atomisp_qbuf_wrapper(struct file *file, vo= id *fh, struct v4l2_buffer pipe->frame_request_config_id[buf->index] =3D 0; } =20 - return vb2_ioctl_qbuf(file, fh, buf); + return vb2_ioctl_qbuf(file, state, buf); } =20 -static int atomisp_dqbuf_wrapper(struct file *file, void *fh, struct v4l2_= buffer *buf) +static int atomisp_dqbuf_wrapper(struct file *file, + struct video_device_state *state, + struct v4l2_buffer *buf) { struct video_device *vdev =3D video_devdata(file); struct atomisp_video_pipe *pipe =3D atomisp_to_video_pipe(vdev); @@ -819,7 +835,7 @@ static int atomisp_dqbuf_wrapper(struct file *file, voi= d *fh, struct v4l2_buffer struct vb2_buffer *vb; int ret; =20 - ret =3D vb2_ioctl_dqbuf(file, fh, buf); + ret =3D vb2_ioctl_dqbuf(file, state, buf); if (ret) return ret; =20 @@ -1135,7 +1151,8 @@ static int atomisp_s_ctrl(struct file *file, void *fh, * this ioctl with a pointer to this structure. The driver fills * the rest of the structure. */ -static int atomisp_query_ext_ctrl(struct file *file, void *fh, +static int atomisp_query_ext_ctrl(struct file *file, + struct video_device_state *state, struct v4l2_query_ext_ctrl *qc) { int i; @@ -1191,7 +1208,8 @@ static int atomisp_camera_g_ext_ctrls(struct file *fi= le, void *fh, } =20 /* This ioctl allows the application to get multiple controls by class */ -static int atomisp_g_ext_ctrls(struct file *file, void *fh, +static int atomisp_g_ext_ctrls(struct file *file, + struct video_device_state *state, struct v4l2_ext_controls *c) { struct v4l2_control ctrl; @@ -1201,14 +1219,14 @@ static int atomisp_g_ext_ctrls(struct file *file, v= oid *fh, * input_lock is not need for the Camera related IOCTLs * The input_lock downgrade the FPS of 3A */ - ret =3D atomisp_camera_g_ext_ctrls(file, fh, c); + ret =3D atomisp_camera_g_ext_ctrls(file, state, c); if (ret !=3D -EINVAL) return ret; =20 for (i =3D 0; i < c->count; i++) { ctrl.id =3D c->controls[i].id; ctrl.value =3D c->controls[i].value; - ret =3D atomisp_g_ctrl(file, fh, &ctrl); + ret =3D atomisp_g_ctrl(file, state, &ctrl); c->controls[i].value =3D ctrl.value; if (ret) { c->error_idx =3D i; @@ -1254,7 +1272,8 @@ static int atomisp_camera_s_ext_ctrls(struct file *fi= le, void *fh, } =20 /* This ioctl allows the application to set multiple controls by class */ -static int atomisp_s_ext_ctrls(struct file *file, void *fh, +static int atomisp_s_ext_ctrls(struct file *file, + struct video_device_state *state, struct v4l2_ext_controls *c) { struct v4l2_control ctrl; @@ -1264,14 +1283,14 @@ static int atomisp_s_ext_ctrls(struct file *file, v= oid *fh, * input_lock is not need for the Camera related IOCTLs * The input_lock downgrade the FPS of 3A */ - ret =3D atomisp_camera_s_ext_ctrls(file, fh, c); + ret =3D atomisp_camera_s_ext_ctrls(file, state, c); if (ret !=3D -EINVAL) return ret; =20 for (i =3D 0; i < c->count; i++) { ctrl.id =3D c->controls[i].id; ctrl.value =3D c->controls[i].value; - ret =3D atomisp_s_ctrl(file, fh, &ctrl); + ret =3D atomisp_s_ctrl(file, state, &ctrl); c->controls[i].value =3D ctrl.value; if (ret) { c->error_idx =3D i; @@ -1284,7 +1303,8 @@ static int atomisp_s_ext_ctrls(struct file *file, voi= d *fh, /* * vidioc_g/s_param are used to switch isp running mode */ -static int atomisp_g_parm(struct file *file, void *fh, +static int atomisp_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct video_device *vdev =3D video_devdata(file); @@ -1301,7 +1321,8 @@ static int atomisp_g_parm(struct file *file, void *fh, return 0; } =20 -static int atomisp_s_parm(struct file *file, void *fh, +static int atomisp_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct video_device *vdev =3D video_devdata(file); @@ -1354,7 +1375,8 @@ static int atomisp_s_parm(struct file *file, void *fh, return rval =3D=3D -ENOIOCTLCMD ? 0 : rval; } =20 -static long atomisp_vidioc_default(struct file *file, void *fh, +static long atomisp_vidioc_default(struct file *file, + struct video_device_state *state, bool valid_prio, unsigned int cmd, void *arg) { struct video_device *vdev =3D video_devdata(file); diff --git a/drivers/staging/media/av7110/av7110_v4l.c b/drivers/staging/me= dia/av7110/av7110_v4l.c index 04e659243f02bc588b8140d55a3de44e664ff286..1738925d13594c68ad14f70cb95= 853fd5b91e07a 100644 --- a/drivers/staging/media/av7110/av7110_v4l.c +++ b/drivers/staging/media/av7110/av7110_v4l.c @@ -290,7 +290,8 @@ static int av7110_dvb_c_switch(struct saa7146_dev *dev) return 0; } =20 -static int vidioc_g_tuner(struct file *file, void *fh, struct v4l2_tuner *= t) +static int vidioc_g_tuner(struct file *file, struct video_device_state *st= ate, + struct v4l2_tuner *t) { struct saa7146_dev *dev =3D video_drvdata(file); struct av7110 *av7110 =3D (struct av7110 *)dev->ext_priv; @@ -336,7 +337,8 @@ static int vidioc_g_tuner(struct file *file, void *fh, = struct v4l2_tuner *t) return 0; } =20 -static int vidioc_s_tuner(struct file *file, void *fh, const struct v4l2_t= uner *t) +static int vidioc_s_tuner(struct file *file, struct video_device_state *st= ate, + const struct v4l2_tuner *t) { struct saa7146_dev *dev =3D video_drvdata(file); struct av7110 *av7110 =3D (struct av7110 *)dev->ext_priv; @@ -381,7 +383,9 @@ static int vidioc_s_tuner(struct file *file, void *fh, = const struct v4l2_tuner * return 0; } =20 -static int vidioc_g_frequency(struct file *file, void *fh, struct v4l2_fre= quency *f) +static int vidioc_g_frequency(struct file *file, + struct video_device_state *state, + struct v4l2_frequency *f) { struct saa7146_dev *dev =3D video_drvdata(file); struct av7110 *av7110 =3D (struct av7110 *)dev->ext_priv; @@ -397,7 +401,9 @@ static int vidioc_g_frequency(struct file *file, void *= fh, struct v4l2_frequency return 0; } =20 -static int vidioc_s_frequency(struct file *file, void *fh, const struct v4= l2_frequency *f) +static int vidioc_s_frequency(struct file *file, + struct video_device_state *state, + const struct v4l2_frequency *f) { struct saa7146_dev *dev =3D video_drvdata(file); struct av7110 *av7110 =3D (struct av7110 *)dev->ext_priv; @@ -427,7 +433,9 @@ static int vidioc_s_frequency(struct file *file, void *= fh, const struct v4l2_fre return 0; } =20 -static int vidioc_enum_input(struct file *file, void *fh, struct v4l2_inpu= t *i) +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, + struct v4l2_input *i) { struct saa7146_dev *dev =3D video_drvdata(file); struct av7110 *av7110 =3D (struct av7110 *)dev->ext_priv; @@ -447,7 +455,8 @@ static int vidioc_enum_input(struct file *file, void *f= h, struct v4l2_input *i) return 0; } =20 -static int vidioc_g_input(struct file *file, void *fh, unsigned int *input) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *input) { struct saa7146_dev *dev =3D video_drvdata(file); struct av7110 *av7110 =3D (struct av7110 *)dev->ext_priv; @@ -457,7 +466,8 @@ static int vidioc_g_input(struct file *file, void *fh, = unsigned int *input) return 0; } =20 -static int vidioc_s_input(struct file *file, void *fh, unsigned int input) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int input) { struct saa7146_dev *dev =3D video_drvdata(file); struct av7110 *av7110 =3D (struct av7110 *)dev->ext_priv; @@ -474,7 +484,9 @@ static int vidioc_s_input(struct file *file, void *fh, = unsigned int input) return av7110_dvb_c_switch(dev); } =20 -static int vidioc_enum_output(struct file *file, void *fh, struct v4l2_out= put *o) +static int vidioc_enum_output(struct file *file, + struct video_device_state *state, + struct v4l2_output *o) { if (o->index) return -EINVAL; @@ -485,18 +497,24 @@ static int vidioc_enum_output(struct file *file, void= *fh, struct v4l2_output *o return 0; } =20 -static int vidioc_g_output(struct file *file, void *fh, unsigned int *outp= ut) +static int vidioc_g_output(struct file *file, + struct video_device_state *state, + unsigned int *output) { *output =3D 0; return 0; } =20 -static int vidioc_s_output(struct file *file, void *fh, unsigned int outpu= t) +static int vidioc_s_output(struct file *file, + struct video_device_state *state, + unsigned int output) { return output ? -EINVAL : 0; } =20 -static int vidioc_enumaudio(struct file *file, void *fh, struct v4l2_audio= *a) +static int vidioc_enumaudio(struct file *file, + struct video_device_state *state, + struct v4l2_audio *a) { dprintk(2, "VIDIOC_G_AUDIO: %d\n", a->index); if (a->index !=3D 0) @@ -505,7 +523,8 @@ static int vidioc_enumaudio(struct file *file, void *fh= , struct v4l2_audio *a) return 0; } =20 -static int vidioc_g_audio(struct file *file, void *fh, struct v4l2_audio *= a) +static int vidioc_g_audio(struct file *file, struct video_device_state *st= ate, + struct v4l2_audio *a) { struct saa7146_dev *dev =3D video_drvdata(file); struct av7110 *av7110 =3D (struct av7110 *)dev->ext_priv; @@ -519,7 +538,8 @@ static int vidioc_g_audio(struct file *file, void *fh, = struct v4l2_audio *a) return 0; } =20 -static int vidioc_s_audio(struct file *file, void *fh, const struct v4l2_a= udio *a) +static int vidioc_s_audio(struct file *file, struct video_device_state *st= ate, + const struct v4l2_audio *a) { struct saa7146_dev *dev =3D video_drvdata(file); struct av7110 *av7110 =3D (struct av7110 *)dev->ext_priv; @@ -530,7 +550,8 @@ static int vidioc_s_audio(struct file *file, void *fh, = const struct v4l2_audio * return a->index ? -EINVAL : 0; } =20 -static int vidioc_g_sliced_vbi_cap(struct file *file, void *fh, +static int vidioc_g_sliced_vbi_cap(struct file *file, + struct video_device_state *state, struct v4l2_sliced_vbi_cap *cap) { struct saa7146_dev *dev =3D video_drvdata(file); @@ -546,7 +567,8 @@ static int vidioc_g_sliced_vbi_cap(struct file *file, v= oid *fh, return 0; } =20 -static int vidioc_g_fmt_sliced_vbi_out(struct file *file, void *fh, +static int vidioc_g_fmt_sliced_vbi_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct saa7146_dev *dev =3D video_drvdata(file); @@ -564,7 +586,8 @@ static int vidioc_g_fmt_sliced_vbi_out(struct file *fil= e, void *fh, return 0; } =20 -static int vidioc_try_fmt_sliced_vbi_out(struct file *file, void *fh, +static int vidioc_try_fmt_sliced_vbi_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct saa7146_dev *dev =3D video_drvdata(file); @@ -585,14 +608,15 @@ static int vidioc_try_fmt_sliced_vbi_out(struct file = *file, void *fh, return 0; } =20 -static int vidioc_s_fmt_sliced_vbi_out(struct file *file, void *fh, +static int vidioc_s_fmt_sliced_vbi_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct saa7146_dev *dev =3D video_drvdata(file); struct av7110 *av7110 =3D (struct av7110 *)dev->ext_priv; =20 dprintk(2, "VIDIOC_S_FMT\n"); - if (vidioc_try_fmt_sliced_vbi_out(file, fh, f)) + if (vidioc_try_fmt_sliced_vbi_out(file, state, f)) return -EINVAL; if (f->fmt.sliced.service_set & V4L2_SLICED_WSS_625) { /* WSS controlled by userspace */ diff --git a/drivers/staging/media/deprecated/atmel/atmel-isc-base.c b/driv= ers/staging/media/deprecated/atmel/atmel-isc-base.c index fb9ee8547392b4ee768b39ce08f52488323bb6f9..5f7572cb8e0e2585c95df6f7eaf= 88f35da32153e 100644 --- a/drivers/staging/media/deprecated/atmel/atmel-isc-base.c +++ b/drivers/staging/media/deprecated/atmel/atmel-isc-base.c @@ -483,7 +483,8 @@ static const struct vb2_ops isc_vb2_ops =3D { .buf_queue =3D isc_buffer_queue, }; =20 -static int isc_querycap(struct file *file, void *priv, +static int isc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, "microchip-isc", sizeof(cap->driver)); @@ -492,7 +493,8 @@ static int isc_querycap(struct file *file, void *priv, return 0; } =20 -static int isc_enum_fmt_vid_cap(struct file *file, void *priv, +static int isc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct isc_device *isc =3D video_drvdata(file); @@ -522,7 +524,8 @@ static int isc_enum_fmt_vid_cap(struct file *file, void= *priv, return -EINVAL; } =20 -static int isc_g_fmt_vid_cap(struct file *file, void *priv, +static int isc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *fmt) { struct isc_device *isc =3D video_drvdata(file); @@ -1030,7 +1033,8 @@ static int isc_set_fmt(struct isc_device *isc, struct= v4l2_format *f) return 0; } =20 -static int isc_s_fmt_vid_cap(struct file *file, void *priv, +static int isc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct isc_device *isc =3D video_drvdata(file); @@ -1041,7 +1045,8 @@ static int isc_s_fmt_vid_cap(struct file *file, void = *priv, return isc_set_fmt(isc, f); } =20 -static int isc_try_fmt_vid_cap(struct file *file, void *priv, +static int isc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct isc_device *isc =3D video_drvdata(file); @@ -1049,7 +1054,8 @@ static int isc_try_fmt_vid_cap(struct file *file, voi= d *priv, return isc_try_fmt(isc, f, NULL); } =20 -static int isc_enum_input(struct file *file, void *priv, +static int isc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { if (inp->index !=3D 0) @@ -1062,14 +1068,16 @@ static int isc_enum_input(struct file *file, void *= priv, return 0; } =20 -static int isc_g_input(struct file *file, void *priv, unsigned int *i) +static int isc_g_input(struct file *file, struct video_device_state *state, + unsigned int *i) { *i =3D 0; =20 return 0; } =20 -static int isc_s_input(struct file *file, void *priv, unsigned int i) +static int isc_s_input(struct file *file, struct video_device_state *state, + unsigned int i) { if (i > 0) return -EINVAL; @@ -1077,21 +1085,24 @@ static int isc_s_input(struct file *file, void *pri= v, unsigned int i) return 0; } =20 -static int isc_g_parm(struct file *file, void *fh, struct v4l2_streamparm = *a) +static int isc_g_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *a) { struct isc_device *isc =3D video_drvdata(file); =20 return v4l2_g_parm_cap(video_devdata(file), isc->current_subdev->sd, a); } =20 -static int isc_s_parm(struct file *file, void *fh, struct v4l2_streamparm = *a) +static int isc_s_parm(struct file *file, struct video_device_state *state, + struct v4l2_streamparm *a) { struct isc_device *isc =3D video_drvdata(file); =20 return v4l2_s_parm_cap(video_devdata(file), isc->current_subdev->sd, a); } =20 -static int isc_enum_framesizes(struct file *file, void *fh, +static int isc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct isc_device *isc =3D video_drvdata(file); diff --git a/drivers/staging/media/imx/imx-media-capture.c b/drivers/stagin= g/media/imx/imx-media-capture.c index e9cef7af000a91674aa2cfe750a399cae40ff9d6..fce78147e5415c125e8fa3cb717= 73e32683a3ca8 100644 --- a/drivers/staging/media/imx/imx-media-capture.c +++ b/drivers/staging/media/imx/imx-media-capture.c @@ -78,7 +78,8 @@ static const struct imx_media_pixfmt *capture_find_format= (u32 code, u32 fourcc) return imx_media_find_mbus_format(code, PIXFMT_SEL_ANY); } =20 -static int capture_querycap(struct file *file, void *fh, +static int capture_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct capture_priv *priv =3D video_drvdata(file); @@ -91,14 +92,16 @@ static int capture_querycap(struct file *file, void *fh, return 0; } =20 -static int capture_enum_fmt_vid_cap(struct file *file, void *fh, +static int capture_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return imx_media_enum_pixel_formats(&f->pixelformat, f->index, PIXFMT_SEL_ANY, f->mbus_code); } =20 -static int capture_enum_framesizes(struct file *file, void *fh, +static int capture_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { const struct imx_media_pixfmt *cc; @@ -126,7 +129,8 @@ static int capture_enum_framesizes(struct file *file, v= oid *fh, return 0; } =20 -static int capture_g_fmt_vid_cap(struct file *file, void *fh, +static int capture_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct capture_priv *priv =3D video_drvdata(file); @@ -179,14 +183,16 @@ __capture_try_fmt(struct v4l2_pix_format *pixfmt, str= uct v4l2_rect *compose) return cc; } =20 -static int capture_try_fmt_vid_cap(struct file *file, void *fh, +static int capture_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { __capture_try_fmt(&f->fmt.pix, NULL); return 0; } =20 -static int capture_s_fmt_vid_cap(struct file *file, void *fh, +static int capture_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct capture_priv *priv =3D video_drvdata(file); @@ -205,7 +211,8 @@ static int capture_s_fmt_vid_cap(struct file *file, voi= d *fh, return 0; } =20 -static int capture_g_selection(struct file *file, void *fh, +static int capture_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct capture_priv *priv =3D video_drvdata(file); @@ -276,7 +283,8 @@ static const struct v4l2_ioctl_ops capture_ioctl_ops = =3D { * Legacy Video IOCTLs */ =20 -static int capture_legacy_enum_framesizes(struct file *file, void *fh, +static int capture_legacy_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct capture_priv *priv =3D video_drvdata(file); @@ -316,7 +324,8 @@ static int capture_legacy_enum_framesizes(struct file *= file, void *fh, return 0; } =20 -static int capture_legacy_enum_frameintervals(struct file *file, void *fh, +static int capture_legacy_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *fival) { struct capture_priv *priv =3D video_drvdata(file); @@ -347,7 +356,8 @@ static int capture_legacy_enum_frameintervals(struct fi= le *file, void *fh, return 0; } =20 -static int capture_legacy_enum_fmt_vid_cap(struct file *file, void *fh, +static int capture_legacy_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct capture_priv *priv =3D video_drvdata(file); @@ -422,7 +432,8 @@ __capture_legacy_try_fmt(struct capture_priv *priv, return cc; } =20 -static int capture_legacy_try_fmt_vid_cap(struct file *file, void *fh, +static int capture_legacy_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct capture_priv *priv =3D video_drvdata(file); @@ -442,7 +453,8 @@ static int capture_legacy_try_fmt_vid_cap(struct file *= file, void *fh, return 0; } =20 -static int capture_legacy_s_fmt_vid_cap(struct file *file, void *fh, +static int capture_legacy_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct capture_priv *priv =3D video_drvdata(file); @@ -474,7 +486,8 @@ static int capture_legacy_s_fmt_vid_cap(struct file *fi= le, void *fh, return 0; } =20 -static int capture_legacy_querystd(struct file *file, void *fh, +static int capture_legacy_querystd(struct file *file, + struct video_device_state *state, v4l2_std_id *std) { struct capture_priv *priv =3D video_drvdata(file); @@ -482,14 +495,18 @@ static int capture_legacy_querystd(struct file *file,= void *fh, return v4l2_subdev_call(priv->src_sd, video, querystd, std); } =20 -static int capture_legacy_g_std(struct file *file, void *fh, v4l2_std_id *= std) +static int capture_legacy_g_std(struct file *file, + struct video_device_state *state, + v4l2_std_id *std) { struct capture_priv *priv =3D video_drvdata(file); =20 return v4l2_subdev_call(priv->src_sd, video, g_std, std); } =20 -static int capture_legacy_s_std(struct file *file, void *fh, v4l2_std_id s= td) +static int capture_legacy_s_std(struct file *file, + struct video_device_state *state, + v4l2_std_id std) { struct capture_priv *priv =3D video_drvdata(file); =20 @@ -499,7 +516,8 @@ static int capture_legacy_s_std(struct file *file, void= *fh, v4l2_std_id std) return v4l2_subdev_call(priv->src_sd, video, s_std, std); } =20 -static int capture_legacy_g_parm(struct file *file, void *fh, +static int capture_legacy_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *a) { struct capture_priv *priv =3D video_drvdata(file); @@ -522,7 +540,8 @@ static int capture_legacy_g_parm(struct file *file, voi= d *fh, return 0; } =20 -static int capture_legacy_s_parm(struct file *file, void *fh, +static int capture_legacy_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *a) { struct capture_priv *priv =3D video_drvdata(file); diff --git a/drivers/staging/media/imx/imx-media-csc-scaler.c b/drivers/sta= ging/media/imx/imx-media-csc-scaler.c index 1869c5792ecb46682491ecbf33674c6044915261..38b7bae1ab23c6ab1e899ded8ff= 3f304a84421a1 100644 --- a/drivers/staging/media/imx/imx-media-csc-scaler.c +++ b/drivers/staging/media/imx/imx-media-csc-scaler.c @@ -152,7 +152,8 @@ static void device_run(void *_ctx) /* * Video ioctls */ -static int ipu_csc_scaler_querycap(struct file *file, void *priv, +static int ipu_csc_scaler_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, IMX_CSC_SCALER_NAME, sizeof(cap->driver)); @@ -163,7 +164,8 @@ static int ipu_csc_scaler_querycap(struct file *file, v= oid *priv, return 0; } =20 -static int ipu_csc_scaler_enum_fmt(struct file *file, void *fh, +static int ipu_csc_scaler_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { u32 fourcc; @@ -179,7 +181,8 @@ static int ipu_csc_scaler_enum_fmt(struct file *file, v= oid *fh, return 0; } =20 -static int ipu_csc_scaler_g_fmt(struct file *file, void *priv, +static int ipu_csc_scaler_g_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ipu_csc_scaler_ctx *ctx =3D file_to_ctx(file); @@ -192,7 +195,8 @@ static int ipu_csc_scaler_g_fmt(struct file *file, void= *priv, return 0; } =20 -static int ipu_csc_scaler_try_fmt(struct file *file, void *priv, +static int ipu_csc_scaler_try_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ipu_csc_scaler_ctx *ctx =3D file_to_ctx(file); @@ -240,7 +244,8 @@ static int ipu_csc_scaler_try_fmt(struct file *file, vo= id *priv, return 0; } =20 -static int ipu_csc_scaler_s_fmt(struct file *file, void *priv, +static int ipu_csc_scaler_s_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ipu_csc_scaler_ctx *ctx =3D file_to_ctx(file); @@ -257,7 +262,7 @@ static int ipu_csc_scaler_s_fmt(struct file *file, void= *priv, =20 q_data =3D get_q_data(ctx, f->type); =20 - ret =3D ipu_csc_scaler_try_fmt(file, priv, f); + ret =3D ipu_csc_scaler_try_fmt(file, state, f); if (ret < 0) return ret; =20 @@ -296,7 +301,8 @@ static int ipu_csc_scaler_s_fmt(struct file *file, void= *priv, return 0; } =20 -static int ipu_csc_scaler_g_selection(struct file *file, void *priv, +static int ipu_csc_scaler_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct ipu_csc_scaler_ctx *ctx =3D file_to_ctx(file); @@ -334,7 +340,8 @@ static int ipu_csc_scaler_g_selection(struct file *file= , void *priv, return 0; } =20 -static int ipu_csc_scaler_s_selection(struct file *file, void *priv, +static int ipu_csc_scaler_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *s) { struct ipu_csc_scaler_ctx *ctx =3D file_to_ctx(file); diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media= /ipu3/ipu3-v4l2.c index 2f6041d342f4296446db294ae054c6085d3e8500..e10bf683320c19e8e6a2ab30ab8= 8536348c116bc 100644 --- a/drivers/staging/media/ipu3/ipu3-v4l2.c +++ b/drivers/staging/media/ipu3/ipu3-v4l2.c @@ -621,7 +621,8 @@ static const struct imgu_fmt *find_format(struct v4l2_f= ormat *f, u32 type) &formats[DEF_VID_OUTPUT]; } =20 -static int imgu_vidioc_querycap(struct file *file, void *fh, +static int imgu_vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct imgu_device *imgu =3D video_drvdata(file); @@ -657,7 +658,8 @@ static int enum_fmts(struct v4l2_fmtdesc *f, u32 type) return -EINVAL; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->type !=3D V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) @@ -666,7 +668,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, v= oid *priv, return enum_fmts(f, VID_CAPTURE); } =20 -static int vidioc_enum_fmt_vid_out(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->type !=3D V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) @@ -676,7 +679,8 @@ static int vidioc_enum_fmt_vid_out(struct file *file, v= oid *priv, } =20 /* Propagate forward always the format from the CIO2 subdev */ -static int imgu_vidioc_g_fmt(struct file *file, void *fh, +static int imgu_vidioc_g_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct imgu_video_device *node =3D file_to_intel_imgu_node(file); @@ -815,7 +819,8 @@ static int imgu_try_fmt(struct file *file, void *fh, st= ruct v4l2_format *f) return 0; } =20 -static int imgu_vidioc_try_fmt(struct file *file, void *fh, +static int imgu_vidioc_try_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct imgu_device *imgu =3D video_drvdata(file); @@ -827,14 +832,16 @@ static int imgu_vidioc_try_fmt(struct file *file, voi= d *fh, dev_dbg(dev, "%s [%ux%u] for node %u\n", __func__, pix_mp->width, pix_mp->height, node->id); =20 - r =3D imgu_try_fmt(file, fh, f); + r =3D imgu_try_fmt(file, state, f); if (r) return r; =20 return imgu_fmt(imgu, node->pipe, node->id, f, true); } =20 -static int imgu_vidioc_s_fmt(struct file *file, void *fh, struct v4l2_form= at *f) +static int imgu_vidioc_s_fmt(struct file *file, + struct video_device_state *state, + struct v4l2_format *f) { struct imgu_device *imgu =3D video_drvdata(file); struct device *dev =3D &imgu->pci_dev->dev; @@ -845,7 +852,7 @@ static int imgu_vidioc_s_fmt(struct file *file, void *f= h, struct v4l2_format *f) dev_dbg(dev, "%s [%ux%u] for node %u\n", __func__, pix_mp->width, pix_mp->height, node->id); =20 - r =3D imgu_try_fmt(file, fh, f); + r =3D imgu_try_fmt(file, state, f); if (r) return r; =20 @@ -863,7 +870,8 @@ static const struct imgu_meta_fmt meta_fmts[] =3D { { V4L2_META_FMT_IPU3_STAT_3A, "IPU3 3A statistics" }, }; =20 -static int imgu_meta_enum_format(struct file *file, void *fh, +static int imgu_meta_enum_format(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *fmt) { struct imgu_video_device *node =3D file_to_intel_imgu_node(file); @@ -882,7 +890,8 @@ static int imgu_meta_enum_format(struct file *file, voi= d *fh, return 0; } =20 -static int imgu_vidioc_g_meta_fmt(struct file *file, void *fh, +static int imgu_vidioc_g_meta_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct imgu_video_device *node =3D file_to_intel_imgu_node(file); diff --git a/drivers/staging/media/ipu7/ipu7-isys-video.c b/drivers/staging= /media/ipu7/ipu7-isys-video.c index 1a7c8a91fffb38d1a9b20f896a332a88d8060095..6e46df7a07b0143826c41d21dd3= 920088e70b3c6 100644 --- a/drivers/staging/media/ipu7/ipu7-isys-video.c +++ b/drivers/staging/media/ipu7/ipu7-isys-video.c @@ -107,7 +107,8 @@ const struct ipu7_isys_pixelformat *ipu7_isys_get_isys_= format(u32 pixelformat) return &ipu7_isys_pfmts[0]; } =20 -static int ipu7_isys_vidioc_querycap(struct file *file, void *fh, +static int ipu7_isys_vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct ipu7_isys_video *av =3D video_drvdata(file); @@ -118,7 +119,8 @@ static int ipu7_isys_vidioc_querycap(struct file *file,= void *fh, return 0; } =20 -static int ipu7_isys_vidioc_enum_fmt(struct file *file, void *fh, +static int ipu7_isys_vidioc_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { unsigned int i, num_found; @@ -144,7 +146,8 @@ static int ipu7_isys_vidioc_enum_fmt(struct file *file,= void *fh, return -EINVAL; } =20 -static int ipu7_isys_vidioc_enum_framesizes(struct file *file, void *fh, +static int ipu7_isys_vidioc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { unsigned int i; @@ -170,7 +173,8 @@ static int ipu7_isys_vidioc_enum_framesizes(struct file= *file, void *fh, return -EINVAL; } =20 -static int ipu7_isys_vidioc_g_fmt_vid_cap(struct file *file, void *fh, +static int ipu7_isys_vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ipu7_isys_video *av =3D video_drvdata(file); @@ -226,7 +230,8 @@ static void __ipu_isys_vidioc_try_fmt_vid_cap(struct ip= u7_isys_video *av, f->fmt.pix.xfer_func =3D V4L2_XFER_FUNC_DEFAULT; } =20 -static int ipu7_isys_vidioc_try_fmt_vid_cap(struct file *file, void *fh, +static int ipu7_isys_vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ipu7_isys_video *av =3D video_drvdata(file); @@ -239,18 +244,20 @@ static int ipu7_isys_vidioc_try_fmt_vid_cap(struct fi= le *file, void *fh, return 0; } =20 -static int ipu7_isys_vidioc_s_fmt_vid_cap(struct file *file, void *fh, +static int ipu7_isys_vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct ipu7_isys_video *av =3D video_drvdata(file); =20 - ipu7_isys_vidioc_try_fmt_vid_cap(file, fh, f); + ipu7_isys_vidioc_try_fmt_vid_cap(file, state, f); av->pix_fmt =3D f->fmt.pix; =20 return 0; } =20 -static int ipu7_isys_vidioc_reqbufs(struct file *file, void *priv, +static int ipu7_isys_vidioc_reqbufs(struct file *file, + struct video_device_state *state, struct v4l2_requestbuffers *p) { struct ipu7_isys_video *av =3D video_drvdata(file); @@ -263,10 +270,11 @@ static int ipu7_isys_vidioc_reqbufs(struct file *file= , void *priv, if (ret) return ret; =20 - return vb2_ioctl_reqbufs(file, priv, p); + return vb2_ioctl_reqbufs(file, state, p); } =20 -static int ipu7_isys_vidioc_create_bufs(struct file *file, void *priv, +static int ipu7_isys_vidioc_create_bufs(struct file *file, + struct video_device_state *state, struct v4l2_create_buffers *p) { struct ipu7_isys_video *av =3D video_drvdata(file); @@ -279,7 +287,7 @@ static int ipu7_isys_vidioc_create_bufs(struct file *fi= le, void *priv, if (ret) return ret; =20 - return vb2_ioctl_create_bufs(file, priv, p); + return vb2_ioctl_create_bufs(file, state, p); } =20 static int link_validate(struct media_link *link) diff --git a/drivers/staging/media/meson/vdec/vdec.c b/drivers/staging/medi= a/meson/vdec/vdec.c index 49e497a32973b8df18c5143e0db68d0f7f42c36c..876e6fdb1fb308746fc58a7cf31= 9bf70d39cfd1c 100644 --- a/drivers/staging/media/meson/vdec/vdec.c +++ b/drivers/staging/media/meson/vdec/vdec.c @@ -453,7 +453,8 @@ static const struct vb2_ops vdec_vb2_ops =3D { }; =20 static int -vdec_querycap(struct file *file, void *fh, struct v4l2_capability *cap) +vdec_querycap(struct file *file, struct video_device_state *state, + struct v4l2_capability *cap) { strscpy(cap->driver, "meson-vdec", sizeof(cap->driver)); strscpy(cap->card, "Amlogic Video Decoder", sizeof(cap->card)); @@ -556,7 +557,8 @@ vdec_try_fmt_common(struct amvdec_session *sess, u32 si= ze, return fmt_out; } =20 -static int vdec_try_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int vdec_try_fmt(struct file *file, struct video_device_state *stat= e, + struct v4l2_format *f) { struct amvdec_session *sess =3D file_to_amvdec_session(file); =20 @@ -565,7 +567,8 @@ static int vdec_try_fmt(struct file *file, void *fh, st= ruct v4l2_format *f) return 0; } =20 -static int vdec_g_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int vdec_g_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct amvdec_session *sess =3D file_to_amvdec_session(file); struct v4l2_pix_format_mplane *pixmp =3D &f->fmt.pix_mp; @@ -592,7 +595,8 @@ static int vdec_g_fmt(struct file *file, void *fh, stru= ct v4l2_format *f) return 0; } =20 -static int vdec_s_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int vdec_s_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct amvdec_session *sess =3D file_to_amvdec_session(file); struct v4l2_pix_format_mplane *pixmp =3D &f->fmt.pix_mp; @@ -653,7 +657,8 @@ static int vdec_s_fmt(struct file *file, void *fh, stru= ct v4l2_format *f) return 0; } =20 -static int vdec_enum_fmt(struct file *file, void *fh, struct v4l2_fmtdesc = *f) +static int vdec_enum_fmt(struct file *file, struct video_device_state *sta= te, + struct v4l2_fmtdesc *f) { struct amvdec_session *sess =3D file_to_amvdec_session(file); const struct vdec_platform *platform =3D sess->core->platform; @@ -681,7 +686,8 @@ static int vdec_enum_fmt(struct file *file, void *fh, s= truct v4l2_fmtdesc *f) return 0; } =20 -static int vdec_enum_framesizes(struct file *file, void *fh, +static int vdec_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct amvdec_session *sess =3D file_to_amvdec_session(file); @@ -706,14 +712,15 @@ static int vdec_enum_framesizes(struct file *file, vo= id *fh, } =20 static int -vdec_decoder_cmd(struct file *file, void *fh, struct v4l2_decoder_cmd *cmd) +vdec_decoder_cmd(struct file *file, struct video_device_state *state, + struct v4l2_decoder_cmd *cmd) { struct amvdec_session *sess =3D file_to_amvdec_session(file); struct amvdec_codec_ops *codec_ops =3D sess->fmt_out->codec_ops; struct device *dev =3D sess->core->dev; int ret; =20 - ret =3D v4l2_m2m_ioctl_try_decoder_cmd(file, fh, cmd); + ret =3D v4l2_m2m_ioctl_try_decoder_cmd(file, state, cmd); if (ret) return ret; =20 @@ -764,7 +771,8 @@ static int vdec_subscribe_event(struct v4l2_fh *fh, } } =20 -static int vdec_g_pixelaspect(struct file *file, void *fh, int type, +static int vdec_g_pixelaspect(struct file *file, + struct video_device_state *state, int type, struct v4l2_fract *f) { struct amvdec_session *sess =3D file_to_amvdec_session(file); diff --git a/drivers/staging/media/starfive/camss/stf-video.c b/drivers/sta= ging/media/starfive/camss/stf-video.c index a0420eb6a0aa034fb0b1468951d84c8fe7bb1b56..b967a44039e05fb22cce3c87364= 965137ce7422c 100644 --- a/drivers/staging/media/starfive/camss/stf-video.c +++ b/drivers/staging/media/starfive/camss/stf-video.c @@ -332,7 +332,8 @@ static const struct vb2_ops stf_video_vb2_q_ops =3D { * V4L2 ioctls */ =20 -static int video_querycap(struct file *file, void *fh, +static int video_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, "starfive-camss", sizeof(cap->driver)); @@ -341,7 +342,8 @@ static int video_querycap(struct file *file, void *fh, return 0; } =20 -static int video_enum_fmt(struct file *file, void *fh, struct v4l2_fmtdesc= *f) +static int video_enum_fmt(struct file *file, struct video_device_state *st= ate, + struct v4l2_fmtdesc *f) { struct stfcamss_video *video =3D video_drvdata(file); const struct stfcamss_format_info *fi; @@ -367,7 +369,8 @@ static int video_enum_fmt(struct file *file, void *fh, = struct v4l2_fmtdesc *f) return 0; } =20 -static int video_enum_framesizes(struct file *file, void *fh, +static int video_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct stfcamss_video *video =3D video_drvdata(file); @@ -395,7 +398,8 @@ static int video_enum_framesizes(struct file *file, voi= d *fh, return 0; } =20 -static int video_g_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int video_g_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct stfcamss_video *video =3D video_drvdata(file); =20 @@ -404,7 +408,8 @@ static int video_g_fmt(struct file *file, void *fh, str= uct v4l2_format *f) return 0; } =20 -static int video_s_fmt(struct file *file, void *fh, struct v4l2_format *f) +static int video_s_fmt(struct file *file, struct video_device_state *state, + struct v4l2_format *f) { struct stfcamss_video *video =3D video_drvdata(file); int ret; @@ -421,7 +426,8 @@ static int video_s_fmt(struct file *file, void *fh, str= uct v4l2_format *f) return 0; } =20 -static int video_try_fmt(struct file *file, void *fh, struct v4l2_format *= f) +static int video_try_fmt(struct file *file, struct video_device_state *sta= te, + struct v4l2_format *f) { struct stfcamss_video *video =3D video_drvdata(file); =20 diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_video.c b/drivers/st= aging/media/sunxi/cedrus/cedrus_video.c index ad4ec349077547ea3428c7341f152d729d775bb2..a96473a966cbc1a2f669ad705fc= f72220a92c37a 100644 --- a/drivers/staging/media/sunxi/cedrus/cedrus_video.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus_video.c @@ -175,7 +175,8 @@ void cedrus_prepare_format(struct v4l2_pix_format *pix_= fmt) pix_fmt->sizeimage =3D sizeimage; } =20 -static int cedrus_querycap(struct file *file, void *priv, +static int cedrus_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { strscpy(cap->driver, CEDRUS_NAME, sizeof(cap->driver)); @@ -218,19 +219,22 @@ static int cedrus_enum_fmt(struct file *file, struct = v4l2_fmtdesc *f, return -EINVAL; } =20 -static int cedrus_enum_fmt_vid_cap(struct file *file, void *priv, +static int cedrus_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return cedrus_enum_fmt(file, f, CEDRUS_DECODE_DST); } =20 -static int cedrus_enum_fmt_vid_out(struct file *file, void *priv, +static int cedrus_enum_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { return cedrus_enum_fmt(file, f, CEDRUS_DECODE_SRC); } =20 -static int cedrus_g_fmt_vid_cap(struct file *file, void *priv, +static int cedrus_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cedrus_ctx *ctx =3D cedrus_file2ctx(file); @@ -239,7 +243,8 @@ static int cedrus_g_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int cedrus_g_fmt_vid_out(struct file *file, void *priv, +static int cedrus_g_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cedrus_ctx *ctx =3D cedrus_file2ctx(file); @@ -270,7 +275,8 @@ static int cedrus_try_fmt_vid_cap_p(struct cedrus_ctx *= ctx, return 0; } =20 -static int cedrus_try_fmt_vid_cap(struct file *file, void *priv, +static int cedrus_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { return cedrus_try_fmt_vid_cap_p(cedrus_file2ctx(file), &f->fmt.pix); @@ -292,13 +298,15 @@ static int cedrus_try_fmt_vid_out_p(struct cedrus_ctx= *ctx, return 0; } =20 -static int cedrus_try_fmt_vid_out(struct file *file, void *priv, +static int cedrus_try_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { return cedrus_try_fmt_vid_out_p(cedrus_file2ctx(file), &f->fmt.pix); } =20 -static int cedrus_s_fmt_vid_cap(struct file *file, void *priv, +static int cedrus_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cedrus_ctx *ctx =3D cedrus_file2ctx(file); @@ -309,7 +317,7 @@ static int cedrus_s_fmt_vid_cap(struct file *file, void= *priv, if (vb2_is_busy(vq)) return -EBUSY; =20 - ret =3D cedrus_try_fmt_vid_cap(file, priv, f); + ret =3D cedrus_try_fmt_vid_cap(file, state, f); if (ret) return ret; =20 @@ -381,7 +389,8 @@ void cedrus_reset_out_format(struct cedrus_ctx *ctx) cedrus_s_fmt_vid_out_p(ctx, &ctx->src_fmt); } =20 -static int cedrus_s_fmt_vid_out(struct file *file, void *priv, +static int cedrus_s_fmt_vid_out(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct cedrus_ctx *ctx =3D cedrus_file2ctx(file); diff --git a/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_capture.c b/dr= ivers/staging/media/sunxi/sun6i-isp/sun6i_isp_capture.c index e7b99cee63d68bcb6d6e69cde9dd5c2de0d553f4..d64d0f77f632d65ff92bc0a4a58= 7efacf2a4a5e9 100644 --- a/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_capture.c +++ b/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_capture.c @@ -419,7 +419,8 @@ static void sun6i_isp_capture_format_prepare(struct v4l= 2_format *format) pix_format->xfer_func =3D V4L2_XFER_FUNC_DEFAULT; } =20 -static int sun6i_isp_capture_querycap(struct file *file, void *priv, +static int sun6i_isp_capture_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *capability) { struct sun6i_isp_device *isp_dev =3D video_drvdata(file); @@ -433,7 +434,8 @@ static int sun6i_isp_capture_querycap(struct file *file= , void *priv, return 0; } =20 -static int sun6i_isp_capture_enum_fmt(struct file *file, void *priv, +static int sun6i_isp_capture_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *fmtdesc) { u32 index =3D fmtdesc->index; @@ -446,7 +448,8 @@ static int sun6i_isp_capture_enum_fmt(struct file *file= , void *priv, return 0; } =20 -static int sun6i_isp_capture_g_fmt(struct file *file, void *priv, +static int sun6i_isp_capture_g_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *format) { struct sun6i_isp_device *isp_dev =3D video_drvdata(file); @@ -456,7 +459,8 @@ static int sun6i_isp_capture_g_fmt(struct file *file, v= oid *priv, return 0; } =20 -static int sun6i_isp_capture_s_fmt(struct file *file, void *priv, +static int sun6i_isp_capture_s_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *format) { struct sun6i_isp_device *isp_dev =3D video_drvdata(file); @@ -471,7 +475,8 @@ static int sun6i_isp_capture_s_fmt(struct file *file, v= oid *priv, return 0; } =20 -static int sun6i_isp_capture_try_fmt(struct file *file, void *priv, +static int sun6i_isp_capture_try_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *format) { sun6i_isp_capture_format_prepare(format); @@ -479,7 +484,8 @@ static int sun6i_isp_capture_try_fmt(struct file *file,= void *priv, return 0; } =20 -static int sun6i_isp_capture_enum_input(struct file *file, void *priv, +static int sun6i_isp_capture_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *input) { if (input->index !=3D 0) @@ -491,7 +497,8 @@ static int sun6i_isp_capture_enum_input(struct file *fi= le, void *priv, return 0; } =20 -static int sun6i_isp_capture_g_input(struct file *file, void *priv, +static int sun6i_isp_capture_g_input(struct file *file, + struct video_device_state *state, unsigned int *index) { *index =3D 0; @@ -499,7 +506,8 @@ static int sun6i_isp_capture_g_input(struct file *file,= void *priv, return 0; } =20 -static int sun6i_isp_capture_s_input(struct file *file, void *priv, +static int sun6i_isp_capture_s_input(struct file *file, + struct video_device_state *state, unsigned int index) { if (index !=3D 0) diff --git a/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_params.c b/dri= vers/staging/media/sunxi/sun6i-isp/sun6i_isp_params.c index 77c2d06c04362157c9cc3de801e8c576313e7da7..ed697fc56dd94fb7f79c0d07b55= c8ea09b1eb8bc 100644 --- a/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_params.c +++ b/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_params.c @@ -383,7 +383,8 @@ static const struct vb2_ops sun6i_isp_params_queue_ops = =3D { =20 /* Video Device */ =20 -static int sun6i_isp_params_querycap(struct file *file, void *priv, +static int sun6i_isp_params_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *capability) { struct sun6i_isp_device *isp_dev =3D video_drvdata(file); @@ -397,7 +398,8 @@ static int sun6i_isp_params_querycap(struct file *file,= void *priv, return 0; } =20 -static int sun6i_isp_params_enum_fmt(struct file *file, void *priv, +static int sun6i_isp_params_enum_fmt(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *fmtdesc) { struct sun6i_isp_device *isp_dev =3D video_drvdata(file); @@ -412,7 +414,8 @@ static int sun6i_isp_params_enum_fmt(struct file *file,= void *priv, return 0; } =20 -static int sun6i_isp_params_g_fmt(struct file *file, void *priv, +static int sun6i_isp_params_g_fmt(struct file *file, + struct video_device_state *state, struct v4l2_format *format) { struct sun6i_isp_device *isp_dev =3D video_drvdata(file); diff --git a/drivers/staging/media/tegra-video/vi.c b/drivers/staging/media= /tegra-video/vi.c index c9276ff76157fa2d17e05df271c6ebea4b4455ed..1f9100b28ac0c9e5c31e839e0d0= 378e00a5a872d 100644 --- a/drivers/staging/media/tegra-video/vi.c +++ b/drivers/staging/media/tegra-video/vi.c @@ -294,7 +294,8 @@ static const struct vb2_ops tegra_channel_queue_qops = =3D { /* * V4L2 ioctl operations */ -static int tegra_channel_querycap(struct file *file, void *fh, +static int tegra_channel_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -307,7 +308,8 @@ static int tegra_channel_querycap(struct file *file, vo= id *fh, return 0; } =20 -static int tegra_channel_g_parm(struct file *file, void *fh, +static int tegra_channel_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *a) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -317,7 +319,8 @@ static int tegra_channel_g_parm(struct file *file, void= *fh, return v4l2_g_parm_cap(&chan->video, subdev, a); } =20 -static int tegra_channel_s_parm(struct file *file, void *fh, +static int tegra_channel_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *a) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -327,7 +330,8 @@ static int tegra_channel_s_parm(struct file *file, void= *fh, return v4l2_s_parm_cap(&chan->video, subdev, a); } =20 -static int tegra_channel_enum_framesizes(struct file *file, void *fh, +static int tegra_channel_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *sizes) { int ret; @@ -357,7 +361,8 @@ static int tegra_channel_enum_framesizes(struct file *f= ile, void *fh, return 0; } =20 -static int tegra_channel_enum_frameintervals(struct file *file, void *fh, +static int tegra_channel_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *ivals) { int ret; @@ -389,7 +394,8 @@ static int tegra_channel_enum_frameintervals(struct fil= e *file, void *fh, return 0; } =20 -static int tegra_channel_enum_format(struct file *file, void *fh, +static int tegra_channel_enum_format(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -410,7 +416,8 @@ static int tegra_channel_enum_format(struct file *file,= void *fh, return 0; } =20 -static int tegra_channel_get_format(struct file *file, void *fh, +static int tegra_channel_get_format(struct file *file, + struct video_device_state *state, struct v4l2_format *format) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -505,7 +512,8 @@ static int __tegra_channel_try_format(struct tegra_vi_c= hannel *chan, return 0; } =20 -static int tegra_channel_try_format(struct file *file, void *fh, +static int tegra_channel_try_format(struct file *file, + struct video_device_state *state, struct v4l2_format *format) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -521,7 +529,8 @@ static void tegra_channel_update_gangports(struct tegra= _vi_channel *chan) chan->numgangports =3D chan->totalports; } =20 -static int tegra_channel_set_format(struct file *file, void *fh, +static int tegra_channel_set_format(struct file *file, + struct video_device_state *state, struct v4l2_format *format) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -605,7 +614,8 @@ tegra_channel_subscribe_event(struct v4l2_fh *fh, return v4l2_ctrl_subscribe_event(fh, sub); } =20 -static int tegra_channel_g_selection(struct file *file, void *priv, +static int tegra_channel_g_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -647,7 +657,8 @@ static int tegra_channel_g_selection(struct file *file,= void *priv, return 0; } =20 -static int tegra_channel_s_selection(struct file *file, void *fh, +static int tegra_channel_s_selection(struct file *file, + struct video_device_state *state, struct v4l2_selection *sel) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -684,7 +695,8 @@ static int tegra_channel_s_selection(struct file *file,= void *fh, return ret; } =20 -static int tegra_channel_g_edid(struct file *file, void *fh, +static int tegra_channel_g_edid(struct file *file, + struct video_device_state *state, struct v4l2_edid *edid) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -697,7 +709,8 @@ static int tegra_channel_g_edid(struct file *file, void= *fh, return v4l2_subdev_call(subdev, pad, get_edid, edid); } =20 -static int tegra_channel_s_edid(struct file *file, void *fh, +static int tegra_channel_s_edid(struct file *file, + struct video_device_state *state, struct v4l2_edid *edid) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -710,7 +723,8 @@ static int tegra_channel_s_edid(struct file *file, void= *fh, return v4l2_subdev_call(subdev, pad, set_edid, edid); } =20 -static int tegra_channel_g_dv_timings(struct file *file, void *fh, +static int tegra_channel_g_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -724,7 +738,8 @@ static int tegra_channel_g_dv_timings(struct file *file= , void *fh, pad, g_dv_timings, 0, timings); } =20 -static int tegra_channel_s_dv_timings(struct file *file, void *fh, +static int tegra_channel_s_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -737,7 +752,7 @@ static int tegra_channel_s_dv_timings(struct file *file= , void *fh, if (!v4l2_subdev_has_op(subdev, pad, s_dv_timings)) return -ENOTTY; =20 - ret =3D tegra_channel_g_dv_timings(file, fh, &curr_timings); + ret =3D tegra_channel_g_dv_timings(file, state, &curr_timings); if (ret) return ret; =20 @@ -762,7 +777,8 @@ static int tegra_channel_s_dv_timings(struct file *file= , void *fh, return 0; } =20 -static int tegra_channel_query_dv_timings(struct file *file, void *fh, +static int tegra_channel_query_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings *timings) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -776,7 +792,8 @@ static int tegra_channel_query_dv_timings(struct file *= file, void *fh, pad, query_dv_timings, 0, timings); } =20 -static int tegra_channel_enum_dv_timings(struct file *file, void *fh, +static int tegra_channel_enum_dv_timings(struct file *file, + struct video_device_state *state, struct v4l2_enum_dv_timings *timings) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -789,7 +806,8 @@ static int tegra_channel_enum_dv_timings(struct file *f= ile, void *fh, return v4l2_subdev_call(subdev, pad, enum_dv_timings, timings); } =20 -static int tegra_channel_dv_timings_cap(struct file *file, void *fh, +static int tegra_channel_dv_timings_cap(struct file *file, + struct video_device_state *state, struct v4l2_dv_timings_cap *cap) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -802,7 +820,8 @@ static int tegra_channel_dv_timings_cap(struct file *fi= le, void *fh, return v4l2_subdev_call(subdev, pad, dv_timings_cap, cap); } =20 -static int tegra_channel_log_status(struct file *file, void *fh) +static int tegra_channel_log_status(struct file *file, + struct video_device_state *state) { struct tegra_vi_channel *chan =3D video_drvdata(file); =20 @@ -811,7 +830,8 @@ static int tegra_channel_log_status(struct file *file, = void *fh) return 0; } =20 -static int tegra_channel_enum_input(struct file *file, void *fh, +static int tegra_channel_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { struct tegra_vi_channel *chan =3D video_drvdata(file); @@ -829,7 +849,8 @@ static int tegra_channel_enum_input(struct file *file, = void *fh, return 0; } =20 -static int tegra_channel_g_input(struct file *file, void *priv, +static int tegra_channel_g_input(struct file *file, + struct video_device_state *state, unsigned int *i) { *i =3D 0; @@ -837,7 +858,8 @@ static int tegra_channel_g_input(struct file *file, voi= d *priv, return 0; } =20 -static int tegra_channel_s_input(struct file *file, void *priv, +static int tegra_channel_s_input(struct file *file, + struct video_device_state *state, unsigned int input) { if (input > 0) diff --git a/drivers/staging/most/video/video.c b/drivers/staging/most/vide= o/video.c index 32f71d9a9cf78ad74aa8b9a53f40c1d52123df52..5bce5e4c566803c86c8b656427a= 75e91ca635405 100644 --- a/drivers/staging/most/video/video.c +++ b/drivers/staging/most/video/video.c @@ -242,10 +242,11 @@ static int comp_set_format(struct most_video_dev *mde= v, unsigned int cmd, return 0; } =20 -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { - struct comp_fh *fh =3D priv; + struct comp_fh *fh =3D state; struct most_video_dev *mdev =3D fh->mdev; =20 strscpy(cap->driver, "v4l2_component", sizeof(cap->driver)); @@ -255,7 +256,8 @@ static int vidioc_querycap(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { if (f->index) @@ -269,41 +271,46 @@ static int vidioc_enum_fmt_vid_cap(struct file *file,= void *priv, return 0; } =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { comp_set_format_struct(f); return 0; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { - struct comp_fh *fh =3D priv; + struct comp_fh *fh =3D state; struct most_video_dev *mdev =3D fh->mdev; =20 return comp_set_format(mdev, VIDIOC_TRY_FMT, f); } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { - struct comp_fh *fh =3D priv; + struct comp_fh *fh =3D state; struct most_video_dev *mdev =3D fh->mdev; =20 return comp_set_format(mdev, VIDIOC_S_FMT, f); } =20 -static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *norm) +static int vidioc_g_std(struct file *file, struct video_device_state *stat= e, + v4l2_std_id *norm) { *norm =3D V4L2_STD_UNKNOWN; return 0; } =20 -static int vidioc_enum_input(struct file *file, void *priv, +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *input) { - struct comp_fh *fh =3D priv; + struct comp_fh *fh =3D state; struct most_video_dev *mdev =3D fh->mdev; =20 if (input->index >=3D V4L2_CMP_MAX_INPUT) @@ -318,17 +325,19 @@ static int vidioc_enum_input(struct file *file, void = *priv, return 0; } =20 -static int vidioc_g_input(struct file *file, void *priv, unsigned int *i) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { - struct comp_fh *fh =3D priv; + struct comp_fh *fh =3D state; struct most_video_dev *mdev =3D fh->mdev; *i =3D mdev->ctrl_input; return 0; } =20 -static int vidioc_s_input(struct file *file, void *priv, unsigned int inde= x) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int index) { - struct comp_fh *fh =3D priv; + struct comp_fh *fh =3D state; struct most_video_dev *mdev =3D fh->mdev; =20 if (index >=3D V4L2_CMP_MAX_INPUT) diff --git a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c = b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c index fa7ea4ca4c36f4ec7f76f6ffbea9f45205116bb8..ac0e5e711200712df1542ad3c0f= 1da3f90139d20 100644 --- a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c +++ b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c @@ -689,7 +689,8 @@ static int set_overlay_params(struct bcm2835_mmal_dev *= dev, } =20 /* overlay ioctl */ -static int vidioc_enum_fmt_vid_overlay(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_overlay(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct mmal_fmt *fmt; @@ -704,7 +705,8 @@ static int vidioc_enum_fmt_vid_overlay(struct file *fil= e, void *priv, return 0; } =20 -static int vidioc_g_fmt_vid_overlay(struct file *file, void *priv, +static int vidioc_g_fmt_vid_overlay(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct bcm2835_mmal_dev *dev =3D video_drvdata(file); @@ -714,7 +716,8 @@ static int vidioc_g_fmt_vid_overlay(struct file *file, = void *priv, return 0; } =20 -static int vidioc_try_fmt_vid_overlay(struct file *file, void *priv, +static int vidioc_try_fmt_vid_overlay(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct bcm2835_mmal_dev *dev =3D video_drvdata(file); @@ -745,12 +748,13 @@ static int vidioc_try_fmt_vid_overlay(struct file *fi= le, void *priv, return 0; } =20 -static int vidioc_s_fmt_vid_overlay(struct file *file, void *priv, +static int vidioc_s_fmt_vid_overlay(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct bcm2835_mmal_dev *dev =3D video_drvdata(file); =20 - vidioc_try_fmt_vid_overlay(file, priv, f); + vidioc_try_fmt_vid_overlay(file, state, f); =20 dev->overlay =3D f->fmt.win; if (dev->component[COMP_PREVIEW]->enabled) { @@ -761,7 +765,8 @@ static int vidioc_s_fmt_vid_overlay(struct file *file, = void *priv, return 0; } =20 -static int vidioc_overlay(struct file *file, void *f, unsigned int on) +static int vidioc_overlay(struct file *file, struct video_device_state *st= ate, + unsigned int on) { int ret; struct bcm2835_mmal_dev *dev =3D video_drvdata(file); @@ -816,7 +821,8 @@ static int vidioc_overlay(struct file *file, void *f, u= nsigned int on) return vchiq_mmal_port_enable(dev->instance, src, NULL); } =20 -static int vidioc_g_fbuf(struct file *file, void *fh, +static int vidioc_g_fbuf(struct file *file, + struct video_device_state *state, struct v4l2_framebuffer *a) { /* The video overlay must stay within the framebuffer and can't be @@ -841,7 +847,8 @@ static int vidioc_g_fbuf(struct file *file, void *fh, } =20 /* input ioctls */ -static int vidioc_enum_input(struct file *file, void *priv, +static int vidioc_enum_input(struct file *file, + struct video_device_state *state, struct v4l2_input *inp) { /* only a single camera input */ @@ -853,13 +860,15 @@ static int vidioc_enum_input(struct file *file, void = *priv, return 0; } =20 -static int vidioc_g_input(struct file *file, void *priv, unsigned int *i) +static int vidioc_g_input(struct file *file, struct video_device_state *st= ate, + unsigned int *i) { *i =3D 0; return 0; } =20 -static int vidioc_s_input(struct file *file, void *priv, unsigned int i) +static int vidioc_s_input(struct file *file, struct video_device_state *st= ate, + unsigned int i) { if (i) return -EINVAL; @@ -868,7 +877,8 @@ static int vidioc_s_input(struct file *file, void *priv= , unsigned int i) } =20 /* capture ioctls */ -static int vidioc_querycap(struct file *file, void *priv, +static int vidioc_querycap(struct file *file, + struct video_device_state *state, struct v4l2_capability *cap) { struct bcm2835_mmal_dev *dev =3D video_drvdata(file); @@ -884,7 +894,8 @@ static int vidioc_querycap(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_enum_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_fmtdesc *f) { struct mmal_fmt *fmt; @@ -899,7 +910,8 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, v= oid *priv, return 0; } =20 -static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_g_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct bcm2835_mmal_dev *dev =3D video_drvdata(file); @@ -924,7 +936,8 @@ static int vidioc_g_fmt_vid_cap(struct file *file, void= *priv, return 0; } =20 -static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_try_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { struct bcm2835_mmal_dev *dev =3D video_drvdata(file); @@ -1276,7 +1289,8 @@ static int mmal_setup_components(struct bcm2835_mmal_= dev *dev, return ret; } =20 -static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, +static int vidioc_s_fmt_vid_cap(struct file *file, + struct video_device_state *state, struct v4l2_format *f) { int ret; @@ -1284,7 +1298,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, vo= id *priv, struct mmal_fmt *mfmt; =20 /* try the format to set valid parameters */ - ret =3D vidioc_try_fmt_vid_cap(file, priv, f); + ret =3D vidioc_try_fmt_vid_cap(file, state, f); if (ret) { v4l2_err(&dev->v4l2_dev, "vid_cap - vidioc_try_fmt_vid_cap failed\n"); @@ -1320,7 +1334,8 @@ static int vidioc_s_fmt_vid_cap(struct file *file, vo= id *priv, return ret; } =20 -static int vidioc_enum_framesizes(struct file *file, void *fh, +static int vidioc_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct bcm2835_mmal_dev *dev =3D video_drvdata(file); @@ -1345,7 +1360,8 @@ static int vidioc_enum_framesizes(struct file *file, = void *fh, } =20 /* timeperframe is arbitrary and continuous */ -static int vidioc_enum_frameintervals(struct file *file, void *priv, +static int vidioc_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *fival) { struct bcm2835_mmal_dev *dev =3D video_drvdata(file); @@ -1375,7 +1391,8 @@ static int vidioc_enum_frameintervals(struct file *fi= le, void *priv, return 0; } =20 -static int vidioc_g_parm(struct file *file, void *priv, +static int vidioc_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct bcm2835_mmal_dev *dev =3D video_drvdata(file); @@ -1389,7 +1406,8 @@ static int vidioc_g_parm(struct file *file, void *pri= v, return 0; } =20 -static int vidioc_s_parm(struct file *file, void *priv, +static int vidioc_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct bcm2835_mmal_dev *dev =3D video_drvdata(file); diff --git a/drivers/usb/gadget/function/uvc_v4l2.c b/drivers/usb/gadget/fu= nction/uvc_v4l2.c index fd4b998ccd16058eb796dd317971c0869f6bdeb8..759f773eed9372f2d83ec7cbf1b= a5e9dc1d278f6 100644 --- a/drivers/usb/gadget/function/uvc_v4l2.c +++ b/drivers/usb/gadget/function/uvc_v4l2.c @@ -212,7 +212,8 @@ uvc_send_response(struct uvc_device *uvc, struct uvc_re= quest_data *data) */ =20 static int -uvc_v4l2_querycap(struct file *file, void *fh, struct v4l2_capability *cap) +uvc_v4l2_querycap(struct file *file, struct video_device_state *state, + struct v4l2_capability *cap) { struct video_device *vdev =3D video_devdata(file); struct uvc_device *uvc =3D video_get_drvdata(vdev); @@ -226,7 +227,8 @@ uvc_v4l2_querycap(struct file *file, void *fh, struct v= 4l2_capability *cap) } =20 static int -uvc_v4l2_get_format(struct file *file, void *fh, struct v4l2_format *fmt) +uvc_v4l2_get_format(struct file *file, struct video_device_state *state, + struct v4l2_format *fmt) { struct video_device *vdev =3D video_devdata(file); struct uvc_device *uvc =3D video_get_drvdata(vdev); @@ -245,7 +247,8 @@ uvc_v4l2_get_format(struct file *file, void *fh, struct= v4l2_format *fmt) } =20 static int -uvc_v4l2_try_format(struct file *file, void *fh, struct v4l2_format *fmt) +uvc_v4l2_try_format(struct file *file, struct video_device_state *state, + struct v4l2_format *fmt) { struct video_device *vdev =3D video_devdata(file); struct uvc_device *uvc =3D video_get_drvdata(vdev); @@ -303,14 +306,15 @@ uvc_v4l2_try_format(struct file *file, void *fh, stru= ct v4l2_format *fmt) } =20 static int -uvc_v4l2_set_format(struct file *file, void *fh, struct v4l2_format *fmt) +uvc_v4l2_set_format(struct file *file, struct video_device_state *state, + struct v4l2_format *fmt) { struct video_device *vdev =3D video_devdata(file); struct uvc_device *uvc =3D video_get_drvdata(vdev); struct uvc_video *video =3D &uvc->video; int ret; =20 - ret =3D uvc_v4l2_try_format(file, fh, fmt); + ret =3D uvc_v4l2_try_format(file, state, fmt); if (ret) return ret; =20 @@ -323,7 +327,8 @@ uvc_v4l2_set_format(struct file *file, void *fh, struct= v4l2_format *fmt) return ret; } =20 -static int uvc_v4l2_g_parm(struct file *file, void *fh, +static int uvc_v4l2_g_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct video_device *vdev =3D video_devdata(file); @@ -350,7 +355,8 @@ static int uvc_v4l2_g_parm(struct file *file, void *fh, return 0; } =20 -static int uvc_v4l2_s_parm(struct file *file, void *fh, +static int uvc_v4l2_s_parm(struct file *file, + struct video_device_state *state, struct v4l2_streamparm *parm) { struct video_device *vdev =3D video_devdata(file); @@ -374,7 +380,8 @@ static int uvc_v4l2_s_parm(struct file *file, void *fh, } =20 static int -uvc_v4l2_enum_frameintervals(struct file *file, void *fh, +uvc_v4l2_enum_frameintervals(struct file *file, + struct video_device_state *state, struct v4l2_frmivalenum *fival) { struct video_device *vdev =3D video_devdata(file); @@ -413,7 +420,8 @@ uvc_v4l2_enum_frameintervals(struct file *file, void *f= h, } =20 static int -uvc_v4l2_enum_framesizes(struct file *file, void *fh, +uvc_v4l2_enum_framesizes(struct file *file, + struct video_device_state *state, struct v4l2_frmsizeenum *fsize) { struct video_device *vdev =3D video_devdata(file); @@ -440,7 +448,8 @@ uvc_v4l2_enum_framesizes(struct file *file, void *fh, } =20 static int -uvc_v4l2_enum_format(struct file *file, void *fh, struct v4l2_fmtdesc *f) +uvc_v4l2_enum_format(struct file *file, struct video_device_state *state, + struct v4l2_fmtdesc *f) { struct video_device *vdev =3D video_devdata(file); struct uvc_device *uvc =3D video_get_drvdata(vdev); @@ -464,7 +473,8 @@ uvc_v4l2_enum_format(struct file *file, void *fh, struc= t v4l2_fmtdesc *f) } =20 static int -uvc_v4l2_reqbufs(struct file *file, void *fh, struct v4l2_requestbuffers *= b) +uvc_v4l2_reqbufs(struct file *file, struct video_device_state *state, + struct v4l2_requestbuffers *b) { struct video_device *vdev =3D video_devdata(file); struct uvc_device *uvc =3D video_get_drvdata(vdev); @@ -477,7 +487,8 @@ uvc_v4l2_reqbufs(struct file *file, void *fh, struct v4= l2_requestbuffers *b) } =20 static int -uvc_v4l2_querybuf(struct file *file, void *fh, struct v4l2_buffer *b) +uvc_v4l2_querybuf(struct file *file, struct video_device_state *state, + struct v4l2_buffer *b) { struct video_device *vdev =3D video_devdata(file); struct uvc_device *uvc =3D video_get_drvdata(vdev); @@ -487,7 +498,8 @@ uvc_v4l2_querybuf(struct file *file, void *fh, struct v= 4l2_buffer *b) } =20 static int -uvc_v4l2_qbuf(struct file *file, void *fh, struct v4l2_buffer *b) +uvc_v4l2_qbuf(struct file *file, struct video_device_state *state, + struct v4l2_buffer *b) { struct video_device *vdev =3D video_devdata(file); struct uvc_device *uvc =3D video_get_drvdata(vdev); @@ -505,7 +517,8 @@ uvc_v4l2_qbuf(struct file *file, void *fh, struct v4l2_= buffer *b) } =20 static int -uvc_v4l2_dqbuf(struct file *file, void *fh, struct v4l2_buffer *b) +uvc_v4l2_dqbuf(struct file *file, struct video_device_state *state, + struct v4l2_buffer *b) { struct video_device *vdev =3D video_devdata(file); struct uvc_device *uvc =3D video_get_drvdata(vdev); @@ -515,7 +528,8 @@ uvc_v4l2_dqbuf(struct file *file, void *fh, struct v4l2= _buffer *b) } =20 static int -uvc_v4l2_streamon(struct file *file, void *fh, enum v4l2_buf_type type) +uvc_v4l2_streamon(struct file *file, struct video_device_state *state, + enum v4l2_buf_type type) { struct video_device *vdev =3D video_devdata(file); struct uvc_device *uvc =3D video_get_drvdata(vdev); @@ -541,7 +555,8 @@ uvc_v4l2_streamon(struct file *file, void *fh, enum v4l= 2_buf_type type) } =20 static int -uvc_v4l2_streamoff(struct file *file, void *fh, enum v4l2_buf_type type) +uvc_v4l2_streamoff(struct file *file, struct video_device_state *state, + enum v4l2_buf_type type) { struct video_device *vdev =3D video_devdata(file); struct uvc_device *uvc =3D video_get_drvdata(vdev); @@ -620,7 +635,8 @@ uvc_v4l2_unsubscribe_event(struct v4l2_fh *fh, } =20 static long -uvc_v4l2_ioctl_default(struct file *file, void *fh, bool valid_prio, +uvc_v4l2_ioctl_default(struct file *file, struct video_device_state *state, + bool valid_prio, unsigned int cmd, void *arg) { struct video_device *vdev =3D video_devdata(file); diff --git a/include/media/v4l2-ctrls.h b/include/media/v4l2-ctrls.h index 31fc1bee3797bfe532931889188c8f7a9dedad39..a5a781d04db9aa57fabbccf938f= e8d38eb550a80 100644 --- a/include/media/v4l2-ctrls.h +++ b/include/media/v4l2-ctrls.h @@ -12,6 +12,7 @@ #include #include #include +#include =20 /* forward references */ struct file; @@ -1313,13 +1314,13 @@ void v4l2_ctrl_merge(const struct v4l2_event *old, = struct v4l2_event *new); * v4l2_ctrl_log_status - helper function to implement %VIDIOC_LOG_STATUS = ioctl * * @file: pointer to struct file - * @priv: unused. Kept just to be compatible to the arguments expected by + * @state: unused. Kept just to be compatible to the arguments expected by * &struct v4l2_ioctl_ops.vidioc_log_status. * * Can be used as a vidioc_log_status function that just dumps all controls * associated with the filehandle. */ -int v4l2_ctrl_log_status(struct file *file, void *priv); +int v4l2_ctrl_log_status(struct file *file, struct video_device_state *sta= te); =20 /** * v4l2_ctrl_subscribe_event - Subscribes to an event diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h index b5312823fbff9c236d4394d48fa9a14412b17c68..e8696d1a5931c54ee07ef9e268c= f635cf87e34f2 100644 --- a/include/media/v4l2-dev.h +++ b/include/media/v4l2-dev.h @@ -627,7 +627,7 @@ video_device_state_get_fmt(struct video_device_state *s= tate); * @state: pointer to struct video_device_state * @format: pointer to struct v4l2_format */ -int video_device_g_fmt(struct file *file, void *priv, +int video_device_g_fmt(struct file *file, struct video_device_state *state, struct v4l2_format *format); =20 /** diff --git a/include/media/v4l2-ioctl.h b/include/media/v4l2-ioctl.h index 6f7a58350441bedf4072d3f13ce05932c4ae8729..9e0acd57918c6d91f24f2184108= e75e77d505592 100644 --- a/include/media/v4l2-ioctl.h +++ b/include/media/v4l2-ioctl.h @@ -16,6 +16,7 @@ #include #include /* need __user */ #include +#include =20 struct v4l2_fh; =20 @@ -293,144 +294,144 @@ struct v4l2_ioctl_ops { /* ioctl callbacks */ =20 /* VIDIOC_QUERYCAP handler */ - int (*vidioc_querycap)(struct file *file, void *priv, + int (*vidioc_querycap)(struct file *file, struct video_device_state *stat= e, struct v4l2_capability *cap); =20 /* VIDIOC_ENUM_FMT handlers */ - int (*vidioc_enum_fmt_vid_cap)(struct file *file, void *priv, + int (*vidioc_enum_fmt_vid_cap)(struct file *file, struct video_device_sta= te *state, struct v4l2_fmtdesc *f); - int (*vidioc_enum_fmt_vid_overlay)(struct file *file, void *priv, + int (*vidioc_enum_fmt_vid_overlay)(struct file *file, struct video_device= _state *state, struct v4l2_fmtdesc *f); - int (*vidioc_enum_fmt_vid_out)(struct file *file, void *priv, + int (*vidioc_enum_fmt_vid_out)(struct file *file, struct video_device_sta= te *state, struct v4l2_fmtdesc *f); - int (*vidioc_enum_fmt_sdr_cap)(struct file *file, void *priv, + int (*vidioc_enum_fmt_sdr_cap)(struct file *file, struct video_device_sta= te *state, struct v4l2_fmtdesc *f); - int (*vidioc_enum_fmt_sdr_out)(struct file *file, void *priv, + int (*vidioc_enum_fmt_sdr_out)(struct file *file, struct video_device_sta= te *state, struct v4l2_fmtdesc *f); - int (*vidioc_enum_fmt_meta_cap)(struct file *file, void *priv, + int (*vidioc_enum_fmt_meta_cap)(struct file *file, struct video_device_st= ate *state, struct v4l2_fmtdesc *f); - int (*vidioc_enum_fmt_meta_out)(struct file *file, void *priv, + int (*vidioc_enum_fmt_meta_out)(struct file *file, struct video_device_st= ate *state, struct v4l2_fmtdesc *f); =20 /* VIDIOC_G_FMT handlers */ - int (*vidioc_g_fmt_vid_cap)(struct file *file, void *priv, + int (*vidioc_g_fmt_vid_cap)(struct file *file, struct video_device_state = *state, struct v4l2_format *f); - int (*vidioc_g_fmt_vid_overlay)(struct file *file, void *priv, + int (*vidioc_g_fmt_vid_overlay)(struct file *file, struct video_device_st= ate *state, struct v4l2_format *f); - int (*vidioc_g_fmt_vid_out)(struct file *file, void *priv, + int (*vidioc_g_fmt_vid_out)(struct file *file, struct video_device_state = *state, struct v4l2_format *f); - int (*vidioc_g_fmt_vid_out_overlay)(struct file *file, void *priv, + int (*vidioc_g_fmt_vid_out_overlay)(struct file *file, struct video_devic= e_state *state, struct v4l2_format *f); - int (*vidioc_g_fmt_vbi_cap)(struct file *file, void *priv, + int (*vidioc_g_fmt_vbi_cap)(struct file *file, struct video_device_state = *state, struct v4l2_format *f); - int (*vidioc_g_fmt_vbi_out)(struct file *file, void *priv, + int (*vidioc_g_fmt_vbi_out)(struct file *file, struct video_device_state = *state, struct v4l2_format *f); - int (*vidioc_g_fmt_sliced_vbi_cap)(struct file *file, void *priv, + int (*vidioc_g_fmt_sliced_vbi_cap)(struct file *file, struct video_device= _state *state, struct v4l2_format *f); - int (*vidioc_g_fmt_sliced_vbi_out)(struct file *file, void *priv, + int (*vidioc_g_fmt_sliced_vbi_out)(struct file *file, struct video_device= _state *state, struct v4l2_format *f); - int (*vidioc_g_fmt_vid_cap_mplane)(struct file *file, void *priv, + int (*vidioc_g_fmt_vid_cap_mplane)(struct file *file, struct video_device= _state *state, struct v4l2_format *f); - int (*vidioc_g_fmt_vid_out_mplane)(struct file *file, void *priv, + int (*vidioc_g_fmt_vid_out_mplane)(struct file *file, struct video_device= _state *state, struct v4l2_format *f); - int (*vidioc_g_fmt_sdr_cap)(struct file *file, void *priv, + int (*vidioc_g_fmt_sdr_cap)(struct file *file, struct video_device_state = *state, struct v4l2_format *f); - int (*vidioc_g_fmt_sdr_out)(struct file *file, void *priv, + int (*vidioc_g_fmt_sdr_out)(struct file *file, struct video_device_state = *state, struct v4l2_format *f); - int (*vidioc_g_fmt_meta_cap)(struct file *file, void *priv, + int (*vidioc_g_fmt_meta_cap)(struct file *file, struct video_device_state= *state, struct v4l2_format *f); - int (*vidioc_g_fmt_meta_out)(struct file *file, void *priv, + int (*vidioc_g_fmt_meta_out)(struct file *file, struct video_device_state= *state, struct v4l2_format *f); =20 /* VIDIOC_S_FMT handlers */ - int (*vidioc_s_fmt_vid_cap)(struct file *file, void *priv, + int (*vidioc_s_fmt_vid_cap)(struct file *file, struct video_device_state = *state, struct v4l2_format *f); - int (*vidioc_s_fmt_vid_overlay)(struct file *file, void *priv, + int (*vidioc_s_fmt_vid_overlay)(struct file *file, struct video_device_st= ate *state, struct v4l2_format *f); - int (*vidioc_s_fmt_vid_out)(struct file *file, void *priv, + int (*vidioc_s_fmt_vid_out)(struct file *file, struct video_device_state = *state, struct v4l2_format *f); - int (*vidioc_s_fmt_vid_out_overlay)(struct file *file, void *priv, + int (*vidioc_s_fmt_vid_out_overlay)(struct file *file, struct video_devic= e_state *state, struct v4l2_format *f); - int (*vidioc_s_fmt_vbi_cap)(struct file *file, void *priv, + int (*vidioc_s_fmt_vbi_cap)(struct file *file, struct video_device_state = *state, struct v4l2_format *f); - int (*vidioc_s_fmt_vbi_out)(struct file *file, void *priv, + int (*vidioc_s_fmt_vbi_out)(struct file *file, struct video_device_state = *state, struct v4l2_format *f); - int (*vidioc_s_fmt_sliced_vbi_cap)(struct file *file, void *priv, + int (*vidioc_s_fmt_sliced_vbi_cap)(struct file *file, struct video_device= _state *state, struct v4l2_format *f); - int (*vidioc_s_fmt_sliced_vbi_out)(struct file *file, void *priv, + int (*vidioc_s_fmt_sliced_vbi_out)(struct file *file, struct video_device= _state *state, struct v4l2_format *f); - int (*vidioc_s_fmt_vid_cap_mplane)(struct file *file, void *priv, + int (*vidioc_s_fmt_vid_cap_mplane)(struct file *file, struct video_device= _state *state, struct v4l2_format *f); - int (*vidioc_s_fmt_vid_out_mplane)(struct file *file, void *priv, + int (*vidioc_s_fmt_vid_out_mplane)(struct file *file, struct video_device= _state *state, struct v4l2_format *f); - int (*vidioc_s_fmt_sdr_cap)(struct file *file, void *priv, + int (*vidioc_s_fmt_sdr_cap)(struct file *file, struct video_device_state = *state, struct v4l2_format *f); - int (*vidioc_s_fmt_sdr_out)(struct file *file, void *priv, + int (*vidioc_s_fmt_sdr_out)(struct file *file, struct video_device_state = *state, struct v4l2_format *f); - int (*vidioc_s_fmt_meta_cap)(struct file *file, void *priv, + int (*vidioc_s_fmt_meta_cap)(struct file *file, struct video_device_state= *state, struct v4l2_format *f); - int (*vidioc_s_fmt_meta_out)(struct file *file, void *priv, + int (*vidioc_s_fmt_meta_out)(struct file *file, struct video_device_state= *state, struct v4l2_format *f); =20 /* VIDIOC_TRY_FMT handlers */ - int (*vidioc_try_fmt_vid_cap)(struct file *file, void *priv, + int (*vidioc_try_fmt_vid_cap)(struct file *file, struct video_device_stat= e *state, struct v4l2_format *f); - int (*vidioc_try_fmt_vid_overlay)(struct file *file, void *priv, + int (*vidioc_try_fmt_vid_overlay)(struct file *file, struct video_device_= state *state, struct v4l2_format *f); - int (*vidioc_try_fmt_vid_out)(struct file *file, void *priv, + int (*vidioc_try_fmt_vid_out)(struct file *file, struct video_device_stat= e *state, struct v4l2_format *f); - int (*vidioc_try_fmt_vid_out_overlay)(struct file *file, void *priv, + int (*vidioc_try_fmt_vid_out_overlay)(struct file *file, struct video_dev= ice_state *state, struct v4l2_format *f); - int (*vidioc_try_fmt_vbi_cap)(struct file *file, void *priv, + int (*vidioc_try_fmt_vbi_cap)(struct file *file, struct video_device_stat= e *state, struct v4l2_format *f); - int (*vidioc_try_fmt_vbi_out)(struct file *file, void *priv, + int (*vidioc_try_fmt_vbi_out)(struct file *file, struct video_device_stat= e *state, struct v4l2_format *f); - int (*vidioc_try_fmt_sliced_vbi_cap)(struct file *file, void *priv, + int (*vidioc_try_fmt_sliced_vbi_cap)(struct file *file, struct video_devi= ce_state *state, struct v4l2_format *f); - int (*vidioc_try_fmt_sliced_vbi_out)(struct file *file, void *priv, + int (*vidioc_try_fmt_sliced_vbi_out)(struct file *file, struct video_devi= ce_state *state, struct v4l2_format *f); - int (*vidioc_try_fmt_vid_cap_mplane)(struct file *file, void *priv, + int (*vidioc_try_fmt_vid_cap_mplane)(struct file *file, struct video_devi= ce_state *state, struct v4l2_format *f); - int (*vidioc_try_fmt_vid_out_mplane)(struct file *file, void *priv, + int (*vidioc_try_fmt_vid_out_mplane)(struct file *file, struct video_devi= ce_state *state, struct v4l2_format *f); - int (*vidioc_try_fmt_sdr_cap)(struct file *file, void *priv, + int (*vidioc_try_fmt_sdr_cap)(struct file *file, struct video_device_stat= e *state, struct v4l2_format *f); - int (*vidioc_try_fmt_sdr_out)(struct file *file, void *priv, + int (*vidioc_try_fmt_sdr_out)(struct file *file, struct video_device_stat= e *state, struct v4l2_format *f); - int (*vidioc_try_fmt_meta_cap)(struct file *file, void *priv, + int (*vidioc_try_fmt_meta_cap)(struct file *file, struct video_device_sta= te *state, struct v4l2_format *f); - int (*vidioc_try_fmt_meta_out)(struct file *file, void *priv, + int (*vidioc_try_fmt_meta_out)(struct file *file, struct video_device_sta= te *state, struct v4l2_format *f); =20 /* Buffer handlers */ - int (*vidioc_reqbufs)(struct file *file, void *priv, + int (*vidioc_reqbufs)(struct file *file, struct video_device_state *state, struct v4l2_requestbuffers *b); - int (*vidioc_querybuf)(struct file *file, void *priv, + int (*vidioc_querybuf)(struct file *file, struct video_device_state *stat= e, struct v4l2_buffer *b); - int (*vidioc_qbuf)(struct file *file, void *priv, + int (*vidioc_qbuf)(struct file *file, struct video_device_state *state, struct v4l2_buffer *b); - int (*vidioc_expbuf)(struct file *file, void *priv, + int (*vidioc_expbuf)(struct file *file, struct video_device_state *state, struct v4l2_exportbuffer *e); - int (*vidioc_dqbuf)(struct file *file, void *priv, + int (*vidioc_dqbuf)(struct file *file, struct video_device_state *state, struct v4l2_buffer *b); =20 - int (*vidioc_create_bufs)(struct file *file, void *priv, + int (*vidioc_create_bufs)(struct file *file, struct video_device_state *s= tate, struct v4l2_create_buffers *b); - int (*vidioc_prepare_buf)(struct file *file, void *priv, + int (*vidioc_prepare_buf)(struct file *file, struct video_device_state *s= tate, struct v4l2_buffer *b); - int (*vidioc_remove_bufs)(struct file *file, void *priv, + int (*vidioc_remove_bufs)(struct file *file, struct video_device_state *s= tate, struct v4l2_remove_buffers *d); =20 - int (*vidioc_overlay)(struct file *file, void *priv, unsigned int i); - int (*vidioc_g_fbuf)(struct file *file, void *priv, + int (*vidioc_overlay)(struct file *file, struct video_device_state *state= , unsigned int i); + int (*vidioc_g_fbuf)(struct file *file, struct video_device_state *state, struct v4l2_framebuffer *a); - int (*vidioc_s_fbuf)(struct file *file, void *priv, + int (*vidioc_s_fbuf)(struct file *file, struct video_device_state *state, const struct v4l2_framebuffer *a); =20 /* Stream on/off */ - int (*vidioc_streamon)(struct file *file, void *priv, + int (*vidioc_streamon)(struct file *file, struct video_device_state *stat= e, enum v4l2_buf_type i); - int (*vidioc_streamoff)(struct file *file, void *priv, + int (*vidioc_streamoff)(struct file *file, struct video_device_state *sta= te, enum v4l2_buf_type i); =20 /* @@ -438,135 +439,136 @@ struct v4l2_ioctl_ops { * * Note: ENUMSTD is handled by videodev.c */ - int (*vidioc_g_std)(struct file *file, void *priv, v4l2_std_id *norm); - int (*vidioc_s_std)(struct file *file, void *priv, v4l2_std_id norm); - int (*vidioc_querystd)(struct file *file, void *priv, v4l2_std_id *a); + int (*vidioc_g_std)(struct file *file, struct video_device_state *state, = v4l2_std_id *norm); + int (*vidioc_s_std)(struct file *file, struct video_device_state *state, = v4l2_std_id norm); + int (*vidioc_querystd)(struct file *file, struct video_device_state *stat= e, v4l2_std_id *a); =20 /* Input handling */ - int (*vidioc_enum_input)(struct file *file, void *priv, + int (*vidioc_enum_input)(struct file *file, struct video_device_state *st= ate, struct v4l2_input *inp); - int (*vidioc_g_input)(struct file *file, void *priv, unsigned int *i); - int (*vidioc_s_input)(struct file *file, void *priv, unsigned int i); + int (*vidioc_g_input)(struct file *file, struct video_device_state *state= , unsigned int *i); + int (*vidioc_s_input)(struct file *file, struct video_device_state *state= , unsigned int i); =20 /* Output handling */ - int (*vidioc_enum_output)(struct file *file, void *priv, + int (*vidioc_enum_output)(struct file *file, struct video_device_state *s= tate, struct v4l2_output *a); - int (*vidioc_g_output)(struct file *file, void *priv, unsigned int *i); - int (*vidioc_s_output)(struct file *file, void *priv, unsigned int i); + int (*vidioc_g_output)(struct file *file, struct video_device_state *stat= e, + unsigned int *i); + int (*vidioc_s_output)(struct file *file, struct video_device_state *stat= e, unsigned int i); =20 /* Control handling */ - int (*vidioc_query_ext_ctrl)(struct file *file, void *priv, + int (*vidioc_query_ext_ctrl)(struct file *file, struct video_device_state= *state, struct v4l2_query_ext_ctrl *a); - int (*vidioc_g_ext_ctrls)(struct file *file, void *priv, + int (*vidioc_g_ext_ctrls)(struct file *file, struct video_device_state *s= tate, struct v4l2_ext_controls *a); - int (*vidioc_s_ext_ctrls)(struct file *file, void *priv, + int (*vidioc_s_ext_ctrls)(struct file *file, struct video_device_state *s= tate, struct v4l2_ext_controls *a); - int (*vidioc_try_ext_ctrls)(struct file *file, void *priv, + int (*vidioc_try_ext_ctrls)(struct file *file, struct video_device_state = *state, struct v4l2_ext_controls *a); - int (*vidioc_querymenu)(struct file *file, void *priv, + int (*vidioc_querymenu)(struct file *file, struct video_device_state *sta= te, struct v4l2_querymenu *a); =20 /* Audio ioctls */ - int (*vidioc_enumaudio)(struct file *file, void *priv, + int (*vidioc_enumaudio)(struct file *file, struct video_device_state *sta= te, struct v4l2_audio *a); - int (*vidioc_g_audio)(struct file *file, void *priv, + int (*vidioc_g_audio)(struct file *file, struct video_device_state *state, struct v4l2_audio *a); - int (*vidioc_s_audio)(struct file *file, void *priv, + int (*vidioc_s_audio)(struct file *file, struct video_device_state *state, const struct v4l2_audio *a); =20 /* Audio out ioctls */ - int (*vidioc_enumaudout)(struct file *file, void *priv, + int (*vidioc_enumaudout)(struct file *file, struct video_device_state *st= ate, struct v4l2_audioout *a); - int (*vidioc_g_audout)(struct file *file, void *priv, + int (*vidioc_g_audout)(struct file *file, struct video_device_state *stat= e, struct v4l2_audioout *a); - int (*vidioc_s_audout)(struct file *file, void *priv, + int (*vidioc_s_audout)(struct file *file, struct video_device_state *stat= e, const struct v4l2_audioout *a); - int (*vidioc_g_modulator)(struct file *file, void *priv, + int (*vidioc_g_modulator)(struct file *file, struct video_device_state *s= tate, struct v4l2_modulator *a); - int (*vidioc_s_modulator)(struct file *file, void *priv, + int (*vidioc_s_modulator)(struct file *file, struct video_device_state *s= tate, const struct v4l2_modulator *a); /* Crop ioctls */ - int (*vidioc_g_pixelaspect)(struct file *file, void *priv, + int (*vidioc_g_pixelaspect)(struct file *file, struct video_device_state = *state, int buf_type, struct v4l2_fract *aspect); - int (*vidioc_g_selection)(struct file *file, void *priv, + int (*vidioc_g_selection)(struct file *file, struct video_device_state *s= tate, struct v4l2_selection *s); - int (*vidioc_s_selection)(struct file *file, void *priv, + int (*vidioc_s_selection)(struct file *file, struct video_device_state *s= tate, struct v4l2_selection *s); /* Compression ioctls */ - int (*vidioc_g_jpegcomp)(struct file *file, void *priv, + int (*vidioc_g_jpegcomp)(struct file *file, struct video_device_state *st= ate, struct v4l2_jpegcompression *a); - int (*vidioc_s_jpegcomp)(struct file *file, void *priv, + int (*vidioc_s_jpegcomp)(struct file *file, struct video_device_state *st= ate, const struct v4l2_jpegcompression *a); - int (*vidioc_g_enc_index)(struct file *file, void *priv, + int (*vidioc_g_enc_index)(struct file *file, struct video_device_state *s= tate, struct v4l2_enc_idx *a); - int (*vidioc_encoder_cmd)(struct file *file, void *priv, + int (*vidioc_encoder_cmd)(struct file *file, struct video_device_state *s= tate, struct v4l2_encoder_cmd *a); - int (*vidioc_try_encoder_cmd)(struct file *file, void *priv, + int (*vidioc_try_encoder_cmd)(struct file *file, struct video_device_stat= e *state, struct v4l2_encoder_cmd *a); - int (*vidioc_decoder_cmd)(struct file *file, void *priv, + int (*vidioc_decoder_cmd)(struct file *file, struct video_device_state *s= tate, struct v4l2_decoder_cmd *a); - int (*vidioc_try_decoder_cmd)(struct file *file, void *priv, + int (*vidioc_try_decoder_cmd)(struct file *file, struct video_device_stat= e *state, struct v4l2_decoder_cmd *a); =20 /* Stream type-dependent parameter ioctls */ - int (*vidioc_g_parm)(struct file *file, void *priv, + int (*vidioc_g_parm)(struct file *file, struct video_device_state *state, struct v4l2_streamparm *a); - int (*vidioc_s_parm)(struct file *file, void *priv, + int (*vidioc_s_parm)(struct file *file, struct video_device_state *state, struct v4l2_streamparm *a); =20 /* Tuner ioctls */ - int (*vidioc_g_tuner)(struct file *file, void *priv, + int (*vidioc_g_tuner)(struct file *file, struct video_device_state *state, struct v4l2_tuner *a); - int (*vidioc_s_tuner)(struct file *file, void *priv, + int (*vidioc_s_tuner)(struct file *file, struct video_device_state *state, const struct v4l2_tuner *a); - int (*vidioc_g_frequency)(struct file *file, void *priv, + int (*vidioc_g_frequency)(struct file *file, struct video_device_state *s= tate, struct v4l2_frequency *a); - int (*vidioc_s_frequency)(struct file *file, void *priv, + int (*vidioc_s_frequency)(struct file *file, struct video_device_state *s= tate, const struct v4l2_frequency *a); - int (*vidioc_enum_freq_bands)(struct file *file, void *priv, + int (*vidioc_enum_freq_bands)(struct file *file, struct video_device_stat= e *state, struct v4l2_frequency_band *band); =20 /* Sliced VBI cap */ - int (*vidioc_g_sliced_vbi_cap)(struct file *file, void *priv, + int (*vidioc_g_sliced_vbi_cap)(struct file *file, struct video_device_sta= te *state, struct v4l2_sliced_vbi_cap *a); =20 /* Log status ioctl */ - int (*vidioc_log_status)(struct file *file, void *priv); + int (*vidioc_log_status)(struct file *file, struct video_device_state *st= ate); =20 - int (*vidioc_s_hw_freq_seek)(struct file *file, void *priv, + int (*vidioc_s_hw_freq_seek)(struct file *file, struct video_device_state= *state, const struct v4l2_hw_freq_seek *a); =20 /* Debugging ioctls */ #ifdef CONFIG_VIDEO_ADV_DEBUG - int (*vidioc_g_register)(struct file *file, void *priv, + int (*vidioc_g_register)(struct file *file, struct video_device_state *st= ate, struct v4l2_dbg_register *reg); - int (*vidioc_s_register)(struct file *file, void *priv, + int (*vidioc_s_register)(struct file *file, struct video_device_state *st= ate, const struct v4l2_dbg_register *reg); =20 - int (*vidioc_g_chip_info)(struct file *file, void *priv, + int (*vidioc_g_chip_info)(struct file *file, struct video_device_state *s= tate, struct v4l2_dbg_chip_info *chip); #endif =20 - int (*vidioc_enum_framesizes)(struct file *file, void *priv, + int (*vidioc_enum_framesizes)(struct file *file, struct video_device_stat= e *state, struct v4l2_frmsizeenum *fsize); =20 - int (*vidioc_enum_frameintervals)(struct file *file, void *priv, + int (*vidioc_enum_frameintervals)(struct file *file, struct video_device_= state *state, struct v4l2_frmivalenum *fival); =20 /* DV Timings IOCTLs */ - int (*vidioc_s_dv_timings)(struct file *file, void *priv, + int (*vidioc_s_dv_timings)(struct file *file, struct video_device_state *= state, struct v4l2_dv_timings *timings); - int (*vidioc_g_dv_timings)(struct file *file, void *priv, + int (*vidioc_g_dv_timings)(struct file *file, struct video_device_state *= state, struct v4l2_dv_timings *timings); - int (*vidioc_query_dv_timings)(struct file *file, void *priv, + int (*vidioc_query_dv_timings)(struct file *file, struct video_device_sta= te *state, struct v4l2_dv_timings *timings); - int (*vidioc_enum_dv_timings)(struct file *file, void *priv, + int (*vidioc_enum_dv_timings)(struct file *file, struct video_device_stat= e *state, struct v4l2_enum_dv_timings *timings); - int (*vidioc_dv_timings_cap)(struct file *file, void *priv, + int (*vidioc_dv_timings_cap)(struct file *file, struct video_device_state= *state, struct v4l2_dv_timings_cap *cap); - int (*vidioc_g_edid)(struct file *file, void *priv, + int (*vidioc_g_edid)(struct file *file, struct video_device_state *state, struct v4l2_edid *edid); - int (*vidioc_s_edid)(struct file *file, void *priv, + int (*vidioc_s_edid)(struct file *file, struct video_device_state *state, struct v4l2_edid *edid); =20 int (*vidioc_subscribe_event)(struct v4l2_fh *fh, @@ -575,7 +577,7 @@ struct v4l2_ioctl_ops { const struct v4l2_event_subscription *sub); =20 /* For other private ioctls */ - long (*vidioc_default)(struct file *file, void *priv, + long (*vidioc_default)(struct file *file, struct video_device_state *stat= e, bool valid_prio, unsigned int cmd, void *arg); }; =20 diff --git a/include/media/v4l2-mem2mem.h b/include/media/v4l2-mem2mem.h index 09c6164577ccf4ef49dee24e9ee6be38fbc521ce..accd05fba0dff3c7ebd596ae726= ba96572b90a8c 100644 --- a/include/media/v4l2-mem2mem.h +++ b/include/media/v4l2-mem2mem.h @@ -863,37 +863,53 @@ void v4l2_m2m_request_queue(struct media_request *req= ); =20 /* v4l2 ioctl helpers */ =20 -int v4l2_m2m_ioctl_reqbufs(struct file *file, void *priv, +int v4l2_m2m_ioctl_reqbufs(struct file *file, + struct video_device_state *state, struct v4l2_requestbuffers *rb); -int v4l2_m2m_ioctl_create_bufs(struct file *file, void *priv, +int v4l2_m2m_ioctl_create_bufs(struct file *file, + struct video_device_state *state, struct v4l2_create_buffers *create); -int v4l2_m2m_ioctl_remove_bufs(struct file *file, void *priv, +int v4l2_m2m_ioctl_remove_bufs(struct file *file, + struct video_device_state *state, struct v4l2_remove_buffers *d); -int v4l2_m2m_ioctl_querybuf(struct file *file, void *priv, +int v4l2_m2m_ioctl_querybuf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf); -int v4l2_m2m_ioctl_expbuf(struct file *file, void *priv, +int v4l2_m2m_ioctl_expbuf(struct file *file, + struct video_device_state *state, struct v4l2_exportbuffer *eb); -int v4l2_m2m_ioctl_qbuf(struct file *file, void *priv, +int v4l2_m2m_ioctl_qbuf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf); -int v4l2_m2m_ioctl_dqbuf(struct file *file, void *priv, +int v4l2_m2m_ioctl_dqbuf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf); -int v4l2_m2m_ioctl_prepare_buf(struct file *file, void *priv, +int v4l2_m2m_ioctl_prepare_buf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *buf); -int v4l2_m2m_ioctl_streamon(struct file *file, void *priv, +int v4l2_m2m_ioctl_streamon(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type); -int v4l2_m2m_ioctl_streamoff(struct file *file, void *priv, +int v4l2_m2m_ioctl_streamoff(struct file *file, + struct video_device_state *state, enum v4l2_buf_type type); -int v4l2_m2m_ioctl_encoder_cmd(struct file *file, void *priv, +int v4l2_m2m_ioctl_encoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_encoder_cmd *ec); -int v4l2_m2m_ioctl_decoder_cmd(struct file *file, void *priv, +int v4l2_m2m_ioctl_decoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_decoder_cmd *dc); -int v4l2_m2m_ioctl_try_encoder_cmd(struct file *file, void *priv, +int v4l2_m2m_ioctl_try_encoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_encoder_cmd *ec); -int v4l2_m2m_ioctl_try_decoder_cmd(struct file *file, void *priv, +int v4l2_m2m_ioctl_try_decoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_decoder_cmd *dc); -int v4l2_m2m_ioctl_stateless_try_decoder_cmd(struct file *file, void *priv, +int v4l2_m2m_ioctl_stateless_try_decoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_decoder_cmd *dc); -int v4l2_m2m_ioctl_stateless_decoder_cmd(struct file *file, void *priv, +int v4l2_m2m_ioctl_stateless_decoder_cmd(struct file *file, + struct video_device_state *state, struct v4l2_decoder_cmd *dc); int v4l2_m2m_fop_mmap(struct file *file, struct vm_area_struct *vma); __poll_t v4l2_m2m_fop_poll(struct file *file, poll_table *wait); diff --git a/include/media/videobuf2-v4l2.h b/include/media/videobuf2-v4l2.h index 77ce8238ab303a6f90dfb89852e7e48555f55a92..0164f0f3e404a425533d7657944= c26c2f6eae1da 100644 --- a/include/media/videobuf2-v4l2.h +++ b/include/media/videobuf2-v4l2.h @@ -14,6 +14,7 @@ =20 #include #include +#include =20 #if VB2_MAX_FRAME !=3D VIDEO_MAX_FRAME #error VB2_MAX_FRAME !=3D VIDEO_MAX_FRAME @@ -321,20 +322,28 @@ static inline bool vb2_queue_is_busy(struct vb2_queue= *q, struct file *file) =20 /* struct v4l2_ioctl_ops helpers */ =20 -int vb2_ioctl_reqbufs(struct file *file, void *priv, - struct v4l2_requestbuffers *p); -int vb2_ioctl_create_bufs(struct file *file, void *priv, +int vb2_ioctl_reqbufs(struct file *file, struct video_device_state *state, + struct v4l2_requestbuffers *p); +int vb2_ioctl_create_bufs(struct file *file, + struct video_device_state *state, struct v4l2_create_buffers *p); -int vb2_ioctl_prepare_buf(struct file *file, void *priv, +int vb2_ioctl_prepare_buf(struct file *file, + struct video_device_state *state, struct v4l2_buffer *p); -int vb2_ioctl_querybuf(struct file *file, void *priv, struct v4l2_buffer *= p); -int vb2_ioctl_qbuf(struct file *file, void *priv, struct v4l2_buffer *p); -int vb2_ioctl_dqbuf(struct file *file, void *priv, struct v4l2_buffer *p); -int vb2_ioctl_streamon(struct file *file, void *priv, enum v4l2_buf_type i= ); -int vb2_ioctl_streamoff(struct file *file, void *priv, enum v4l2_buf_type = i); -int vb2_ioctl_expbuf(struct file *file, void *priv, - struct v4l2_exportbuffer *p); -int vb2_ioctl_remove_bufs(struct file *file, void *priv, +int vb2_ioctl_querybuf(struct file *file, struct video_device_state *state, + struct v4l2_buffer *p); +int vb2_ioctl_qbuf(struct file *file, struct video_device_state *state, + struct v4l2_buffer *p); +int vb2_ioctl_dqbuf(struct file *file, struct video_device_state *state, + struct v4l2_buffer *p); +int vb2_ioctl_streamon(struct file *file, struct video_device_state *state, + enum v4l2_buf_type i); +int vb2_ioctl_streamoff(struct file *file, struct video_device_state *stat= e, + enum v4l2_buf_type i); +int vb2_ioctl_expbuf(struct file *file, + struct video_device_state *state, struct v4l2_exportbuffer *p); +int vb2_ioctl_remove_bufs(struct file *file, + struct video_device_state *state, struct v4l2_remove_buffers *p); =20 /* struct v4l2_file_operations helpers */ --=20 2.51.0 From nobody Thu Oct 2 07:45:16 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 933902F83BA; Fri, 19 Sep 2025 09:57:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275866; cv=none; b=mZ2ZKLwXpW27ZmuR4dU3fZy7bQwToCxSAUhdVtZANBaBfJ2+1oJtfpuZ7Ol1t8Scgi7jsw2W2HqFWKrI2e+dbMzYfpdLRm66LhcQ+bUfH6UOt8Y3Fo5B0pZO1t+Duj3skdn2rqSJRKZefWbZQUddK35zVrVNLO4IlUzURjQXE/M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275866; c=relaxed/simple; bh=XNnJ6n8emPTeuOsinNTjhgf/eEcs0/njtyMq0631uec=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GhmEdT9SPcCtzTIALWCf4kF5b/CGcFrr2C0Qzz9qCIskmvIGDISdqC/MqjUFtVLjKQTj6BmE92JHcBnU5pPuJgMrHKYrY8II1/kDbBHPFjQCT3h3uOnLAoJN5QgzicSKBpYQnfNOaKLTuzs1NHS6f/cHjv8Kq3+Z5WLXLOGxbNo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=fCn2SfwH; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="fCn2SfwH" Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c30:4816:952:3054:81b6:1a3a]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id CB4C6D3E; Fri, 19 Sep 2025 11:56:21 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1758275782; bh=XNnJ6n8emPTeuOsinNTjhgf/eEcs0/njtyMq0631uec=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=fCn2SfwH3pbehC5d6BM5q6QCWLF+LLW5iGQGSe+Lqyrsg75wVZUexcsTukx7BZPr+ WAaKU9z8DRFW6VKaCOwjum4Nnszb1mfYYA4SKlh474OaAYizRlPKzI3uQrL00y8txT WcFbM8Pn/vZmn1pSKImztVpi3H/W0m3ZdeqZdu+4= From: Jai Luthra Date: Fri, 19 Sep 2025 15:25:59 +0530 Subject: [PATCH v2 07/10] media: v4l2-ioctl: Pass device state for G/S/TRY_FMT ioctls Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250919-vdev-state-v2-7-b2c42426965c@ideasonboard.com> References: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> In-Reply-To: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> To: Hans Verkuil , Mauro Carvalho Chehab , Sakari Ailus , Laurent Pinchart , Tomi Valkeinen , Jacopo Mondi , linux-media@vger.kernel.org Cc: Jai Luthra , Laurent Pinchart , Ricardo Ribalda , Hans de Goede , linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 Now that video device state is accepted as an argument in ioctl implementations across all video device drivers, populate that argument with the actual state data. Pass the active state for G_FMT and S_FMT ioctls, and the try state for TRY_FMT ioctl to drivers that have opted to use device state for format storage. Signed-off-by: Jai Luthra -- Cc: Mauro Carvalho Chehab Cc: Hans Verkuil Cc: Laurent Pinchart Cc: Ricardo Ribalda Cc: Hans de Goede Cc: Jai Luthra Cc: linux-media@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/media/v4l2-core/v4l2-ioctl.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core= /v4l2-ioctl.c index 644f06521673ff7ce5b194335d50f0e375ca7f51..500fc20627c97ce70016f452430= 1835142b7bebd 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -3070,6 +3070,21 @@ void v4l_printk_ioctl(const char *prefix, unsigned i= nt cmd) } EXPORT_SYMBOL(v4l_printk_ioctl); =20 +static struct video_device_state * +video_device_get_state(struct video_device *vfd, struct v4l2_fh *vfh, + unsigned int cmd) +{ + switch (cmd) { + default: + return NULL; + case VIDIOC_G_FMT: + case VIDIOC_S_FMT: + return vfd->state; + case VIDIOC_TRY_FMT: + return vfh->state; + } +} + static long __video_do_ioctl(struct file *file, unsigned int cmd, void *arg) { @@ -3078,6 +3093,7 @@ static long __video_do_ioctl(struct file *file, struct mutex *lock; /* ioctl serialization mutex */ const struct v4l2_ioctl_ops *ops =3D vfd->ioctl_ops; bool write_only =3D false; + struct video_device_state *state =3D NULL; struct v4l2_ioctl_info default_info; const struct v4l2_ioctl_info *info; struct v4l2_fh *vfh =3D file_to_v4l2_fh(file); @@ -3090,6 +3106,9 @@ static long __video_do_ioctl(struct file *file, return ret; } =20 + if (test_bit(V4L2_FL_USES_STATE, &vfd->flags)) + state =3D video_device_get_state(vfd, vfh, cmd); + /* * We need to serialize streamon/off with queueing new requests. * These ioctls may trigger the cancellation of a streaming @@ -3138,11 +3157,11 @@ static long __video_do_ioctl(struct file *file, =20 write_only =3D _IOC_DIR(cmd) =3D=3D _IOC_WRITE; if (info !=3D &default_info) { - ret =3D info->func(ops, file, NULL, arg); + ret =3D info->func(ops, file, state, arg); } else if (!ops->vidioc_default) { ret =3D -ENOTTY; } else { - ret =3D ops->vidioc_default(file, NULL, + ret =3D ops->vidioc_default(file, state, v4l2_prio_check(vfd->prio, vfh->prio) >=3D 0, cmd, arg); } --=20 2.51.0 From nobody Thu Oct 2 07:45:16 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA5832F83BA; Fri, 19 Sep 2025 09:57:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275871; cv=none; b=FmhcPGEqO06pRzQlnbfobBgjrrYtFZu/pMbwcaTZ3co/Nzfcf4ZgxA+iNINp+SGrtentOcoMY/IeBfoqs91rMRAcGZC5hhRmmIyb3qzRx62FT/h4IJWXFko8CBCKdytZK7+FsIxHdF60Bxj1a36Wukm808QuTI3yyrB/V1cqq2A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275871; c=relaxed/simple; bh=7RThQq6enDN5qtXPKbmoCSTktTegcP0V9iKtvTOatxI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SiQfXZLZ3zYsuVKsqqxQkELaTttPUeNsbASkD26MJ4Sx8P7PsfkZxQJweJ9WprBMrw6hoBYsMJKDVMpCy1fgttGeL+Ms+UmWXZmqE5Uhu/sGlOCYzoGIrG/HvCQovKw4uvs572U/hPLZdO2bb3m3w7Vwh7FxmRE3feiDH+I2CwY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=RTNIp4cw; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="RTNIp4cw" Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c30:4816:952:3054:81b6:1a3a]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id D07BD99F; Fri, 19 Sep 2025 11:56:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1758275788; bh=7RThQq6enDN5qtXPKbmoCSTktTegcP0V9iKtvTOatxI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=RTNIp4cwO7rObTEHofXw4Xz5C4Ir6lo+9fKw7pBOmTF/gY2gkCwZsGnS4OrKpz/ZE o58t89zvpogBte6dzF4IY5Tpl2xlhpPq0NzCE+XDZE46JgrLwTpz2D0Rf+pLArsgER rzb7fZ6T+Opif20w+7PMPdPDJNN4XqGX93nyS3OE= From: Jai Luthra Date: Fri, 19 Sep 2025 15:26:00 +0530 Subject: [PATCH v2 08/10] media: ti: j721e-csi2rx: Use video_device_state Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250919-vdev-state-v2-8-b2c42426965c@ideasonboard.com> References: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> In-Reply-To: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> To: Hans Verkuil , Mauro Carvalho Chehab , Sakari Ailus , Laurent Pinchart , Tomi Valkeinen , Jacopo Mondi , linux-media@vger.kernel.org Cc: Jai Luthra , Jai Luthra , linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 Use the newly introduced video_device_state to store the active V4L2 format for the video device. This change allows using a single function for both .s_fmt and .try_fmt hooks, while leveraging the framework helper for the .g_fmt hook. Signed-off-by: Jai Luthra -- Cc: Jai Luthra Cc: Mauro Carvalho Chehab Cc: linux-media@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- .../media/platform/ti/j721e-csi2rx/j721e-csi2rx.c | 119 +++++++++++------= ---- 1 file changed, 62 insertions(+), 57 deletions(-) diff --git a/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c b/driver= s/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c index ac9a87ee06b1090456508c87893ac0a265c93ae9..08557fc77851ec5897d5adc8011= e2cd031267cf5 100644 --- a/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c +++ b/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c @@ -17,6 +17,7 @@ =20 #include #include +#include #include #include #include @@ -110,7 +111,6 @@ struct ti_csi2rx_dev { struct v4l2_subdev *source; struct vb2_queue vidq; struct mutex mutex; /* To serialize ioctls. */ - struct v4l2_format v_fmt; struct ti_csi2rx_dma dma; u32 sequence; u8 pix_per_clk; @@ -308,22 +308,19 @@ static int ti_csi2rx_enum_fmt_vid_cap(struct file *fi= le, return 0; } =20 -static int ti_csi2rx_g_fmt_vid_cap(struct file *file, - struct video_device_state *state, - struct v4l2_format *f) -{ - struct ti_csi2rx_dev *csi =3D video_drvdata(file); - - *f =3D csi->v_fmt; - - return 0; -} - -static int ti_csi2rx_try_fmt_vid_cap(struct file *file, +static int ti_csi2rx_adj_fmt_vid_cap(struct file *file, struct video_device_state *state, struct v4l2_format *f) { const struct ti_csi2rx_fmt *fmt; + struct v4l2_format *format; + + if (state->which =3D=3D VIDEO_DEVICE_STATE_ACTIVE) { + struct ti_csi2rx_dev *csi =3D video_drvdata(file); + + if (vb2_is_busy(csi->vdev.queue)) + return -EBUSY; + } =20 /* * Default to the first format if the requested pixel format code isn't @@ -338,25 +335,8 @@ static int ti_csi2rx_try_fmt_vid_cap(struct file *file, =20 ti_csi2rx_fill_fmt(fmt, f); =20 - return 0; -} - -static int ti_csi2rx_s_fmt_vid_cap(struct file *file, - struct video_device_state *state, - struct v4l2_format *f) -{ - struct ti_csi2rx_dev *csi =3D video_drvdata(file); - struct vb2_queue *q =3D &csi->vidq; - int ret; - - if (vb2_is_busy(q)) - return -EBUSY; - - ret =3D ti_csi2rx_try_fmt_vid_cap(file, state, f); - if (ret < 0) - return ret; - - csi->v_fmt =3D *f; + format =3D video_device_state_get_fmt(state); + *format =3D *f; =20 return 0; } @@ -390,12 +370,36 @@ static int ti_csi2rx_enum_framesizes(struct file *fil= e, return 0; } =20 +static int ti_csi2rx_vdev_init_state(struct video_device_state *state) +{ + const struct ti_csi2rx_fmt *fmt; + struct v4l2_pix_format *pix_fmt; + + fmt =3D find_format_by_fourcc(V4L2_PIX_FMT_UYVY); + if (!fmt) + return -EINVAL; + + state->fmt.type =3D V4L2_BUF_TYPE_VIDEO_CAPTURE; + pix_fmt =3D &state->fmt.fmt.pix; + pix_fmt->width =3D 640; + pix_fmt->height =3D 480; + pix_fmt->field =3D V4L2_FIELD_NONE; + pix_fmt->colorspace =3D V4L2_COLORSPACE_SRGB; + pix_fmt->ycbcr_enc =3D V4L2_YCBCR_ENC_601; + pix_fmt->quantization =3D V4L2_QUANTIZATION_LIM_RANGE; + pix_fmt->xfer_func =3D V4L2_XFER_FUNC_SRGB; + + ti_csi2rx_fill_fmt(fmt, &state->fmt); + + return 0; +} + static const struct v4l2_ioctl_ops csi_ioctl_ops =3D { .vidioc_querycap =3D ti_csi2rx_querycap, .vidioc_enum_fmt_vid_cap =3D ti_csi2rx_enum_fmt_vid_cap, - .vidioc_try_fmt_vid_cap =3D ti_csi2rx_try_fmt_vid_cap, - .vidioc_g_fmt_vid_cap =3D ti_csi2rx_g_fmt_vid_cap, - .vidioc_s_fmt_vid_cap =3D ti_csi2rx_s_fmt_vid_cap, + .vidioc_try_fmt_vid_cap =3D ti_csi2rx_adj_fmt_vid_cap, + .vidioc_g_fmt_vid_cap =3D video_device_g_fmt, + .vidioc_s_fmt_vid_cap =3D ti_csi2rx_adj_fmt_vid_cap, .vidioc_enum_framesizes =3D ti_csi2rx_enum_framesizes, .vidioc_reqbufs =3D vb2_ioctl_reqbufs, .vidioc_create_bufs =3D vb2_ioctl_create_bufs, @@ -418,6 +422,10 @@ static const struct v4l2_file_operations csi_fops =3D { .mmap =3D vb2_fop_mmap, }; =20 +static const struct video_device_internal_ops csi_vdev_ops =3D { + .init_state =3D ti_csi2rx_vdev_init_state, +}; + static int csi_async_notifier_bound(struct v4l2_async_notifier *notifier, struct v4l2_subdev *subdev, struct v4l2_async_connection *asc) @@ -518,9 +526,11 @@ static void ti_csi2rx_request_max_ppc(struct ti_csi2rx= _dev *csi) static void ti_csi2rx_setup_shim(struct ti_csi2rx_dev *csi) { const struct ti_csi2rx_fmt *fmt; + struct v4l2_format *format; unsigned int reg; =20 - fmt =3D find_format_by_fourcc(csi->v_fmt.fmt.pix.pixelformat); + format =3D video_device_state_get_fmt(csi->vdev.state); + fmt =3D find_format_by_fourcc(format->fmt.pix.pixelformat); =20 /* De-assert the pixel interface reset. */ reg =3D SHIM_CNTL_PIX_RST; @@ -671,13 +681,21 @@ static void ti_csi2rx_dma_callback(void *param) spin_unlock_irqrestore(&dma->lock, flags); } =20 +static u32 ti_csi2rx_sizeimage(struct ti_csi2rx_dev *csi) +{ + struct v4l2_format *format =3D + video_device_state_get_fmt(csi->vdev.state); + + return format->fmt.pix.sizeimage; +} + static int ti_csi2rx_start_dma(struct ti_csi2rx_dev *csi, struct ti_csi2rx_buffer *buf) { - unsigned long addr; struct dma_async_tx_descriptor *desc; - size_t len =3D csi->v_fmt.fmt.pix.sizeimage; + unsigned long addr; dma_cookie_t cookie; + size_t len =3D ti_csi2rx_sizeimage(csi); int ret =3D 0; =20 addr =3D vb2_dma_contig_plane_dma_addr(&buf->vb.vb2_buf, 0); @@ -754,7 +772,7 @@ static int ti_csi2rx_queue_setup(struct vb2_queue *q, u= nsigned int *nbuffers, struct device *alloc_devs[]) { struct ti_csi2rx_dev *csi =3D vb2_get_drv_priv(q); - unsigned int size =3D csi->v_fmt.fmt.pix.sizeimage; + unsigned int size =3D ti_csi2rx_sizeimage(csi); =20 if (*nplanes) { if (sizes[0] < size) @@ -771,7 +789,7 @@ static int ti_csi2rx_queue_setup(struct vb2_queue *q, u= nsigned int *nbuffers, static int ti_csi2rx_buffer_prepare(struct vb2_buffer *vb) { struct ti_csi2rx_dev *csi =3D vb2_get_drv_priv(vb->vb2_queue); - unsigned long size =3D csi->v_fmt.fmt.pix.sizeimage; + unsigned long size =3D ti_csi2rx_sizeimage(csi); =20 if (vb2_plane_size(vb, 0) < size) { dev_err(csi->dev, "Data will not fit into plane\n"); @@ -951,7 +969,8 @@ static int ti_csi2rx_link_validate(struct media_link *l= ink) struct media_entity *entity =3D link->sink->entity; struct video_device *vdev =3D media_entity_to_video_device(entity); struct ti_csi2rx_dev *csi =3D container_of(vdev, struct ti_csi2rx_dev, vd= ev); - struct v4l2_pix_format *csi_fmt =3D &csi->v_fmt.fmt.pix; + struct v4l2_format *format =3D video_device_state_get_fmt(vdev->state); + struct v4l2_pix_format *csi_fmt =3D &format->fmt.pix; struct v4l2_subdev_format source_fmt =3D { .which =3D V4L2_SUBDEV_FORMAT_ACTIVE, .pad =3D link->source->index, @@ -1041,24 +1060,8 @@ static int ti_csi2rx_v4l2_init(struct ti_csi2rx_dev = *csi) { struct media_device *mdev =3D &csi->mdev; struct video_device *vdev =3D &csi->vdev; - const struct ti_csi2rx_fmt *fmt; - struct v4l2_pix_format *pix_fmt =3D &csi->v_fmt.fmt.pix; int ret; =20 - fmt =3D find_format_by_fourcc(V4L2_PIX_FMT_UYVY); - if (!fmt) - return -EINVAL; - - pix_fmt->width =3D 640; - pix_fmt->height =3D 480; - pix_fmt->field =3D V4L2_FIELD_NONE; - pix_fmt->colorspace =3D V4L2_COLORSPACE_SRGB; - pix_fmt->ycbcr_enc =3D V4L2_YCBCR_ENC_601; - pix_fmt->quantization =3D V4L2_QUANTIZATION_LIM_RANGE; - pix_fmt->xfer_func =3D V4L2_XFER_FUNC_SRGB; - - ti_csi2rx_fill_fmt(fmt, &csi->v_fmt); - mdev->dev =3D csi->dev; mdev->hw_revision =3D 1; strscpy(mdev->model, "TI-CSI2RX", sizeof(mdev->model)); @@ -1070,10 +1073,12 @@ static int ti_csi2rx_v4l2_init(struct ti_csi2rx_dev= *csi) vdev->vfl_dir =3D VFL_DIR_RX; vdev->fops =3D &csi_fops; vdev->ioctl_ops =3D &csi_ioctl_ops; + vdev->vdev_ops =3D &csi_vdev_ops; vdev->release =3D video_device_release_empty; vdev->device_caps =3D V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING | V4L2_CAP_IO_MC; vdev->lock =3D &csi->mutex; + set_bit(V4L2_FL_USES_STATE, &vdev->flags); video_set_drvdata(vdev, csi); =20 csi->pad.flags =3D MEDIA_PAD_FL_SINK; --=20 2.51.0 From nobody Thu Oct 2 07:45:16 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 02D1C306D4B; Fri, 19 Sep 2025 09:57:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275877; cv=none; b=lH3Eg7BjSqqgs5qvYZKSCHA3dpSZBUTXJLecnhon+Ude2LJ9cpwi5d8out3bErq6ZG0xESmNgRg7B3NTYxqB0J52vbnbJh8sQe8vMvC7Zr8tsWqrI80cobXAtjgpEVD0bf/6X/tk4P4WQ3Tc2napcBf6pqkE09/FMbG35d86CtQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275877; c=relaxed/simple; bh=h03H+8yiC2Kyhg05f5+XZZP4Qf6g7IoJdSXpJjGJz9k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mAl89+FoM33k0W09FLIdHB/xSH+mIll+gGabQ/WWtDVO4T0oiwmwHkKCkJ4eqaZRM+dR8ueNzeHUSXA0NPe5562XUkHyrkBzup39kpsRDmUeZ34pPp9dj5Nw1mUI5QAXxhndFHlMcYKhEsTrOjmLHiBEloFJABnF8mX83e3u5zo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=AdlKwL5J; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="AdlKwL5J" Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c30:4816:952:3054:81b6:1a3a]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 1EDAAD3E; Fri, 19 Sep 2025 11:56:32 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1758275793; bh=h03H+8yiC2Kyhg05f5+XZZP4Qf6g7IoJdSXpJjGJz9k=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=AdlKwL5J/YS60EZTBBJub18zWuZvEeYq/TYP10lyYMZRlD07R6l0ROWawEo0IpPkh BA7+D861xMKSXd9fUo7besj6CfGgL210vGhr2LWqrTJdBXmyYoLOY8PAbqndAA1+2m LkTsusoN0HOOpDJ5L3yNFBNUcW1WIWhGudp33ThE= From: Jai Luthra Date: Fri, 19 Sep 2025 15:26:01 +0530 Subject: [PATCH v2 09/10] media: rkisp1: Use video_device_state Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250919-vdev-state-v2-9-b2c42426965c@ideasonboard.com> References: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> In-Reply-To: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> To: Hans Verkuil , Mauro Carvalho Chehab , Sakari Ailus , Laurent Pinchart , Tomi Valkeinen , Jacopo Mondi , linux-media@vger.kernel.org Cc: Jai Luthra , Dafna Hirschfeld , Heiko Stuebner , linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 Use the newly introduced video_device_state to store the active V4L2 format for the video device. Additionally, calculate stride on-demand instead of storing it in the driver context structure. This change allows using a single function for both .s_fmt and .try_fmt hooks, while leveraging the framework helper for the .g_fmt hook. Signed-off-by: Jai Luthra -- Cc: Dafna Hirschfeld Cc: Laurent Pinchart Cc: Mauro Carvalho Chehab Cc: Heiko Stuebner Cc: linux-media@vger.kernel.org Cc: linux-rockchip@lists.infradead.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org --- .../platform/rockchip/rkisp1/rkisp1-capture.c | 135 +++++++++++------= ---- .../media/platform/rockchip/rkisp1/rkisp1-common.h | 4 - 2 files changed, 70 insertions(+), 69 deletions(-) diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c b/driv= ers/media/platform/rockchip/rkisp1/rkisp1-capture.c index 38541f482b2d0dcf23546a0b9f893fb8544bcc40..81bf4ed8bccdb0873c910fa49b2= 2ef72eab295eb 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c @@ -482,7 +482,10 @@ static void rkisp1_irq_frame_end_enable(struct rkisp1_= capture *cap) =20 static void rkisp1_mp_config(struct rkisp1_capture *cap) { - const struct v4l2_pix_format_mplane *pixm =3D &cap->pix.fmt; + const struct v4l2_format *format =3D + video_device_state_get_fmt(cap->vnode.vdev.state); + const struct v4l2_pix_format_mplane *pixm =3D &format->fmt.pix_mp; + u32 stride =3D pixm->plane_fmt[0].bytesperline / cap->pix.info->bpp[0]; struct rkisp1_device *rkisp1 =3D cap->rkisp1; u32 reg; =20 @@ -494,11 +497,11 @@ static void rkisp1_mp_config(struct rkisp1_capture *c= ap) rkisp1_pixfmt_comp_size(pixm, RKISP1_PLANE_CR)); =20 if (rkisp1_has_feature(rkisp1, MAIN_STRIDE)) { - rkisp1_write(rkisp1, RKISP1_CIF_MI_MP_Y_LLENGTH, cap->stride); + rkisp1_write(rkisp1, RKISP1_CIF_MI_MP_Y_LLENGTH, stride); rkisp1_write(rkisp1, RKISP1_CIF_MI_MP_Y_PIC_WIDTH, pixm->width); rkisp1_write(rkisp1, RKISP1_CIF_MI_MP_Y_PIC_HEIGHT, pixm->height); rkisp1_write(rkisp1, RKISP1_CIF_MI_MP_Y_PIC_SIZE, - cap->stride * pixm->height); + stride * pixm->height); } =20 rkisp1_irq_frame_end_enable(cap); @@ -546,7 +549,10 @@ static void rkisp1_mp_config(struct rkisp1_capture *ca= p) =20 static void rkisp1_sp_config(struct rkisp1_capture *cap) { - const struct v4l2_pix_format_mplane *pixm =3D &cap->pix.fmt; + const struct v4l2_format *format =3D + video_device_state_get_fmt(cap->vnode.vdev.state); + const struct v4l2_pix_format_mplane *pixm =3D &format->fmt.pix_mp; + u32 stride =3D pixm->plane_fmt[0].bytesperline / cap->pix.info->bpp[0]; struct rkisp1_device *rkisp1 =3D cap->rkisp1; u32 mi_ctrl, reg; =20 @@ -557,11 +563,11 @@ static void rkisp1_sp_config(struct rkisp1_capture *c= ap) rkisp1_write(rkisp1, cap->config->mi.cr_size_init, rkisp1_pixfmt_comp_size(pixm, RKISP1_PLANE_CR)); =20 - rkisp1_write(rkisp1, RKISP1_CIF_MI_SP_Y_LLENGTH, cap->stride); + rkisp1_write(rkisp1, RKISP1_CIF_MI_SP_Y_LLENGTH, stride); rkisp1_write(rkisp1, RKISP1_CIF_MI_SP_Y_PIC_WIDTH, pixm->width); rkisp1_write(rkisp1, RKISP1_CIF_MI_SP_Y_PIC_HEIGHT, pixm->height); rkisp1_write(rkisp1, RKISP1_CIF_MI_SP_Y_PIC_SIZE, - cap->stride * pixm->height); + stride * pixm->height); =20 rkisp1_irq_frame_end_enable(cap); =20 @@ -704,7 +710,9 @@ static const struct rkisp1_capture_ops rkisp1_capture_o= ps_sp =3D { =20 static int rkisp1_dummy_buf_create(struct rkisp1_capture *cap) { - const struct v4l2_pix_format_mplane *pixm =3D &cap->pix.fmt; + const struct v4l2_format *format =3D + video_device_state_get_fmt(cap->vnode.vdev.state); + const struct v4l2_pix_format_mplane *pixm =3D &format->fmt.pix_mp; struct rkisp1_dummy_buffer *dummy_buf =3D &cap->buf.dummy; =20 dummy_buf->size =3D max3(rkisp1_pixfmt_comp_size(pixm, RKISP1_PLANE_Y), @@ -869,7 +877,9 @@ static int rkisp1_vb2_queue_setup(struct vb2_queue *que= ue, struct device *alloc_devs[]) { struct rkisp1_capture *cap =3D queue->drv_priv; - const struct v4l2_pix_format_mplane *pixm =3D &cap->pix.fmt; + const struct v4l2_format *format =3D + video_device_state_get_fmt(cap->vnode.vdev.state); + const struct v4l2_pix_format_mplane *pixm =3D &format->fmt.pix_mp; unsigned int i; =20 if (*num_planes) { @@ -894,7 +904,9 @@ static int rkisp1_vb2_buf_init(struct vb2_buffer *vb) struct rkisp1_buffer *ispbuf =3D container_of(vbuf, struct rkisp1_buffer, vb); struct rkisp1_capture *cap =3D vb->vb2_queue->drv_priv; - const struct v4l2_pix_format_mplane *pixm =3D &cap->pix.fmt; + const struct v4l2_format *format =3D + video_device_state_get_fmt(cap->vnode.vdev.state); + const struct v4l2_pix_format_mplane *pixm =3D &format->fmt.pix_mp; unsigned int i; =20 memset(ispbuf->buff_addr, 0, sizeof(ispbuf->buff_addr)); @@ -936,10 +948,13 @@ static void rkisp1_vb2_buf_queue(struct vb2_buffer *v= b) static int rkisp1_vb2_buf_prepare(struct vb2_buffer *vb) { struct rkisp1_capture *cap =3D vb->vb2_queue->drv_priv; + const struct v4l2_format *format =3D + video_device_state_get_fmt(cap->vnode.vdev.state); + const struct v4l2_pix_format_mplane *pixm =3D &format->fmt.pix_mp; unsigned int i; =20 - for (i =3D 0; i < cap->pix.fmt.num_planes; i++) { - unsigned long size =3D cap->pix.fmt.plane_fmt[i].sizeimage; + for (i =3D 0; i < pixm->num_planes; i++) { + unsigned long size =3D pixm->plane_fmt[i].sizeimage; =20 if (vb2_plane_size(vb, i) < size) { dev_err(cap->rkisp1->dev, @@ -1278,7 +1293,7 @@ rkisp1_find_fmt_cfg(const struct rkisp1_capture *cap,= const u32 pixelfmt) return NULL; } =20 -static void rkisp1_try_fmt(const struct rkisp1_capture *cap, +static void rkisp1_adj_fmt(const struct rkisp1_capture *cap, struct v4l2_pix_format_mplane *pixm, const struct rkisp1_capture_fmt_cfg **fmt_cfg, const struct v4l2_format_info **fmt_info) @@ -1317,23 +1332,23 @@ static void rkisp1_try_fmt(const struct rkisp1_capt= ure *cap, *fmt_info =3D info; } =20 -static void rkisp1_set_fmt(struct rkisp1_capture *cap, - struct v4l2_pix_format_mplane *pixm) -{ - rkisp1_try_fmt(cap, pixm, &cap->pix.cfg, &cap->pix.info); - - cap->pix.fmt =3D *pixm; - cap->stride =3D pixm->plane_fmt[0].bytesperline / cap->pix.info->bpp[0]; -} - -static int rkisp1_try_fmt_vid_cap_mplane(struct file *file, +static int rkisp1_adj_fmt_vid_cap_mplane(struct file *file, struct video_device_state *state, struct v4l2_format *f) { struct rkisp1_capture *cap =3D video_drvdata(file); =20 - rkisp1_try_fmt(cap, &f->fmt.pix_mp, NULL, NULL); + if (state->which =3D=3D VIDEO_DEVICE_STATE_ACTIVE) { + if (vb2_is_busy(cap->vnode.vdev.queue)) + return -EBUSY; =20 + rkisp1_adj_fmt(cap, &f->fmt.pix_mp, &cap->pix.cfg, + &cap->pix.info); + } else { + rkisp1_adj_fmt(cap, &f->fmt.pix_mp, NULL, NULL); + } + + state->fmt =3D *f; return 0; } =20 @@ -1402,33 +1417,6 @@ static int rkisp1_enum_framesizes(struct file *file, return 0; } =20 -static int rkisp1_s_fmt_vid_cap_mplane(struct file *file, - struct video_device_state *state, - struct v4l2_format *f) -{ - struct rkisp1_capture *cap =3D video_drvdata(file); - struct rkisp1_vdev_node *node =3D - rkisp1_vdev_to_node(&cap->vnode.vdev); - - if (vb2_is_busy(&node->buf_queue)) - return -EBUSY; - - rkisp1_set_fmt(cap, &f->fmt.pix_mp); - - return 0; -} - -static int rkisp1_g_fmt_vid_cap_mplane(struct file *file, - struct video_device_state *state, - struct v4l2_format *f) -{ - struct rkisp1_capture *cap =3D video_drvdata(file); - - f->fmt.pix_mp =3D cap->pix.fmt; - - return 0; -} - static int rkisp1_querycap(struct file *file, struct video_device_state *state, struct v4l2_capability *cap) @@ -1450,9 +1438,9 @@ static const struct v4l2_ioctl_ops rkisp1_v4l2_ioctl_= ops =3D { .vidioc_prepare_buf =3D vb2_ioctl_prepare_buf, .vidioc_streamon =3D vb2_ioctl_streamon, .vidioc_streamoff =3D vb2_ioctl_streamoff, - .vidioc_try_fmt_vid_cap_mplane =3D rkisp1_try_fmt_vid_cap_mplane, - .vidioc_s_fmt_vid_cap_mplane =3D rkisp1_s_fmt_vid_cap_mplane, - .vidioc_g_fmt_vid_cap_mplane =3D rkisp1_g_fmt_vid_cap_mplane, + .vidioc_try_fmt_vid_cap_mplane =3D rkisp1_adj_fmt_vid_cap_mplane, + .vidioc_s_fmt_vid_cap_mplane =3D rkisp1_adj_fmt_vid_cap_mplane, + .vidioc_g_fmt_vid_cap_mplane =3D video_device_g_fmt, .vidioc_enum_fmt_vid_cap =3D rkisp1_enum_fmt_vid_cap_mplane, .vidioc_enum_framesizes =3D rkisp1_enum_framesizes, .vidioc_querycap =3D rkisp1_querycap, @@ -1460,6 +1448,25 @@ static const struct v4l2_ioctl_ops rkisp1_v4l2_ioctl= _ops =3D { .vidioc_unsubscribe_event =3D v4l2_event_unsubscribe, }; =20 +static int rkisp1_vdev_init_state(struct video_device_state *state) +{ + struct rkisp1_capture *cap =3D video_get_drvdata(state->vdev); + struct v4l2_pix_format_mplane *pixm =3D &state->fmt.fmt.pix_mp; + + state->fmt.type =3D V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; + pixm->pixelformat =3D V4L2_PIX_FMT_YUYV; + pixm->width =3D RKISP1_DEFAULT_WIDTH; + pixm->height =3D RKISP1_DEFAULT_HEIGHT; + + rkisp1_adj_fmt(cap, pixm, &cap->pix.cfg, &cap->pix.info); + + return 0; +} + +static const struct video_device_internal_ops rkisp1_vdev_ops =3D { + .init_state =3D rkisp1_vdev_init_state, +}; + static int rkisp1_capture_link_validate(struct media_link *link) { struct video_device *vdev =3D @@ -1467,8 +1474,11 @@ static int rkisp1_capture_link_validate(struct media= _link *link) struct v4l2_subdev *sd =3D media_entity_to_v4l2_subdev(link->source->entity); struct rkisp1_capture *cap =3D video_get_drvdata(vdev); + const struct v4l2_format *format =3D + video_device_state_get_fmt(cap->vnode.vdev.state); + const struct v4l2_pix_format_mplane *pixm =3D &format->fmt.pix_mp; const struct rkisp1_capture_fmt_cfg *fmt =3D - rkisp1_find_fmt_cfg(cap, cap->pix.fmt.pixelformat); + rkisp1_find_fmt_cfg(cap, pixm->pixelformat); struct v4l2_subdev_format sd_fmt =3D { .which =3D V4L2_SUBDEV_FORMAT_ACTIVE, .pad =3D link->source->index, @@ -1479,16 +1489,16 @@ static int rkisp1_capture_link_validate(struct medi= a_link *link) if (ret) return ret; =20 - if (sd_fmt.format.height !=3D cap->pix.fmt.height || - sd_fmt.format.width !=3D cap->pix.fmt.width || + if (sd_fmt.format.height !=3D pixm->height || + sd_fmt.format.width !=3D pixm->width || sd_fmt.format.code !=3D fmt->mbus) { dev_dbg(cap->rkisp1->dev, "link '%s':%u -> '%s':%u not valid: 0x%04x/%ux%u !=3D 0x%04x/%ux%u\n", link->source->entity->name, link->source->index, link->sink->entity->name, link->sink->index, sd_fmt.format.code, sd_fmt.format.width, - sd_fmt.format.height, fmt->mbus, cap->pix.fmt.width, - cap->pix.fmt.height); + sd_fmt.format.height, fmt->mbus, pixm->width, + pixm->height); return -EPIPE; } =20 @@ -1546,6 +1556,7 @@ static int rkisp1_register_capture(struct rkisp1_capt= ure *cap) mutex_init(&node->vlock); =20 vdev->ioctl_ops =3D &rkisp1_v4l2_ioctl_ops; + vdev->vdev_ops =3D &rkisp1_vdev_ops; vdev->release =3D video_device_release_empty; vdev->fops =3D &rkisp1_fops; vdev->minor =3D -1; @@ -1554,6 +1565,7 @@ static int rkisp1_register_capture(struct rkisp1_capt= ure *cap) vdev->device_caps =3D V4L2_CAP_VIDEO_CAPTURE_MPLANE | V4L2_CAP_STREAMING | V4L2_CAP_IO_MC; vdev->entity.ops =3D &rkisp1_media_ops; + set_bit(V4L2_FL_USES_STATE, &vdev->flags); video_set_drvdata(vdev, cap); vdev->vfl_dir =3D VFL_DIR_RX; node->pad.flags =3D MEDIA_PAD_FL_SINK; @@ -1604,7 +1616,6 @@ static void rkisp1_capture_init(struct rkisp1_device *rkisp1, enum rkisp1_stream_id id) { struct rkisp1_capture *cap =3D &rkisp1->capture_devs[id]; - struct v4l2_pix_format_mplane pixm; =20 memset(cap, 0, sizeof(*cap)); cap->id =3D id; @@ -1622,12 +1633,6 @@ rkisp1_capture_init(struct rkisp1_device *rkisp1, en= um rkisp1_stream_id id) } =20 cap->is_streaming =3D false; - - memset(&pixm, 0, sizeof(pixm)); - pixm.pixelformat =3D V4L2_PIX_FMT_YUYV; - pixm.width =3D RKISP1_DEFAULT_WIDTH; - pixm.height =3D RKISP1_DEFAULT_HEIGHT; - rkisp1_set_fmt(cap, &pixm); } =20 int rkisp1_capture_devs_register(struct rkisp1_device *rkisp1) diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h b/drive= rs/media/platform/rockchip/rkisp1/rkisp1-common.h index 6028ecdd23de6f69d53f77796252ee399a14436a..5731c4b368f8832c2b0748338cd= 0da2d0edf0a93 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h @@ -309,7 +309,6 @@ struct rkisp1_device; * handler to stop the streaming by waiting on the 'done' wait queue. * If the irq handler is not called, the stream is stopped by the callb= ack * after timeout. - * @stride: the line stride for the first plane, in pixel units * @buf.lock: lock to protect buf.queue * @buf.queue: queued buffer list * @buf.dummy: dummy space to store dropped data @@ -319,7 +318,6 @@ struct rkisp1_device; * @buf.next: the buffer used for next frame * @pix.cfg: pixel configuration * @pix.info: a pointer to the v4l2_format_info of the pixel format - * @pix.fmt: buffer format */ struct rkisp1_capture { struct rkisp1_vdev_node vnode; @@ -330,7 +328,6 @@ struct rkisp1_capture { bool is_streaming; bool is_stopping; wait_queue_head_t done; - unsigned int stride; struct { /* protects queue, curr and next */ spinlock_t lock; @@ -342,7 +339,6 @@ struct rkisp1_capture { struct { const struct rkisp1_capture_fmt_cfg *cfg; const struct v4l2_format_info *info; - struct v4l2_pix_format_mplane fmt; } pix; }; =20 --=20 2.51.0 From nobody Thu Oct 2 07:45:16 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3E6722FB616; Fri, 19 Sep 2025 09:58:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275883; cv=none; b=Kh5oe0wmw4r1Tg7ttQUy3BJrevuEMktSs0i8i8N9IpqkLSd32MdDR9IrrNDyExhdsep+SWJuDhjuOdsEOiItdA/Yh2Xgv9mvGXyfbEKyi9bqCvgXcaMV39F3CwrU2N5L1Wode0YnRquwgr0cTaGUgZGIiTKZgDt1JZT57w0KLQw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758275883; c=relaxed/simple; bh=tjf6dvEjoK7+zf/xaHgIHnkhI9DeWptIzUTAWkRt7Js=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=V6JFbewEmYfctfudz59x50966NonVuMjyzxeL3QobYycbCVJBZlGL5gge9/kV/ZL7yYgdtKy02YD3OxmKg/vyVlHsaQDP1IUGO9j9vaAKc35iSssxyoRvJv1zrn4nGZQMoa6yXHF6qMa3D7ximngYPk1wS81vXg6dUMGGhFDhAk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=KRRekGJa; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="KRRekGJa" Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c30:4816:952:3054:81b6:1a3a]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 7DFC3819; Fri, 19 Sep 2025 11:56:39 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1758275800; bh=tjf6dvEjoK7+zf/xaHgIHnkhI9DeWptIzUTAWkRt7Js=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=KRRekGJa4k9DMQrl4b304TD1YmxTii5tuyEEDP1mo71neQ5VvEAwEXvOaRVg82ro4 MpgLfeAg5nYPaKJyLgjVS0g/p0gbu6fYC75ijkULzPBXZXvmCrkv5W8imNjrx3thZr XDiw9/trLAOQ83kKM9SHPTNyGlj2XMwemI/8KATA= From: Jai Luthra Date: Fri, 19 Sep 2025 15:26:02 +0530 Subject: [PATCH v2 10/10] media: rkisp1: Calculate format information on demand Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250919-vdev-state-v2-10-b2c42426965c@ideasonboard.com> References: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> In-Reply-To: <20250919-vdev-state-v2-0-b2c42426965c@ideasonboard.com> To: Hans Verkuil , Mauro Carvalho Chehab , Sakari Ailus , Laurent Pinchart , Tomi Valkeinen , Jacopo Mondi , linux-media@vger.kernel.org Cc: Jai Luthra , Dafna Hirschfeld , Heiko Stuebner , linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 Instead of storing format configuration and information as explicit state in the driver structure, calculate it on demand when needed using the format stored in the active video device state. This change removes the pix member from rkisp1_capture structure and refactors the code to look up format configuration and v4l2_format_info at the point of use. Additionally, grey format handling is moved from the next buffer setup path (which may be called in interrupt context) to the buffer initialization phase for simplicity. Signed-off-by: Jai Luthra --- Cc: Dafna Hirschfeld Cc: Laurent Pinchart Cc: Mauro Carvalho Chehab Cc: Heiko Stuebner Cc: linux-media@vger.kernel.org Cc: linux-rockchip@lists.infradead.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org --- .../platform/rockchip/rkisp1/rkisp1-capture.c | 170 ++++++++++-------= ---- .../media/platform/rockchip/rkisp1/rkisp1-common.h | 6 - 2 files changed, 84 insertions(+), 92 deletions(-) diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c b/driv= ers/media/platform/rockchip/rkisp1/rkisp1-capture.c index 81bf4ed8bccdb0873c910fa49b22ef72eab295eb..2399fecc94dc4bf3a82fd1ae7fe= 8c746d015cdd8 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c @@ -63,9 +63,12 @@ struct rkisp1_capture_fmt_cfg { }; =20 struct rkisp1_capture_ops { - void (*config)(struct rkisp1_capture *cap); + void (*config)(struct rkisp1_capture *cap, + const struct rkisp1_capture_fmt_cfg *cfg, + const struct v4l2_format_info *info); void (*stop)(struct rkisp1_capture *cap); - void (*enable)(struct rkisp1_capture *cap); + void (*enable)(struct rkisp1_capture *cap, + const struct v4l2_format_info *info); void (*disable)(struct rkisp1_capture *cap); void (*set_data_path)(struct rkisp1_capture *cap); bool (*is_stopped)(struct rkisp1_capture *cap); @@ -480,12 +483,30 @@ static void rkisp1_irq_frame_end_enable(struct rkisp1= _capture *cap) rkisp1_write(cap->rkisp1, RKISP1_CIF_MI_IMSC, mi_imsc); } =20 -static void rkisp1_mp_config(struct rkisp1_capture *cap) +static const struct rkisp1_capture_fmt_cfg * +rkisp1_find_fmt_cfg(const struct rkisp1_capture *cap, const u32 pixelfmt) +{ + bool yc_swap_support =3D rkisp1_has_feature(cap->rkisp1, MAIN_STRIDE); + unsigned int i; + + for (i =3D 0; i < cap->config->fmt_size; i++) { + const struct rkisp1_capture_fmt_cfg *fmt =3D &cap->config->fmts[i]; + + if (fmt->fourcc =3D=3D pixelfmt && + (!fmt->yc_swap || yc_swap_support)) + return &cap->config->fmts[i]; + } + return NULL; +} + +static void rkisp1_mp_config(struct rkisp1_capture *cap, + const struct rkisp1_capture_fmt_cfg *cfg, + const struct v4l2_format_info *info) { const struct v4l2_format *format =3D video_device_state_get_fmt(cap->vnode.vdev.state); const struct v4l2_pix_format_mplane *pixm =3D &format->fmt.pix_mp; - u32 stride =3D pixm->plane_fmt[0].bytesperline / cap->pix.info->bpp[0]; + u32 stride =3D pixm->plane_fmt[0].bytesperline / info->bpp[0]; struct rkisp1_device *rkisp1 =3D cap->rkisp1; u32 reg; =20 @@ -507,9 +528,9 @@ static void rkisp1_mp_config(struct rkisp1_capture *cap) rkisp1_irq_frame_end_enable(cap); =20 /* set uv swapping for semiplanar formats */ - if (cap->pix.info->comp_planes =3D=3D 2) { + if (info->comp_planes =3D=3D 2) { reg =3D rkisp1_read(rkisp1, RKISP1_CIF_MI_XTD_FORMAT_CTRL); - if (cap->pix.cfg->uv_swap) + if (cfg->uv_swap) reg |=3D RKISP1_CIF_MI_XTD_FMT_CTRL_MP_CB_CR_SWAP; else reg &=3D ~RKISP1_CIF_MI_XTD_FMT_CTRL_MP_CB_CR_SWAP; @@ -523,7 +544,7 @@ static void rkisp1_mp_config(struct rkisp1_capture *cap) */ if (rkisp1_has_feature(rkisp1, MAIN_STRIDE)) { reg =3D rkisp1_read(rkisp1, RKISP1_CIF_MI_OUTPUT_ALIGN_FORMAT); - if (cap->pix.cfg->yc_swap || cap->pix.cfg->byte_swap) + if (cfg->yc_swap || cfg->byte_swap) reg |=3D RKISP1_CIF_OUTPUT_ALIGN_FORMAT_MP_BYTE_SWAP_BYTES; else reg &=3D ~RKISP1_CIF_OUTPUT_ALIGN_FORMAT_MP_BYTE_SWAP_BYTES; @@ -531,15 +552,14 @@ static void rkisp1_mp_config(struct rkisp1_capture *c= ap) reg |=3D RKISP1_CIF_OUTPUT_ALIGN_FORMAT_MP_LSB_ALIGNMENT; rkisp1_write(rkisp1, RKISP1_CIF_MI_OUTPUT_ALIGN_FORMAT, reg); =20 - rkisp1_write(rkisp1, RKISP1_CIF_MI_INIT, - cap->pix.cfg->output_format); + rkisp1_write(rkisp1, RKISP1_CIF_MI_INIT, cfg->output_format); } =20 rkisp1_mi_config_ctrl(cap); =20 reg =3D rkisp1_read(rkisp1, RKISP1_CIF_MI_CTRL); reg &=3D ~RKISP1_MI_CTRL_MP_FMT_MASK; - reg |=3D cap->pix.cfg->write_format; + reg |=3D cfg->write_format; rkisp1_write(rkisp1, RKISP1_CIF_MI_CTRL, reg); =20 reg =3D rkisp1_read(rkisp1, RKISP1_CIF_MI_CTRL); @@ -547,12 +567,14 @@ static void rkisp1_mp_config(struct rkisp1_capture *c= ap) rkisp1_write(rkisp1, RKISP1_CIF_MI_CTRL, reg); } =20 -static void rkisp1_sp_config(struct rkisp1_capture *cap) +static void rkisp1_sp_config(struct rkisp1_capture *cap, + const struct rkisp1_capture_fmt_cfg *cfg, + const struct v4l2_format_info *info) { const struct v4l2_format *format =3D video_device_state_get_fmt(cap->vnode.vdev.state); const struct v4l2_pix_format_mplane *pixm =3D &format->fmt.pix_mp; - u32 stride =3D pixm->plane_fmt[0].bytesperline / cap->pix.info->bpp[0]; + u32 stride =3D pixm->plane_fmt[0].bytesperline / info->bpp[0]; struct rkisp1_device *rkisp1 =3D cap->rkisp1; u32 mi_ctrl, reg; =20 @@ -572,9 +594,9 @@ static void rkisp1_sp_config(struct rkisp1_capture *cap) rkisp1_irq_frame_end_enable(cap); =20 /* set uv swapping for semiplanar formats */ - if (cap->pix.info->comp_planes =3D=3D 2) { + if (info->comp_planes =3D=3D 2) { reg =3D rkisp1_read(rkisp1, RKISP1_CIF_MI_XTD_FORMAT_CTRL); - if (cap->pix.cfg->uv_swap) + if (cfg->uv_swap) reg |=3D RKISP1_CIF_MI_XTD_FMT_CTRL_SP_CB_CR_SWAP; else reg &=3D ~RKISP1_CIF_MI_XTD_FMT_CTRL_SP_CB_CR_SWAP; @@ -588,7 +610,7 @@ static void rkisp1_sp_config(struct rkisp1_capture *cap) */ if (rkisp1_has_feature(rkisp1, MAIN_STRIDE)) { reg =3D rkisp1_read(rkisp1, RKISP1_CIF_MI_OUTPUT_ALIGN_FORMAT); - if (cap->pix.cfg->yc_swap) + if (cfg->yc_swap) reg |=3D RKISP1_CIF_OUTPUT_ALIGN_FORMAT_SP_BYTE_SWAP_BYTES; else reg &=3D ~RKISP1_CIF_OUTPUT_ALIGN_FORMAT_SP_BYTE_SWAP_BYTES; @@ -599,10 +621,8 @@ static void rkisp1_sp_config(struct rkisp1_capture *ca= p) =20 mi_ctrl =3D rkisp1_read(rkisp1, RKISP1_CIF_MI_CTRL); mi_ctrl &=3D ~RKISP1_MI_CTRL_SP_FMT_MASK; - mi_ctrl |=3D cap->pix.cfg->write_format | - RKISP1_MI_CTRL_SP_INPUT_YUV422 | - cap->pix.cfg->output_format | - RKISP1_CIF_MI_SP_AUTOUPDATE_ENABLE; + mi_ctrl |=3D cfg->write_format | RKISP1_MI_CTRL_SP_INPUT_YUV422 | + cfg->output_format | RKISP1_CIF_MI_SP_AUTOUPDATE_ENABLE; rkisp1_write(rkisp1, RKISP1_CIF_MI_CTRL, mi_ctrl); } =20 @@ -623,14 +643,15 @@ static void rkisp1_sp_disable(struct rkisp1_capture *= cap) rkisp1_write(cap->rkisp1, RKISP1_CIF_MI_CTRL, mi_ctrl); } =20 -static void rkisp1_mp_enable(struct rkisp1_capture *cap) +static void rkisp1_mp_enable(struct rkisp1_capture *cap, + const struct v4l2_format_info *info) { u32 mi_ctrl; =20 rkisp1_mp_disable(cap); =20 mi_ctrl =3D rkisp1_read(cap->rkisp1, RKISP1_CIF_MI_CTRL); - if (v4l2_is_format_bayer(cap->pix.info)) + if (v4l2_is_format_bayer(info)) mi_ctrl |=3D RKISP1_CIF_MI_CTRL_RAW_ENABLE; /* YUV */ else @@ -639,7 +660,8 @@ static void rkisp1_mp_enable(struct rkisp1_capture *cap) rkisp1_write(cap->rkisp1, RKISP1_CIF_MI_CTRL, mi_ctrl); } =20 -static void rkisp1_sp_enable(struct rkisp1_capture *cap) +static void rkisp1_sp_enable(struct rkisp1_capture *cap, + const struct v4l2_format_info *info) { u32 mi_ctrl =3D rkisp1_read(cap->rkisp1, RKISP1_CIF_MI_CTRL); =20 @@ -755,26 +777,12 @@ static void rkisp1_set_next_buf(struct rkisp1_capture= *cap) =20 rkisp1_write(cap->rkisp1, cap->config->mi.y_base_ad_init, buff_addr[RKISP1_PLANE_Y] >> shift); - /* - * In order to support grey format we capture - * YUV422 planar format from the camera and - * set the U and V planes to the dummy buffer - */ - if (cap->pix.cfg->fourcc =3D=3D V4L2_PIX_FMT_GREY) { - rkisp1_write(cap->rkisp1, - cap->config->mi.cb_base_ad_init, - cap->buf.dummy.dma_addr >> shift); - rkisp1_write(cap->rkisp1, - cap->config->mi.cr_base_ad_init, - cap->buf.dummy.dma_addr >> shift); - } else { - rkisp1_write(cap->rkisp1, - cap->config->mi.cb_base_ad_init, - buff_addr[RKISP1_PLANE_CB] >> shift); - rkisp1_write(cap->rkisp1, - cap->config->mi.cr_base_ad_init, - buff_addr[RKISP1_PLANE_CR] >> shift); - } + rkisp1_write(cap->rkisp1, + cap->config->mi.cb_base_ad_init, + buff_addr[RKISP1_PLANE_CB] >> shift); + rkisp1_write(cap->rkisp1, + cap->config->mi.cr_base_ad_init, + buff_addr[RKISP1_PLANE_CR] >> shift); } else { /* * Use the dummy space allocated by dma_alloc_coherent to @@ -907,6 +915,10 @@ static int rkisp1_vb2_buf_init(struct vb2_buffer *vb) const struct v4l2_format *format =3D video_device_state_get_fmt(cap->vnode.vdev.state); const struct v4l2_pix_format_mplane *pixm =3D &format->fmt.pix_mp; + const struct rkisp1_capture_fmt_cfg *cfg =3D + rkisp1_find_fmt_cfg(cap, pixm->pixelformat); + const struct v4l2_format_info *info =3D + v4l2_format_info(pixm->pixelformat); unsigned int i; =20 memset(ispbuf->buff_addr, 0, sizeof(ispbuf->buff_addr)); @@ -927,9 +939,19 @@ static int rkisp1_vb2_buf_init(struct vb2_buffer *vb) * uv swap can be supported for planar formats by switching * the address of cb and cr */ - if (cap->pix.info->comp_planes =3D=3D 3 && cap->pix.cfg->uv_swap) + if (info->comp_planes =3D=3D 3 && cfg->uv_swap) swap(ispbuf->buff_addr[RKISP1_PLANE_CR], ispbuf->buff_addr[RKISP1_PLANE_CB]); + + /* + * grey format can be supported by using dummy buffer for + * the cb and cr planes + */ + if (cfg->fourcc =3D=3D V4L2_PIX_FMT_GREY) { + ispbuf->buff_addr[RKISP1_PLANE_CB] =3D cap->buf.dummy.dma_addr; + ispbuf->buff_addr[RKISP1_PLANE_CR] =3D cap->buf.dummy.dma_addr; + } + return 0; } =20 @@ -1001,15 +1023,22 @@ static void rkisp1_cap_stream_enable(struct rkisp1_= capture *cap) { struct rkisp1_device *rkisp1 =3D cap->rkisp1; struct rkisp1_capture *other =3D &rkisp1->capture_devs[cap->id ^ 1]; + const struct v4l2_format *format =3D + video_device_state_get_fmt(cap->vnode.vdev.state); + const struct v4l2_pix_format_mplane *pixm =3D &format->fmt.pix_mp; + const struct rkisp1_capture_fmt_cfg *cfg =3D + rkisp1_find_fmt_cfg(cap, pixm->pixelformat); + const struct v4l2_format_info *info =3D + v4l2_format_info(pixm->pixelformat); bool has_self_path =3D rkisp1_has_feature(rkisp1, SELF_PATH); =20 cap->ops->set_data_path(cap); - cap->ops->config(cap); + cap->ops->config(cap, cfg, info); =20 /* Setup a buffer for the next frame */ spin_lock_irq(&cap->buf.lock); rkisp1_set_next_buf(cap); - cap->ops->enable(cap); + cap->ops->enable(cap, info); =20 /* * It's safe to configure ACTIVE and SHADOW registers for the first @@ -1224,9 +1253,8 @@ static const struct vb2_ops rkisp1_vb2_ops =3D { * IOCTLs operations */ =20 -static const struct v4l2_format_info * -rkisp1_fill_pixfmt(const struct rkisp1_capture *cap, - struct v4l2_pix_format_mplane *pixm) +static void rkisp1_fill_pixfmt(const struct rkisp1_capture *cap, + struct v4l2_pix_format_mplane *pixm) { struct v4l2_plane_pix_format *plane_y =3D &pixm->plane_fmt[0]; const struct v4l2_format_info *info; @@ -1273,34 +1301,13 @@ rkisp1_fill_pixfmt(const struct rkisp1_capture *cap, if (info->mem_planes =3D=3D 1) for (i =3D 1; i < info->comp_planes; i++) plane_y->sizeimage +=3D pixm->plane_fmt[i].sizeimage; - - return info; -} - -static const struct rkisp1_capture_fmt_cfg * -rkisp1_find_fmt_cfg(const struct rkisp1_capture *cap, const u32 pixelfmt) -{ - bool yc_swap_support =3D rkisp1_has_feature(cap->rkisp1, MAIN_STRIDE); - unsigned int i; - - for (i =3D 0; i < cap->config->fmt_size; i++) { - const struct rkisp1_capture_fmt_cfg *fmt =3D &cap->config->fmts[i]; - - if (fmt->fourcc =3D=3D pixelfmt && - (!fmt->yc_swap || yc_swap_support)) - return &cap->config->fmts[i]; - } - return NULL; } =20 static void rkisp1_adj_fmt(const struct rkisp1_capture *cap, - struct v4l2_pix_format_mplane *pixm, - const struct rkisp1_capture_fmt_cfg **fmt_cfg, - const struct v4l2_format_info **fmt_info) + struct v4l2_pix_format_mplane *pixm) { const struct rkisp1_capture_config *config =3D cap->config; const struct rkisp1_capture_fmt_cfg *fmt; - const struct v4l2_format_info *info; static const unsigned int max_widths[] =3D { RKISP1_RSZ_MP_SRC_MAX_WIDTH, RKISP1_RSZ_SP_SRC_MAX_WIDTH }; @@ -1324,12 +1331,7 @@ static void rkisp1_adj_fmt(const struct rkisp1_captu= re *cap, pixm->ycbcr_enc =3D V4L2_YCBCR_ENC_DEFAULT; pixm->quantization =3D V4L2_QUANTIZATION_DEFAULT; =20 - info =3D rkisp1_fill_pixfmt(cap, pixm); - - if (fmt_cfg) - *fmt_cfg =3D fmt; - if (fmt_info) - *fmt_info =3D info; + rkisp1_fill_pixfmt(cap, pixm); } =20 static int rkisp1_adj_fmt_vid_cap_mplane(struct file *file, @@ -1338,17 +1340,13 @@ static int rkisp1_adj_fmt_vid_cap_mplane(struct fil= e *file, { struct rkisp1_capture *cap =3D video_drvdata(file); =20 - if (state->which =3D=3D VIDEO_DEVICE_STATE_ACTIVE) { - if (vb2_is_busy(cap->vnode.vdev.queue)) - return -EBUSY; - - rkisp1_adj_fmt(cap, &f->fmt.pix_mp, &cap->pix.cfg, - &cap->pix.info); - } else { - rkisp1_adj_fmt(cap, &f->fmt.pix_mp, NULL, NULL); - } + if (state->which =3D=3D VIDEO_DEVICE_STATE_ACTIVE && + vb2_is_busy(cap->vnode.vdev.queue)) + return -EBUSY; =20 + rkisp1_adj_fmt(cap, &f->fmt.pix_mp); state->fmt =3D *f; + return 0; } =20 @@ -1458,7 +1456,7 @@ static int rkisp1_vdev_init_state(struct video_device= _state *state) pixm->width =3D RKISP1_DEFAULT_WIDTH; pixm->height =3D RKISP1_DEFAULT_HEIGHT; =20 - rkisp1_adj_fmt(cap, pixm, &cap->pix.cfg, &cap->pix.info); + rkisp1_adj_fmt(cap, pixm); =20 return 0; } diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h b/drive= rs/media/platform/rockchip/rkisp1/rkisp1-common.h index 5731c4b368f8832c2b0748338cd0da2d0edf0a93..daea11c55c9937d08f06efa2fdd= b307a8b5d767a 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h @@ -316,8 +316,6 @@ struct rkisp1_device; * rkisp1 uses shadow registers, so it needs two buffers at a time * @buf.curr: the buffer used for current frame * @buf.next: the buffer used for next frame - * @pix.cfg: pixel configuration - * @pix.info: a pointer to the v4l2_format_info of the pixel format */ struct rkisp1_capture { struct rkisp1_vdev_node vnode; @@ -336,10 +334,6 @@ struct rkisp1_capture { struct rkisp1_buffer *curr; struct rkisp1_buffer *next; } buf; - struct { - const struct rkisp1_capture_fmt_cfg *cfg; - const struct v4l2_format_info *info; - } pix; }; =20 struct rkisp1_stats; --=20 2.51.0