diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig index 86a303331b17..8544d4264f32 100644 --- a/drivers/media/i2c/Kconfig +++ b/drivers/media/i2c/Kconfig @@ -1044,6 +1044,15 @@ config VIDEO_OS02G10 This is a Video4Linux2 sensor driver for the OmniVision OS02G10 camera. +config VIDEO_OS04A10 + tristate "OmniVision OS04A10 sensor support" + depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API + depends on MEDIA_CAMERA_SUPPORT + select V4L2_FWNODE + help + This is a Video4Linux2 sensor driver for the OmniVision + OS04A10 camera. + config VIDEO_OV2640 tristate "OmniVision OV2640 sensor support" depends on VIDEO_V4L2 && I2C diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile index 656c0597b903..304ecb9f11ec 100644 --- a/drivers/media/i2c/Makefile +++ b/drivers/media/i2c/Makefile @@ -65,6 +65,7 @@ obj-$(CONFIG_VIDEO_SONY_BTF_MPX) += sony-btf-mpx.o obj-$(CONFIG_VIDEO_UPD64031A) += upd64031a.o obj-$(CONFIG_VIDEO_UPD64083) += upd64083.o obj-$(CONFIG_VIDEO_OS02G10) += os02g10.o +obj-$(CONFIG_VIDEO_OS04A10) += os04a10.o obj-$(CONFIG_VIDEO_OV2640) += ov2640.o obj-$(CONFIG_VIDEO_OV2680) += ov2680.o obj-$(CONFIG_VIDEO_OV2685) += ov2685.o diff --git a/drivers/media/i2c/os04a10.c b/drivers/media/i2c/os04a10.c index 5cd5dd9ad2dd..3abef3690521 100644 --- a/drivers/media/i2c/os04a10.c +++ b/drivers/media/i2c/os04a10.c @@ -1174,7 +1174,7 @@ static int os04a10_g_frame_interval(struct v4l2_subdev *sd, return 0; } -static int os04a10_g_mbus_config(struct v4l2_subdev *sd, +static int os04a10_g_mbus_config(struct v4l2_subdev *sd, unsigned int pad_id, struct v4l2_mbus_config *config) { struct os04a10 *os04a10 = to_os04a10(sd); @@ -1191,7 +1191,7 @@ static int os04a10_g_mbus_config(struct v4l2_subdev *sd, V4L2_MBUS_CSI2_CONTINUOUS_CLOCK | V4L2_MBUS_CSI2_CHANNEL_1; - config->type = V4L2_MBUS_CSI2; + config->type = V4L2_MBUS_CSI2_DPHY; config->flags = val; return 0; @@ -1964,7 +1964,6 @@ static const struct v4l2_subdev_core_ops os04a10_core_ops = { static const struct v4l2_subdev_video_ops os04a10_video_ops = { .s_stream = os04a10_s_stream, .g_frame_interval = os04a10_g_frame_interval, - .g_mbus_config = os04a10_g_mbus_config, }; static const struct v4l2_subdev_pad_ops os04a10_pad_ops = { @@ -1973,6 +1972,7 @@ static const struct v4l2_subdev_pad_ops os04a10_pad_ops = { .enum_frame_interval = os04a10_enum_frame_interval, .get_fmt = os04a10_get_fmt, .set_fmt = os04a10_set_fmt, + .get_mbus_config = os04a10_g_mbus_config, }; static const struct v4l2_subdev_ops os04a10_subdev_ops = {