linux/drivers/media/i2c
Martin Kepplinger 04fc06f6dc media: hi846: fix usage of pm_runtime_get_if_in_use()
pm_runtime_get_if_in_use() does not only return nonzero values when
the device is in use, it can return a negative errno too.

And especially during resuming from system suspend, when runtime pm
is not yet up again, -EAGAIN is being returned, so the subsequent
pm_runtime_put() call results in a refcount underflow.

Fix system-resume by handling -EAGAIN of pm_runtime_get_if_in_use().

Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Fixes: e8c0882685 ("media: i2c: add driver for the SK Hynix Hi-846 8M pixel camera")
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
2023-05-25 16:21:23 +02:00
..
adv748x media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ccs media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
cx25840 media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
et8ek8 media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
s5c73m3 media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ad5820.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
adp1653.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +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: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
adv7183_regs.h
adv7183.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02: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: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
adv7604.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
adv7842.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ak881x.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ak7375.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02: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: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02: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 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 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
dw9714.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +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
hi556.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
hi846.c media: hi846: fix usage of pm_runtime_get_if_in_use() 2023-05-25 16:21:23 +02:00
hi847.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
imx208.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
imx214.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
imx219.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
imx258.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
imx274.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
imx290.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
imx296.c media: i2c: imx296: fix error checking in imx296_read_temperature() 2023-05-25 16:21:21 +02:00
imx319.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
imx334.c media: i2c: imx334: update pixel, hblank and link frequency 2023-05-25 16:21:22 +02:00
imx335.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
imx355.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
imx412.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
imx415.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ir-kbd-i2c.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
isl7998x.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
Kconfig media: i2c: add ov01a10 image sensor driver 2023-05-25 16:21:23 +02: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 ov01a10 image sensor driver 2023-05-25 16:21:23 +02:00
max2175.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02: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: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ml86v7667.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
msp3400-driver.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +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: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
mt9m111.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
mt9p031.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
mt9t112.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
mt9v011.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
mt9v032.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
mt9v111.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
og01a1b.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov01a10.c media: i2c: add ov01a10 image sensor driver 2023-05-25 16:21:23 +02:00
ov02a10.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov08d10.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov08x40.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov13b10.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov772x.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov2640.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov2659.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov2680.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov2685.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov2740.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov4689.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov5640.c media: ov5640: Drop dead code using frame_interval 2023-05-25 16:21:22 +02:00
ov5645.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov5647.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov5648.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov5670.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov5675.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov5693.c media: ov5693: Simplify an error message 2023-05-25 16:21:22 +02:00
ov5695.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov6650.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov7251.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov7640.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov7670.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov7740.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov8856.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov8858.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov8865.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov9282.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov9640.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov9640.h media: ov9640: Use the generic clock framework 2021-02-06 09:38:05 +01:00
ov9650.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov9734.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
ov13858.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
rdacm20.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
rdacm21.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
rj54n1cb0c.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
s5k5baf.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
s5k6a3.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02: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: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02: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: st-mipid02: Propagate format from sink to source pad 2023-05-25 16:21:23 +02:00
st-vgxy61.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tc358743_regs.h
tc358743.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tc358746.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tda1997x_regs.h media: TDA1997x: replace video detection routine 2021-10-19 08:08:38 +01:00
tda1997x.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02: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
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: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tvp5150_reg.h
tvp5150.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tvp7002_reg.h
tvp7002.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
tw2804.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02: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: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02: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: i2c: video: constify pointers to hwmon_channel_info 2023-05-25 16:21:22 +02: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