lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZyFdPats5BechjOa@tom-desktop>
Date: Tue, 29 Oct 2024 23:10:05 +0100
From: Tommaso Merciai <tomm.merciai@...il.com>
To: Laurent Pinchart <laurent.pinchart@...asonboard.com>
Cc: sakari.ailus@...ux.intel.com, Martin Hecht <martin.hecht@...et.eu>,
	Mauro Carvalho Chehab <mchehab@...nel.org>,
	Tomi Valkeinen <tomi.valkeinen@...asonboard.com>,
	Sebastian Reichel <sre@...nel.org>, Zhi Mao <zhi.mao@...iatek.com>,
	Alain Volmat <alain.volmat@...s.st.com>,
	Dave Stevenson <dave.stevenson@...pberrypi.com>,
	Kieran Bingham <kieran.bingham@...asonboard.com>,
	Umang Jain <umang.jain@...asonboard.com>,
	Manivannan Sadhasivam <manivannan.sadhasivam@...aro.org>,
	Julien Massot <julien.massot@...labora.com>,
	Bingbu Cao <bingbu.cao@...el.com>,
	Jacopo Mondi <jacopo.mondi@...asonboard.com>,
	Nicholas Roth <nicholas@...hemail.net>,
	Paul Elder <paul.elder@...asonboard.com>,
	linux-media@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/1] media: v4l2-subdev: Drop HAS_EVENTS and event
 handlers

Hi Laurent,
Thanks for your review.

On Tue, Oct 29, 2024 at 10:58:49PM +0200, Laurent Pinchart wrote:
> Hi Tommaso,
> 
> Thank you for the patch.
> 
> The subject should start with "media: i2c:", not "media: v4l2-subdev:".

Completely right. I will fix that in v2.

> 
> On Tue, Oct 29, 2024 at 05:21:05PM +0100, Tommaso Merciai wrote:
> > v4l2_subdev_init_finalize() already sets the HAS_EVENTS flag if a
> > control handler is set, and subdev_do_ioctl() uses
> > v4l2_ctrl_subdev_subscribe_event() and v4l2_event_subdev_unsubscribe()
> > as defaults if the subdev doesn't have .(un)subscribe.
> 
> That will be true once patch "[PATCH v2] media: v4l2-subdev: Refactor
> events" gets merged. It's good practice to list dependencies, possibly
> below the --- line (or in a cover letter) if you don't want it to appear
> in the commit message. I also recommend setting the format.useAutoBase
> option to automate recording of the base commit in the patch.

Ouch :'(
My bad, cover letter is in my pc.

> 
> > Let's drop the HAS_EVENTS flag and event handlers.
> > 
> > Signed-off-by: Tommaso Merciai <tomm.merciai@...il.com>
> > ---
> >  drivers/media/i2c/alvium-csi2.c |  5 +----
> >  drivers/media/i2c/ds90ub953.c   |  5 +----
> >  drivers/media/i2c/ds90ub960.c   |  5 +----
> >  drivers/media/i2c/gc0308.c      |  4 ----
> >  drivers/media/i2c/gc05a2.c      | 10 +---------
> >  drivers/media/i2c/gc08a3.c      | 10 +---------
> >  drivers/media/i2c/gc2145.c      | 10 +---------
> >  drivers/media/i2c/imx219.c      | 10 +---------
> >  drivers/media/i2c/imx283.c      | 10 +---------
> >  drivers/media/i2c/imx290.c      | 10 +---------
> 
> You could also address the imx415 driver, it sets the HAS_EVENTS flags
> but not the operations. It's probably best done in a separate patch,
> with an appropriate commit message.

Good catch! :)
Thanks for pointing this.

Will send v2.

Thanks & Regards,
Tommaso

> 
> >  drivers/media/i2c/max96714.c    |  6 +-----
> >  drivers/media/i2c/max96717.c    |  6 +-----
> >  drivers/media/i2c/ov01a10.c     |  6 +-----
> >  drivers/media/i2c/ov64a40.c     | 10 +---------
> >  drivers/media/i2c/ov8858.c      |  9 +--------
> >  drivers/media/i2c/thp7312.c     |  5 +----
> >  16 files changed, 15 insertions(+), 106 deletions(-)
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart@...asonboard.com>
> 
> > diff --git a/drivers/media/i2c/alvium-csi2.c b/drivers/media/i2c/alvium-csi2.c
> > index 5c294e4ad20c..5b66bfac195a 100644
> > --- a/drivers/media/i2c/alvium-csi2.c
> > +++ b/drivers/media/i2c/alvium-csi2.c
> > @@ -16,7 +16,6 @@
> >  #include <media/v4l2-async.h>
> >  #include <media/v4l2-ctrls.h>
> >  #include <media/v4l2-device.h>
> > -#include <media/v4l2-event.h>
> >  #include <media/v4l2-fwnode.h>
> >  #include <media/v4l2-subdev.h>
> >  
> > @@ -2265,8 +2264,6 @@ static int alvium_ctrl_init(struct alvium_dev *alvium)
> >  
> >  static const struct v4l2_subdev_core_ops alvium_core_ops = {
> >  	.log_status = alvium_log_status,
> > -	.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
> > -	.unsubscribe_event = v4l2_event_subdev_unsubscribe,
> >  };
> >  
> >  static const struct v4l2_subdev_video_ops alvium_video_ops = {
> > @@ -2314,7 +2311,7 @@ static int alvium_subdev_init(struct alvium_dev *alvium)
> >  	v4l2_i2c_subdev_init(sd, client, &alvium_subdev_ops);
> >  
> >  	sd->internal_ops = &alvium_internal_ops;
> > -	sd->flags |= V4L2_SUBDEV_FL_HAS_EVENTS | V4L2_SUBDEV_FL_HAS_DEVNODE;
> > +	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
> >  	alvium->pad.flags = MEDIA_PAD_FL_SOURCE;
> >  	sd->entity.function = MEDIA_ENT_F_CAM_SENSOR;
> >  
> > diff --git a/drivers/media/i2c/ds90ub953.c b/drivers/media/i2c/ds90ub953.c
> > index 16f88db14981..8b028a84f5bc 100644
> > --- a/drivers/media/i2c/ds90ub953.c
> > +++ b/drivers/media/i2c/ds90ub953.c
> > @@ -24,7 +24,6 @@
> >  
> >  #include <media/i2c/ds90ub9xx.h>
> >  #include <media/v4l2-ctrls.h>
> > -#include <media/v4l2-event.h>
> >  #include <media/v4l2-fwnode.h>
> >  #include <media/v4l2-mediabus.h>
> >  #include <media/v4l2-subdev.h>
> > @@ -717,8 +716,6 @@ static const struct v4l2_subdev_pad_ops ub953_pad_ops = {
> >  
> >  static const struct v4l2_subdev_core_ops ub953_subdev_core_ops = {
> >  	.log_status = ub953_log_status,
> > -	.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
> > -	.unsubscribe_event = v4l2_event_subdev_unsubscribe,
> >  };
> >  
> >  static const struct v4l2_subdev_ops ub953_subdev_ops = {
> > @@ -1246,7 +1243,7 @@ static int ub953_subdev_init(struct ub953_data *priv)
> >  	priv->sd.internal_ops = &ub953_internal_ops;
> >  
> >  	priv->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE |
> > -			  V4L2_SUBDEV_FL_HAS_EVENTS | V4L2_SUBDEV_FL_STREAMS;
> > +			  V4L2_SUBDEV_FL_STREAMS;
> >  	priv->sd.entity.function = MEDIA_ENT_F_VID_IF_BRIDGE;
> >  	priv->sd.entity.ops = &ub953_entity_ops;
> >  
> > diff --git a/drivers/media/i2c/ds90ub960.c b/drivers/media/i2c/ds90ub960.c
> > index 58424d8f72af..33f362a00875 100644
> > --- a/drivers/media/i2c/ds90ub960.c
> > +++ b/drivers/media/i2c/ds90ub960.c
> > @@ -48,7 +48,6 @@
> >  #include <media/i2c/ds90ub9xx.h>
> >  #include <media/mipi-csi2.h>
> >  #include <media/v4l2-ctrls.h>
> > -#include <media/v4l2-event.h>
> >  #include <media/v4l2-fwnode.h>
> >  #include <media/v4l2-subdev.h>
> >  
> > @@ -3085,8 +3084,6 @@ static int ub960_log_status(struct v4l2_subdev *sd)
> >  
> >  static const struct v4l2_subdev_core_ops ub960_subdev_core_ops = {
> >  	.log_status = ub960_log_status,
> > -	.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
> > -	.unsubscribe_event = v4l2_event_subdev_unsubscribe,
> >  };
> >  
> >  static const struct v4l2_subdev_internal_ops ub960_internal_ops = {
> > @@ -3667,7 +3664,7 @@ static int ub960_create_subdev(struct ub960_data *priv)
> >  	}
> >  
> >  	priv->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE |
> > -			  V4L2_SUBDEV_FL_HAS_EVENTS | V4L2_SUBDEV_FL_STREAMS;
> > +			  V4L2_SUBDEV_FL_STREAMS;
> >  	priv->sd.entity.function = MEDIA_ENT_F_VID_IF_BRIDGE;
> >  	priv->sd.entity.ops = &ub960_entity_ops;
> >  
> > diff --git a/drivers/media/i2c/gc0308.c b/drivers/media/i2c/gc0308.c
> > index fa754a8a39a6..069f42785b3c 100644
> > --- a/drivers/media/i2c/gc0308.c
> > +++ b/drivers/media/i2c/gc0308.c
> > @@ -18,7 +18,6 @@
> >  #include <media/v4l2-cci.h>
> >  #include <media/v4l2-ctrls.h>
> >  #include <media/v4l2-device.h>
> > -#include <media/v4l2-event.h>
> >  #include <media/v4l2-fwnode.h>
> >  #include <media/v4l2-subdev.h>
> >  
> > @@ -987,8 +986,6 @@ static const struct v4l2_ctrl_ops gc0308_ctrl_ops = {
> >  
> >  static const struct v4l2_subdev_core_ops gc0308_core_ops = {
> >  	.log_status = v4l2_ctrl_subdev_log_status,
> > -	.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
> > -	.unsubscribe_event = v4l2_event_subdev_unsubscribe,
> >  #ifdef CONFIG_VIDEO_ADV_DEBUG
> >  	.g_register	= gc0308_g_register,
> >  	.s_register	= gc0308_s_register,
> > @@ -1338,7 +1335,6 @@ static int gc0308_probe(struct i2c_client *client)
> >  	v4l2_i2c_subdev_init(&gc0308->sd, client, &gc0308_subdev_ops);
> >  	gc0308->sd.internal_ops = &gc0308_internal_ops;
> >  	gc0308->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
> > -	gc0308->sd.flags |= V4L2_SUBDEV_FL_HAS_EVENTS;
> >  
> >  	ret = gc0308_init_controls(gc0308);
> >  	if (ret)
> > diff --git a/drivers/media/i2c/gc05a2.c b/drivers/media/i2c/gc05a2.c
> > index 0413c557e594..3f7f3d5abeeb 100644
> > --- a/drivers/media/i2c/gc05a2.c
> > +++ b/drivers/media/i2c/gc05a2.c
> > @@ -24,7 +24,6 @@
> >  
> >  #include <media/v4l2-cci.h>
> >  #include <media/v4l2-ctrls.h>
> > -#include <media/v4l2-event.h>
> >  #include <media/v4l2-fwnode.h>
> >  #include <media/v4l2-subdev.h>
> >  
> > @@ -1059,13 +1058,7 @@ static const struct v4l2_subdev_pad_ops gc05a2_subdev_pad_ops = {
> >  	.get_selection = gc05a2_get_selection,
> >  };
> >  
> > -static const struct v4l2_subdev_core_ops gc05a2_core_ops = {
> > -	.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
> > -	.unsubscribe_event = v4l2_event_subdev_unsubscribe,
> > -};
> > -
> >  static const struct v4l2_subdev_ops gc05a2_subdev_ops = {
> > -	.core = &gc05a2_core_ops,
> >  	.video = &gc05a2_video_ops,
> >  	.pad = &gc05a2_subdev_pad_ops,
> >  };
> > @@ -1271,8 +1264,7 @@ static int gc05a2_probe(struct i2c_client *client)
> >  		return dev_err_probe(dev, ret,
> >  				     "failed to init controls\n");
> >  
> > -	gc05a2->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE |
> > -			    V4L2_SUBDEV_FL_HAS_EVENTS;
> > +	gc05a2->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
> >  	gc05a2->pad.flags = MEDIA_PAD_FL_SOURCE;
> >  	gc05a2->sd.dev = &client->dev;
> >  	gc05a2->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;
> > diff --git a/drivers/media/i2c/gc08a3.c b/drivers/media/i2c/gc08a3.c
> > index 84de5cff958d..938709a677b6 100644
> > --- a/drivers/media/i2c/gc08a3.c
> > +++ b/drivers/media/i2c/gc08a3.c
> > @@ -24,7 +24,6 @@
> >  
> >  #include <media/v4l2-cci.h>
> >  #include <media/v4l2-ctrls.h>
> > -#include <media/v4l2-event.h>
> >  #include <media/v4l2-fwnode.h>
> >  #include <media/v4l2-subdev.h>
> >  
> > @@ -1001,13 +1000,7 @@ static const struct v4l2_subdev_pad_ops gc08a3_subdev_pad_ops = {
> >  	.get_selection = gc08a3_get_selection,
> >  };
> >  
> > -static const struct v4l2_subdev_core_ops gc08a3_core_ops = {
> > -	.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
> > -	.unsubscribe_event = v4l2_event_subdev_unsubscribe,
> > -};
> > -
> >  static const struct v4l2_subdev_ops gc08a3_subdev_ops = {
> > -	.core = &gc08a3_core_ops,
> >  	.video = &gc08a3_video_ops,
> >  	.pad = &gc08a3_subdev_pad_ops,
> >  };
> > @@ -1247,8 +1240,7 @@ static int gc08a3_probe(struct i2c_client *client)
> >  		goto err_power_off;
> >  	}
> >  
> > -	gc08a3->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE |
> > -			    V4L2_SUBDEV_FL_HAS_EVENTS;
> > +	gc08a3->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
> >  	gc08a3->pad.flags = MEDIA_PAD_FL_SOURCE;
> >  	gc08a3->sd.dev = &client->dev;
> >  	gc08a3->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;
> > diff --git a/drivers/media/i2c/gc2145.c b/drivers/media/i2c/gc2145.c
> > index 667bb756d056..03d78fbe8634 100644
> > --- a/drivers/media/i2c/gc2145.c
> > +++ b/drivers/media/i2c/gc2145.c
> > @@ -21,7 +21,6 @@
> >  #include <media/v4l2-cci.h>
> >  #include <media/v4l2-ctrls.h>
> >  #include <media/v4l2-device.h>
> > -#include <media/v4l2-event.h>
> >  #include <media/v4l2-fwnode.h>
> >  #include <media/v4l2-mediabus.h>
> >  
> > @@ -1123,11 +1122,6 @@ static const u8 test_pattern_val[] = {
> >  	GC2145_TEST_UNIFORM | GC2145_TEST_BLACK,
> >  };
> >  
> > -static const struct v4l2_subdev_core_ops gc2145_core_ops = {
> > -	.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
> > -	.unsubscribe_event = v4l2_event_subdev_unsubscribe,
> > -};
> > -
> >  static const struct v4l2_subdev_video_ops gc2145_video_ops = {
> >  	.s_stream = gc2145_set_stream,
> >  };
> > @@ -1141,7 +1135,6 @@ static const struct v4l2_subdev_pad_ops gc2145_pad_ops = {
> >  };
> >  
> >  static const struct v4l2_subdev_ops gc2145_subdev_ops = {
> > -	.core = &gc2145_core_ops,
> >  	.video = &gc2145_video_ops,
> >  	.pad = &gc2145_pad_ops,
> >  };
> > @@ -1407,8 +1400,7 @@ static int gc2145_probe(struct i2c_client *client)
> >  		goto error_power_off;
> >  
> >  	/* Initialize subdev */
> > -	gc2145->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE |
> > -			    V4L2_SUBDEV_FL_HAS_EVENTS;
> > +	gc2145->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
> >  	gc2145->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;
> >  
> >  	/* Initialize source pad */
> > diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c
> > index e78a80b2bb2e..2d54cea113e1 100644
> > --- a/drivers/media/i2c/imx219.c
> > +++ b/drivers/media/i2c/imx219.c
> > @@ -26,7 +26,6 @@
> >  #include <media/v4l2-cci.h>
> >  #include <media/v4l2-ctrls.h>
> >  #include <media/v4l2-device.h>
> > -#include <media/v4l2-event.h>
> >  #include <media/v4l2-fwnode.h>
> >  #include <media/v4l2-mediabus.h>
> >  
> > @@ -922,11 +921,6 @@ static int imx219_init_state(struct v4l2_subdev *sd,
> >  	return 0;
> >  }
> >  
> > -static const struct v4l2_subdev_core_ops imx219_core_ops = {
> > -	.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
> > -	.unsubscribe_event = v4l2_event_subdev_unsubscribe,
> > -};
> > -
> >  static const struct v4l2_subdev_video_ops imx219_video_ops = {
> >  	.s_stream = imx219_set_stream,
> >  };
> > @@ -940,7 +934,6 @@ static const struct v4l2_subdev_pad_ops imx219_pad_ops = {
> >  };
> >  
> >  static const struct v4l2_subdev_ops imx219_subdev_ops = {
> > -	.core = &imx219_core_ops,
> >  	.video = &imx219_video_ops,
> >  	.pad = &imx219_pad_ops,
> >  };
> > @@ -1166,8 +1159,7 @@ static int imx219_probe(struct i2c_client *client)
> >  		goto error_power_off;
> >  
> >  	/* Initialize subdev */
> > -	imx219->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE |
> > -			    V4L2_SUBDEV_FL_HAS_EVENTS;
> > +	imx219->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
> >  	imx219->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;
> >  
> >  	/* Initialize source pad */
> > diff --git a/drivers/media/i2c/imx283.c b/drivers/media/i2c/imx283.c
> > index 94276f4f2d83..f676faf4b301 100644
> > --- a/drivers/media/i2c/imx283.c
> > +++ b/drivers/media/i2c/imx283.c
> > @@ -32,7 +32,6 @@
> >  #include <media/v4l2-cci.h>
> >  #include <media/v4l2-ctrls.h>
> >  #include <media/v4l2-device.h>
> > -#include <media/v4l2-event.h>
> >  #include <media/v4l2-fwnode.h>
> >  #include <media/v4l2-mediabus.h>
> >  
> > @@ -1284,11 +1283,6 @@ static int imx283_get_selection(struct v4l2_subdev *sd,
> >  	}
> >  }
> >  
> > -static const struct v4l2_subdev_core_ops imx283_core_ops = {
> > -	.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
> > -	.unsubscribe_event = v4l2_event_subdev_unsubscribe,
> > -};
> > -
> >  static const struct v4l2_subdev_video_ops imx283_video_ops = {
> >  	.s_stream = v4l2_subdev_s_stream_helper,
> >  };
> > @@ -1308,7 +1302,6 @@ static const struct v4l2_subdev_internal_ops imx283_internal_ops = {
> >  };
> >  
> >  static const struct v4l2_subdev_ops imx283_subdev_ops = {
> > -	.core = &imx283_core_ops,
> >  	.video = &imx283_video_ops,
> >  	.pad = &imx283_pad_ops,
> >  };
> > @@ -1548,8 +1541,7 @@ static int imx283_probe(struct i2c_client *client)
> >  		goto error_pm;
> >  
> >  	/* Initialize subdev */
> > -	imx283->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE |
> > -			    V4L2_SUBDEV_FL_HAS_EVENTS;
> > +	imx283->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
> >  	imx283->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;
> >  	imx283->sd.internal_ops = &imx283_internal_ops;
> >  
> > diff --git a/drivers/media/i2c/imx290.c b/drivers/media/i2c/imx290.c
> > index 49a5bf9c17da..ee698c99001d 100644
> > --- a/drivers/media/i2c/imx290.c
> > +++ b/drivers/media/i2c/imx290.c
> > @@ -24,7 +24,6 @@
> >  #include <media/v4l2-cci.h>
> >  #include <media/v4l2-ctrls.h>
> >  #include <media/v4l2-device.h>
> > -#include <media/v4l2-event.h>
> >  #include <media/v4l2-fwnode.h>
> >  #include <media/v4l2-subdev.h>
> >  
> > @@ -1210,11 +1209,6 @@ static int imx290_entity_init_state(struct v4l2_subdev *subdev,
> >  	return 0;
> >  }
> >  
> > -static const struct v4l2_subdev_core_ops imx290_core_ops = {
> > -	.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
> > -	.unsubscribe_event = v4l2_event_subdev_unsubscribe,
> > -};
> > -
> >  static const struct v4l2_subdev_video_ops imx290_video_ops = {
> >  	.s_stream = imx290_set_stream,
> >  };
> > @@ -1228,7 +1222,6 @@ static const struct v4l2_subdev_pad_ops imx290_pad_ops = {
> >  };
> >  
> >  static const struct v4l2_subdev_ops imx290_subdev_ops = {
> > -	.core = &imx290_core_ops,
> >  	.video = &imx290_video_ops,
> >  	.pad = &imx290_pad_ops,
> >  };
> > @@ -1262,8 +1255,7 @@ static int imx290_subdev_init(struct imx290 *imx290)
> >  	pm_runtime_put_autosuspend(imx290->dev);
> >  
> >  	imx290->sd.internal_ops = &imx290_internal_ops;
> > -	imx290->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE |
> > -			    V4L2_SUBDEV_FL_HAS_EVENTS;
> > +	imx290->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
> >  	imx290->sd.entity.ops = &imx290_subdev_entity_ops;
> >  	imx290->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;
> >  
> > diff --git a/drivers/media/i2c/max96714.c b/drivers/media/i2c/max96714.c
> > index 2257b6b807ea..159753b13777 100644
> > --- a/drivers/media/i2c/max96714.c
> > +++ b/drivers/media/i2c/max96714.c
> > @@ -17,7 +17,6 @@
> >  
> >  #include <media/v4l2-cci.h>
> >  #include <media/v4l2-ctrls.h>
> > -#include <media/v4l2-event.h>
> >  #include <media/v4l2-fwnode.h>
> >  #include <media/v4l2-subdev.h>
> >  
> > @@ -489,8 +488,6 @@ static int max96714_log_status(struct v4l2_subdev *sd)
> >  
> >  static const struct v4l2_subdev_core_ops max96714_subdev_core_ops = {
> >  	.log_status = max96714_log_status,
> > -	.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
> > -	.unsubscribe_event = v4l2_event_subdev_unsubscribe,
> >  };
> >  
> >  static const struct v4l2_subdev_video_ops max96714_video_ops = {
> > @@ -605,8 +602,7 @@ static int max96714_create_subdev(struct max96714_priv *priv)
> >  		goto err_free_ctrl;
> >  	}
> >  
> > -	priv->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE |
> > -			  V4L2_SUBDEV_FL_HAS_EVENTS | V4L2_SUBDEV_FL_STREAMS;
> > +	priv->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_STREAMS;
> >  	priv->sd.entity.function = MEDIA_ENT_F_VID_IF_BRIDGE;
> >  	priv->sd.entity.ops = &max96714_entity_ops;
> >  
> > diff --git a/drivers/media/i2c/max96717.c b/drivers/media/i2c/max96717.c
> > index 047bad30e263..9259d58ba734 100644
> > --- a/drivers/media/i2c/max96717.c
> > +++ b/drivers/media/i2c/max96717.c
> > @@ -17,7 +17,6 @@
> >  
> >  #include <media/v4l2-cci.h>
> >  #include <media/v4l2-ctrls.h>
> > -#include <media/v4l2-event.h>
> >  #include <media/v4l2-fwnode.h>
> >  #include <media/v4l2-subdev.h>
> >  
> > @@ -577,8 +576,6 @@ static const struct v4l2_subdev_pad_ops max96717_pad_ops = {
> >  
> >  static const struct v4l2_subdev_core_ops max96717_subdev_core_ops = {
> >  	.log_status = max96717_log_status,
> > -	.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
> > -	.unsubscribe_event = v4l2_event_subdev_unsubscribe,
> >  };
> >  
> >  static const struct v4l2_subdev_internal_ops max96717_internal_ops = {
> > @@ -692,8 +689,7 @@ static int max96717_subdev_init(struct max96717_priv *priv)
> >  		goto err_free_ctrl;
> >  	}
> >  
> > -	priv->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE |
> > -			  V4L2_SUBDEV_FL_HAS_EVENTS | V4L2_SUBDEV_FL_STREAMS;
> > +	priv->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_STREAMS;
> >  	priv->sd.entity.function = MEDIA_ENT_F_VID_IF_BRIDGE;
> >  	priv->sd.entity.ops = &max96717_entity_ops;
> >  
> > diff --git a/drivers/media/i2c/ov01a10.c b/drivers/media/i2c/ov01a10.c
> > index 5606437f37d0..a608cb51ac6e 100644
> > --- a/drivers/media/i2c/ov01a10.c
> > +++ b/drivers/media/i2c/ov01a10.c
> > @@ -13,7 +13,6 @@
> >  
> >  #include <media/v4l2-ctrls.h>
> >  #include <media/v4l2-device.h>
> > -#include <media/v4l2-event.h>
> >  #include <media/v4l2-fwnode.h>
> >  
> >  #define OV01A10_LINK_FREQ_400MHZ	400000000ULL
> > @@ -804,8 +803,6 @@ static int ov01a10_get_selection(struct v4l2_subdev *sd,
> >  
> >  static const struct v4l2_subdev_core_ops ov01a10_core_ops = {
> >  	.log_status = v4l2_ctrl_subdev_log_status,
> > -	.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
> > -	.unsubscribe_event = v4l2_event_subdev_unsubscribe,
> >  };
> >  
> >  static const struct v4l2_subdev_video_ops ov01a10_video_ops = {
> > @@ -892,8 +889,7 @@ static int ov01a10_probe(struct i2c_client *client)
> >  	}
> >  
> >  	ov01a10->sd.state_lock = ov01a10->ctrl_handler.lock;
> > -	ov01a10->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE |
> > -		V4L2_SUBDEV_FL_HAS_EVENTS;
> > +	ov01a10->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
> >  	ov01a10->sd.entity.ops = &ov01a10_subdev_entity_ops;
> >  	ov01a10->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;
> >  	ov01a10->pad.flags = MEDIA_PAD_FL_SOURCE;
> > diff --git a/drivers/media/i2c/ov64a40.c b/drivers/media/i2c/ov64a40.c
> > index 541bf74581d2..a5da4fe47e0b 100644
> > --- a/drivers/media/i2c/ov64a40.c
> > +++ b/drivers/media/i2c/ov64a40.c
> > @@ -18,7 +18,6 @@
> >  #include <media/v4l2-cci.h>
> >  #include <media/v4l2-ctrls.h>
> >  #include <media/v4l2-device.h>
> > -#include <media/v4l2-event.h>
> >  #include <media/v4l2-fwnode.h>
> >  #include <media/v4l2-mediabus.h>
> >  #include <media/v4l2-subdev.h>
> > @@ -3200,13 +3199,7 @@ static const struct v4l2_subdev_pad_ops ov64a40_pad_ops = {
> >  	.get_selection = ov64a40_get_selection,
> >  };
> >  
> > -static const struct v4l2_subdev_core_ops ov64a40_core_ops = {
> > -	.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
> > -	.unsubscribe_event = v4l2_event_subdev_unsubscribe,
> > -};
> > -
> >  static const struct v4l2_subdev_ops ov64a40_subdev_ops = {
> > -	.core = &ov64a40_core_ops,
> >  	.video = &ov64a40_video_ops,
> >  	.pad = &ov64a40_pad_ops,
> >  };
> > @@ -3605,8 +3598,7 @@ static int ov64a40_probe(struct i2c_client *client)
> >  
> >  	/* Initialize subdev */
> >  	ov64a40->sd.internal_ops = &ov64a40_internal_ops;
> > -	ov64a40->sd.flags = V4L2_SUBDEV_FL_HAS_DEVNODE
> > -			  | V4L2_SUBDEV_FL_HAS_EVENTS;
> > +	ov64a40->sd.flags = V4L2_SUBDEV_FL_HAS_DEVNODE;
> >  	ov64a40->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;
> >  
> >  	ov64a40->pad.flags = MEDIA_PAD_FL_SOURCE;
> > diff --git a/drivers/media/i2c/ov8858.c b/drivers/media/i2c/ov8858.c
> > index 174c65f76886..7dcb235d2056 100644
> > --- a/drivers/media/i2c/ov8858.c
> > +++ b/drivers/media/i2c/ov8858.c
> > @@ -24,7 +24,6 @@
> >  #include <media/v4l2-common.h>
> >  #include <media/v4l2-ctrls.h>
> >  #include <media/v4l2-device.h>
> > -#include <media/v4l2-event.h>
> >  #include <media/v4l2-fwnode.h>
> >  #include <media/v4l2-mediabus.h>
> >  #include <media/v4l2-subdev.h>
> > @@ -1500,13 +1499,7 @@ static const struct v4l2_subdev_pad_ops ov8858_pad_ops = {
> >  	.set_fmt = ov8858_set_fmt,
> >  };
> >  
> > -static const struct v4l2_subdev_core_ops ov8858_core_ops = {
> > -	.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
> > -	.unsubscribe_event = v4l2_event_subdev_unsubscribe,
> > -};
> > -
> >  static const struct v4l2_subdev_ops ov8858_subdev_ops = {
> > -	.core	= &ov8858_core_ops,
> >  	.video	= &ov8858_video_ops,
> >  	.pad	= &ov8858_pad_ops,
> >  };
> > @@ -1917,7 +1910,7 @@ static int ov8858_probe(struct i2c_client *client)
> >  		return ret;
> >  
> >  	sd = &ov8858->subdev;
> > -	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS;
> > +	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
> >  	ov8858->pad.flags = MEDIA_PAD_FL_SOURCE;
> >  	sd->entity.function = MEDIA_ENT_F_CAM_SENSOR;
> >  	ret = media_entity_pads_init(&sd->entity, 1, &ov8858->pad);
> > diff --git a/drivers/media/i2c/thp7312.c b/drivers/media/i2c/thp7312.c
> > index 75225ff5eff6..e2679601a301 100644
> > --- a/drivers/media/i2c/thp7312.c
> > +++ b/drivers/media/i2c/thp7312.c
> > @@ -27,7 +27,6 @@
> >  #include <media/v4l2-cci.h>
> >  #include <media/v4l2-ctrls.h>
> >  #include <media/v4l2-device.h>
> > -#include <media/v4l2-event.h>
> >  #include <media/v4l2-fwnode.h>
> >  #include <media/v4l2-subdev.h>
> >  
> > @@ -879,8 +878,6 @@ static int thp7312_init_state(struct v4l2_subdev *sd,
> >  
> >  static const struct v4l2_subdev_core_ops thp7312_core_ops = {
> >  	.log_status = v4l2_ctrl_subdev_log_status,
> > -	.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
> > -	.unsubscribe_event = v4l2_event_subdev_unsubscribe,
> >  };
> >  
> >  static const struct v4l2_subdev_video_ops thp7312_video_ops = {
> > @@ -2127,7 +2124,7 @@ static int thp7312_probe(struct i2c_client *client)
> >  
> >  	v4l2_i2c_subdev_init(&thp7312->sd, client, &thp7312_subdev_ops);
> >  	thp7312->sd.internal_ops = &thp7312_internal_ops;
> > -	thp7312->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS;
> > +	thp7312->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
> >  	thp7312->pad.flags = MEDIA_PAD_FL_SOURCE;
> >  	thp7312->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;
> >  
> > -- 
> > 2.34.1
> > 
> 
> -- 
> Regards,
> 
> Laurent Pinchart

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ