diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2009-05-02 09:58:51 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-06-16 17:20:51 -0400 |
commit | b5b2b7ed569cedac4f5da38e08b01c88443187bd (patch) | |
tree | d21f735f5f50fd79ea72d176a2ec2872218ef0a2 /include/media/v4l2-subdev.h | |
parent | a79b11c025a5757a5129e716e7e66dc36a2dfe21 (diff) |
V4L/DVB (11673): v4l2-device: unregister i2c_clients when unregistering the v4l2_device.
Until now I relied on i2c_del_adapter to unregister the i2c_clients for
me, however, if the i2c bus is a platform bus then it is never deleted.
So instead I need to unregister i2c clients when unregistering the
v4l2_device.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include/media/v4l2-subdev.h')
-rw-r--r-- | include/media/v4l2-subdev.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h index 17856081c809..a503e1cee78b 100644 --- a/include/media/v4l2-subdev.h +++ b/include/media/v4l2-subdev.h | |||
@@ -230,12 +230,16 @@ struct v4l2_subdev_ops { | |||
230 | 230 | ||
231 | #define V4L2_SUBDEV_NAME_SIZE 32 | 231 | #define V4L2_SUBDEV_NAME_SIZE 32 |
232 | 232 | ||
233 | /* Set this flag if this subdev is a i2c device. */ | ||
234 | #define V4L2_SUBDEV_FL_IS_I2C (1U << 0) | ||
235 | |||
233 | /* Each instance of a subdev driver should create this struct, either | 236 | /* Each instance of a subdev driver should create this struct, either |
234 | stand-alone or embedded in a larger struct. | 237 | stand-alone or embedded in a larger struct. |
235 | */ | 238 | */ |
236 | struct v4l2_subdev { | 239 | struct v4l2_subdev { |
237 | struct list_head list; | 240 | struct list_head list; |
238 | struct module *owner; | 241 | struct module *owner; |
242 | u32 flags; | ||
239 | struct v4l2_device *v4l2_dev; | 243 | struct v4l2_device *v4l2_dev; |
240 | const struct v4l2_subdev_ops *ops; | 244 | const struct v4l2_subdev_ops *ops; |
241 | /* name must be unique */ | 245 | /* name must be unique */ |
@@ -264,6 +268,7 @@ static inline void v4l2_subdev_init(struct v4l2_subdev *sd, | |||
264 | BUG_ON(!ops || !ops->core); | 268 | BUG_ON(!ops || !ops->core); |
265 | sd->ops = ops; | 269 | sd->ops = ops; |
266 | sd->v4l2_dev = NULL; | 270 | sd->v4l2_dev = NULL; |
271 | sd->flags = 0; | ||
267 | sd->name[0] = '\0'; | 272 | sd->name[0] = '\0'; |
268 | sd->grp_id = 0; | 273 | sd->grp_id = 0; |
269 | sd->priv = NULL; | 274 | sd->priv = NULL; |