WSL2-Linux-Kernel/drivers/media/i2c
Hans de Goede 842a240666 media: i2c: ov8865: Fix lockdep error
[ Upstream commit 6e1c9bc9ae ]

ov8865_state_init() calls ov8865_state_mipi_configure() which uses
__v4l2_ctrl_s_ctrl[_int64](). This means that sensor->mutex (which
is also sensor->ctrls.handler.lock) must be locked before calling
ov8865_state_init().

Note ov8865_state_mipi_configure() is also used in other places where
the lock is already held so it cannot be changed itself.

This fixes the following lockdep kernel WARN:

[   13.233421] WARNING: CPU: 0 PID: 8 at drivers/media/v4l2-core/v4l2-ctrls-api.c:833 __v4l2_ctrl_s_ctrl+0x4d/0x60 [videodev]
...
[   13.234063] Call Trace:
[   13.234074]  ov8865_state_configure+0x98b/0xc00 [ov8865]
[   13.234095]  ov8865_probe+0x4b1/0x54c [ov8865]
[   13.234117]  i2c_device_probe+0x13c/0x2d0

Fixes: 11c0d8fdcc ("media: i2c: Add support for the OV8865 image sensor")
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-27 11:03:19 +01:00
..
adv748x media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ccs media: ccs: Implement support for manual LP control 2021-08-04 14:43:51 +02:00
cx25840 media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
et8ek8 media: i2c: et8ek8: use DEVICE_ATTR_RO() helper macro 2021-08-04 14:43:50 +02:00
m5mols media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
s5c73m3 media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
Kconfig media: i2c: ths8200 needs V4L2_ASYNC 2021-11-18 19:16:28 +01:00
Makefile media: i2c: Add ov9282 camera sensor driver 2021-08-04 14:43:50 +02:00
ad5820.c media: i2c: ad5820: simplify getting state container 2020-11-16 10:31:11 +01:00
ad9389b.c media: i2c: ad9389b: convert to i2c_new_dummy_device 2019-08-13 11:45:04 -03:00
adp1653.c media: i2c: adp1653: simplify getting state container 2020-11-16 10:31:11 +01:00
adv7170.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
adv7175.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
adv7180.c media: i2c: adv7180: fix adv7280 BT.656-4 compatibility 2021-07-22 11:40:46 +02:00
adv7183.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
adv7183_regs.h
adv7343.c media: i2c: Convert to new i2c device probe() 2019-08-13 11:54:04 -03:00
adv7343_regs.h
adv7393.c
adv7393_regs.h
adv7511-v4l2.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
adv7604.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
adv7842.c media: adv7842: remove spurious & and fix vga_edid size 2021-06-17 10:25:23 +02:00
ak881x.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ak7375.c media: i2c: ak7375: use pm_runtime_resume_and_get() 2021-05-19 09:51:40 +02:00
aptina-pll.c
aptina-pll.h
bt819.c media: bt819: Reduce amount of F* words in the world 2019-11-05 09:01:17 -03:00
bt856.c
bt866.c
ccs-pll.c Linux 5.11-rc6 2021-02-01 10:03:45 +01: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
cs3308.c
cs5345.c
dw9714.c media: i2c: dw9714: use pm_runtime_resume_and_get() 2021-05-19 09:51:40 +02:00
dw9768.c media: i2c: dw9768: use pm_runtime_resume_and_get() 2021-05-19 09:51:40 +02:00
dw9807-vcm.c media: i2c: dw9807-vcm: use pm_runtime_resume_and_get() 2021-05-19 09:51:40 +02:00
hi556.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
imx208.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
imx214.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
imx219.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
imx258.c media: imx258: Fix getting clock frequency 2021-11-18 19:16:28 +01:00
imx274.c media: i2c: imx274: fix s_frame_interval runtime resume not requested 2022-01-27 11:03:19 +01:00
imx290.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
imx319.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
imx334.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
imx335.c media: i2c: Add imx335 camera sensor driver 2021-08-04 14:43:49 +02:00
imx355.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
imx412.c media: i2c: Add imx412 camera sensor driver 2021-08-04 14:43:50 +02:00
ir-kbd-i2c.c media: ir-kbd-i2c: improve responsiveness of hauppauge zilog receivers 2021-11-18 19:15:53 +01:00
ks0127.c
ks0127.h
lm3560.c
lm3646.c media: lm3646: remove redundant assignment to variable rval 2019-10-24 18:41:31 -03:00
m52790.c
max2175.c media: media/i2c: remove unneeded variable: "ret" 2021-03-11 11:59:43 +01:00
max2175.h media: i2c: Use the correct style for SPDX License Identifier 2019-11-10 17:47:14 +01:00
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: i2c: max9286: Rework comments in .bound() 2021-06-17 11:29:27 +02:00
ml86v7667.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
msp3400-driver.c
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: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
mt9m032.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
mt9m111.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
mt9p031.c media: mt9p031: Fix corrupted frame after restarting stream 2021-11-18 19:16:12 +01:00
mt9t001.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
mt9t112.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
mt9v011.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
mt9v032.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
mt9v111.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
noon010pc30.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov02a10.c i2c/drivers/ov02q10: use HZ macros 2021-09-08 11:50:26 -07:00
ov772x.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov2640.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov2659.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov2680.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov2685.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov2740.c media: ov2740: use group write for digital gain 2021-08-04 14:43:51 +02:00
ov5640.c media: ov5640: Complement yuv mbus formats with their 1X16 versions 2021-08-04 14:43:50 +02:00
ov5645.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov5647.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov5648.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov5670.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov5675.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov5695.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov6650.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov7251.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov7640.c
ov7670.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov7740.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov8856.c media: ov8856: ignore gpio and regulator for ov8856 with ACPI 2021-08-04 14:43:51 +02:00
ov8865.c media: i2c: ov8865: Fix lockdep error 2022-01-27 11:03:19 +01:00
ov9282.c media: i2c: Add ov9282 camera sensor driver 2021-08-04 14:43:50 +02:00
ov9640.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov9640.h media: ov9640: Use the generic clock framework 2021-02-06 09:38:05 +01:00
ov9650.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
ov9734.c media: ov9734: use group write for digital gain 2021-08-04 14:43:51 +02:00
ov13858.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
rdacm20.c media: i2c: rdacm20: Re-work ov10635 reset 2021-06-17 12:08:55 +02:00
rdacm21.c media: i2c: rdacm21: Power up OV10640 before OV490 2021-06-17 11:31:45 +02:00
rj54n1cb0c.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
s5k4ecgx.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
s5k5baf.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
s5k6a3.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
s5k6aa.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
saa711x_regs.h media: i2c: Use the correct style for SPDX License Identifier 2019-11-10 17:47:14 +01:00
saa717x.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
saa6588.c media: subdev: disallow ioctl for saa6588/davinci 2021-06-17 10:18:37 +02:00
saa6752hs.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
saa7110.c
saa7115.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
saa7127.c
saa7185.c
sony-btf-mpx.c
sr030pc30.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
st-mipid02.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
tc358743.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
tc358743_regs.h
tda1997x.c media: TDA1997x: handle short reads of hdmi info frame. 2021-11-18 19:16:28 +01:00
tda1997x_regs.h media: i2c: Use the correct style for SPDX License Identifier 2019-11-10 17:47:14 +01:00
tda7432.c
tda9840.c
tea6415c.c
tea6415c.h
tea6420.c
tea6420.h
ths7303.c
ths8200.c media: i2c: Convert to new i2c device probe() 2019-08-13 11:54:04 -03:00
ths8200_regs.h
tlv320aic23b.c
tvaudio.c
tvp514x.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
tvp514x_regs.h media: media/i2c: fix kerneldoc issues for media i2c headers 2021-03-22 10:23:43 +01:00
tvp5150.c media: i2c: tvp5150: deleted the repeated word 2021-07-12 09:16:35 +02:00
tvp5150_reg.h media: i2c: Use the correct style for SPDX License Identifier 2019-11-10 17:47:14 +01:00
tvp7002.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
tvp7002_reg.h
tw2804.c
tw9903.c
tw9906.c
tw9910.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
uda1342.c
upd64031a.c
upd64083.c
video-i2c.c media: i2c: video-i2c: use pm_runtime_resume_and_get() 2021-05-19 09:51:42 +02:00
vp27smpx.c
vpx3220.c media: vpx3220: make array input_vals static, makes object smaller 2019-11-05 08:48:55 -03:00
vs6624.c media: v4l2-subdev: add subdev-wide state struct 2021-06-17 10:01:27 +02:00
vs6624_regs.h
wm8739.c
wm8775.c