linux/drivers/media/i2c
Jason Chen 8f667d2023 media: ov08x40: Reduce start streaming time
Because video duration involves calculating the streaming time, and i2c
communication incurs too many XTALK register settings every 4 bytes with
i2c START and STOP.

So we have opted switch to the i2c burst method.
This method involves writing the XTALK registers in the order of
the register block.

The start streaming time can be reduced from around 400ms to 150ms

[Sakari Ailus: Drop unneeded dev_dbg().]

Signed-off-by: Jason Chen <jason.z.chen@intel.com>
Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
2024-02-06 14:01:38 +01:00
..
adv748x media: i2c: adv748: Fix kerneldoc 2024-02-05 12:57:45 +01:00
ccs media: i2c: css-quirk.h: Fix kerneldoc 2024-02-05 12:57:45 +01:00
cx25840 media: cx25840: simplify cx23885_dif_setup() 2023-09-27 09:40:01 +02:00
et8ek8 media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
s5c73m3 media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
ad5820.c media: ad5820: Drop unsupported ad5823 from i2c_ and of_device_id tables 2023-07-14 13:07:18 +02:00
adp1653.c media: i2c: adp1653: don't reuse the same node pointer 2023-10-12 10:12:54 +02:00
adv7170.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
adv7175.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
adv7180.c media: adv7180: Fix cppcheck errors 2024-02-05 12:57:44 +01:00
adv7183_regs.h
adv7183.c media: adv7183: Don't set format in sub-device state 2023-12-08 10:04:11 +01:00
adv7343_regs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
adv7343.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
adv7393_regs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
adv7393.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
adv7511-v4l2.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
adv7604.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
adv7842.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
ak881x.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ak7375.c media: i2c: ak7375: Add support for ak7345 2023-12-13 13:21:19 +01:00
alvium-csi2.c media: v4l2-subdev: Fix spelling mistake "heigth" -> "height" 2024-01-22 17:23:59 +01:00
alvium-csi2.h media: i2c: Add support for alvium camera 2023-12-13 13:21:20 +01:00
aptina-pll.c media: i2c: aptina-pll: Remove a useless include 2022-11-25 08:35:48 +00:00
aptina-pll.h
ar0521.c media: i2c: ar0521: fix spellos 2024-01-22 17:23:59 +01:00
bt819.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
bt856.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
bt866.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ccs-pll.c media: ccs-pll: Initialise best_div to avoid a compiler warning 2023-08-10 07:58:33 +02:00
ccs-pll.h media: ccs-pll: Switch from standard integer types to kernel ones 2021-01-12 17:55:28 +01:00
cs53l32a.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
cs3308.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
cs5345.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ds90ub913.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
ds90ub953.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
ds90ub960.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
dw9714.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
dw9719.c media: i2c: Add driver for DW9719 VCM 2023-08-10 07:58:41 +02:00
dw9768.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
dw9807-vcm.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
gc0308.c media: i2c: gc0308: new driver 2023-12-13 13:21:21 +01:00
gc2145.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
hi556.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
hi846.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
hi847.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
imx208.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
imx214.c media: i2c: imx214: convert to use maple tree register cache 2024-02-01 13:38:29 +01:00
imx219.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
imx258.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
imx274.c media: i2c: imx274: convert to use maple tree register cache 2024-02-01 13:38:53 +01:00
imx290.c media: i2c: imx290: Properly encode registers as little-endian 2023-12-13 13:21:19 +01:00
imx296.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
imx319.c media: imx319: Use v4l2_link_freq_to_bitmap helper 2024-02-01 13:42:07 +01:00
imx334.c media: imx334: Use v4l2_link_freq_to_bitmap helper 2024-02-01 13:41:32 +01:00
imx335.c media: i2c: imx335: Support 2592x1940 10-bit mode 2023-12-13 13:21:21 +01:00
imx355.c media: imx355: Use v4l2_link_freq_to_bitmap helper 2024-02-01 13:42:50 +01:00
imx412.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
imx415.c media: i2c: imx415: Add more clock configurations 2024-02-01 13:38:04 +01:00
ir-kbd-i2c.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
isl7998x.c media: i2c: isl7998x: convert to use maple tree register cache 2024-02-01 13:40:22 +01:00
Kconfig media: i2c: imx415: Convert to new CCI register access helpers 2024-02-01 13:37:20 +01:00
ks0127.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ks0127.h
lm3560.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
lm3646.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
m52790.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
Makefile media: i2c: Add driver for OmniVision OV64A40 2023-12-13 13:21:21 +01:00
max2175.c media: i2c: max2175: convert to use maple tree register cache 2024-02-01 13:39:59 +01:00
max2175.h
max9271.c media: i2c: max9271: Introduce wake_up() function 2021-06-17 11:30:21 +02:00
max9271.h media: i2c: max9271: Introduce wake_up() function 2021-06-17 11:30:21 +02:00
max9286.c media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
ml86v7667.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
msp3400-driver.c media: use sizeof() instead of V4L2_SUBDEV_NAME_SIZE 2023-09-27 10:47:22 +02:00
msp3400-driver.h
msp3400-kthreads.c media: msp3400: use semicolons rather than commas to separate statements 2020-11-16 10:31:07 +01:00
mt9m001.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
mt9m111.c media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
mt9m114.c media: i2c: mt9m114: use fsleep() in place of udelay() 2023-12-14 12:40:13 +01:00
mt9p031.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
mt9t112.c media: mt9t112: Don't set format in sub-device state 2023-12-08 10:04:12 +01:00
mt9v011.c media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
mt9v032.c media: i2c: mt9v032: convert to use maple tree register cache 2024-02-01 13:39:14 +01:00
mt9v111.c media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
og01a1b.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
ov01a10.c media: ov01a10: Enable runtime PM before registering async sub-device 2023-12-04 11:21:46 +01:00
ov02a10.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
ov08d10.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
ov08x40.c media: ov08x40: Reduce start streaming time 2024-02-06 14:01:38 +01:00
ov13b10.c media: ov13b10: Enable runtime PM before registering async sub-device 2023-12-04 11:21:46 +01:00
ov64a40.c media: i2c: Add driver for OmniVision OV64A40 2023-12-13 13:21:21 +01:00
ov772x.c media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
ov2640.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
ov2659.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
ov2680.c media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
ov2685.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
ov2740.c media: ov2740: Add a sleep after resetting the sensor 2023-12-13 13:21:20 +01:00
ov4689.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
ov5640.c media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
ov5645.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
ov5647.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
ov5648.c media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
ov5670.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
ov5675.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
ov5693.c media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
ov5695.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
ov6650.c media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
ov7251.c media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
ov7640.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov7670.c media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
ov7740.c media: v4l2-subdev: Turn .[gs]_frame_interval into pad operations 2023-12-13 16:52:35 +01:00
ov8856.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
ov8858.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
ov8865.c media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
ov9282.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
ov9640.c media: ov9640: Don't set format in sub-device state 2023-12-08 10:04:12 +01:00
ov9640.h media: ov9640: Use the generic clock framework 2021-02-06 09:38:05 +01:00
ov9650.c media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
ov9734.c media: ov9734: Enable runtime PM before registering async sub-device 2023-12-04 11:21:46 +01:00
ov13858.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
rdacm20.c media: i2c: drop check because i2c_unregister_device() is NULL safe 2023-10-07 10:55:45 +02:00
rdacm21.c media: i2c: rdacm21: Remove an incorrect fwnode_handle_put() call 2023-09-14 23:31:55 +02:00
rj54n1cb0c.c media: rj54n1cb0c: Don't set format in sub-device state 2023-12-08 10:04:12 +01:00
s5k5baf.c media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
s5k6a3.c media: v4l: subdev: Switch to stream-aware state functions 2023-11-23 18:57:47 +01:00
saa711x_regs.h
saa717x.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
saa6588.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
saa6752hs.c media: saa6752hs: Don't set format in sub-device state 2023-12-08 10:04:11 +01:00
saa7110.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
saa7115.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
saa7127.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
saa7185.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
sony-btf-mpx.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
st-mipid02.c media: i2c: st-mipid02: add Y8 format support 2023-12-04 10:37:47 +01:00
st-vgxy61.c media: i2c: st-vgxy61: Convert to CCI register access helpers 2024-02-01 13:31:04 +01:00
tc358743_regs.h
tc358743.c media: tc358743: register v4l2 async device only after successful setup 2024-02-01 13:20:40 +01:00
tc358746.c media: tc358746: fix the pll calculating function 2024-02-05 12:57:44 +01:00
tda1997x_regs.h media: TDA1997x: replace video detection routine 2021-10-19 08:08:38 +01:00
tda1997x.c media: v4l2-subdev: Rename .init_cfg() operation to .init_state() 2023-12-04 10:37:47 +01:00
tda7432.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tda9840.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tea6415c.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tea6415c.h
tea6420.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tea6420.h
thp7312.c media: i2c: thp7312: Store frame interval in subdev state 2023-12-13 16:52:35 +01:00
ths7303.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ths8200_regs.h
ths8200.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tlv320aic23b.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tvaudio.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tvp514x_regs.h media: media/i2c: fix kerneldoc issues for media i2c headers 2021-03-22 10:23:43 +01:00
tvp514x.c media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval 2023-12-13 16:52:35 +01:00
tvp5150_reg.h
tvp5150.c media: i2c: tvp5150: convert to use maple tree register cache 2024-02-01 13:39:35 +01:00
tvp7002_reg.h
tvp7002.c media: i2c: Fix references to pad config 2023-11-23 18:30:18 +01:00
tw2804.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tw9900.c media: i2c: Introduce a driver for the Techwell TW9900 decoder 2023-12-13 11:04:45 +01:00
tw9903.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tw9906.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tw9910.c media: tw9910: Don't set format in sub-device state 2023-12-08 10:04:12 +01:00
uda1342.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
upd64031a.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
upd64083.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
video-i2c.c media: videobuf2: core: Rename min_buffers_needed field in vb2_queue 2023-12-13 17:31:27 +01:00
vp27smpx.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
vpx3220.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
wm8739.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
wm8775.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00