The v4l2_i2c_subdev_init() sets V4L2_SUBDEV_FL_IS_I2C flag in the subdev->flags. But some drivers overwrite subdev->flags immediately after calling v4l2_i2c_subdev_init(). So V4L2_SUBDEV_FL_IS_I2C is not set after all. This patch series fixes the problem for each driver. Side note: According to the comment in v4l2_device_unregister(), this is problematic only if the device is platform bus device. Device tree or ACPI based devices are not affected. Akinobu Mita (4): media: adv7180: don't clear V4L2_SUBDEV_FL_IS_I2C media: max2175: don't clear V4L2_SUBDEV_FL_IS_I2C media: ov2640: don't clear V4L2_SUBDEV_FL_IS_I2C media: ov5640: don't clear V4L2_SUBDEV_FL_IS_I2C drivers/media/i2c/adv7180.c | 2 +- drivers/media/i2c/max2175.c | 2 +- drivers/media/i2c/ov2640.c | 2 +- drivers/media/i2c/ov5640.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) Cc: Lars-Peter Clausen <lars@xxxxxxxxxx> Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx> Cc: Ramesh Shanmugasundaram <ramesh.shanmugasundaram@xxxxxxxxxxxxxx> Cc: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> -- 2.7.4