linux/drivers/media/i2c
Laurent Pinchart aff808e813 [media] v4l: tvp5150: Reset device at probe time, not in get/set format handlers
The tvp5150 doesn't support format setting through the subdev pad API
and thus implements the set format handler as a get format operation.
The single handler, tvp5150_fill_fmt(), resets the device by calling
tvp5150_reset(). This causes malfunction as the device can be reset at
will, possibly from userspace when the subdev userspace API is enabled.

The reset call was added in commit ec2c4f3f93 ("[media] media:
tvp5150: Add mbus_fmt callbacks"), probably as an attempt to set the
device to a known state before detecting the current TV standard.
However, the get format handler doesn't access the hardware to get the
TV standard since commit 963ddc63e2 ("[media] media: tvp5150: Add
cropping support"). There is thus no need to reset the device when
getting the format.

However, removing the tvp5150_reset() from the get/set format handlers
results in the function not being called at all if the bridge driver
doesn't use the .reset() operation. The operation is nowadays abused and
shouldn't be used, so shouldn't expect bridge drivers to call it. To
make sure the device is properly initialize, move the reset call from
the format handlers to the probe function.

Cc: stable@vger.kernel.org # For Kernel 4.5 and upper
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2016-12-21 07:28:20 -02:00
..
cx25840 [media] cx25840: don't break long lines 2016-10-21 08:51:33 -02:00
m5mols [media] m5mols: potential uninitialized variable 2016-04-13 17:10:59 -03:00
s5c73m3 [media] s5c73m3: Fix entity function assignment for the OIF subdev 2016-09-22 10:15:36 -03:00
smiapp [media] smiapp: Make suspend and resume functions __maybe_unused 2016-12-21 06:53:35 -02:00
soc_camera [media] soc_camera: don't break long lines 2016-10-21 08:51:50 -02:00
ad5820.c [media] ad5820: Fix sparse warning 2016-10-24 17:37:12 -02:00
ad9389b.c [media] media/i2c: Delete owner assignment 2016-09-06 16:21:24 -03:00
adp1653.c remove lots of IS_ERR_VALUE abuses 2016-05-27 15:26:11 -07:00
adv7170.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
adv7175.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
adv7180.c [media] media: adv7180: fill in mbus format in set_fmt 2016-09-19 16:31:04 -03:00
adv7183_regs.h [media] media_tree: Fix spelling errors 2013-12-09 14:50:50 -02:00
adv7183.c [media] media/i2c: Delete owner assignment 2016-09-06 16:21:24 -03:00
adv7343_regs.h [media] drivers: media: i2c: adv7343_regs.h: Fix typo in #ifndef 2014-09-21 20:12:13 -03:00
adv7343.c [media] include/media: split I2C headers from V4L2 core 2015-11-17 06:57:11 -02:00
adv7393_regs.h
adv7393.c [media] media/i2c: Delete owner assignment 2016-09-06 16:21:24 -03:00
adv7511.c [media] cec: pass parent device in register(), not allocate() 2016-11-29 12:07:17 -02:00
adv7604.c [media] cec: pass parent device in register(), not allocate() 2016-11-29 12:07:17 -02:00
adv7842.c [media] cec: pass parent device in register(), not allocate() 2016-11-29 12:07:17 -02:00
ak881x.c [media] v4l2: remove g/s_crop from video ops 2016-08-24 09:46:09 -03:00
aptina-pll.c
aptina-pll.h
as3645a.c [media] media framework: rename pads init function to media_entity_pads_init() 2016-01-11 12:19:03 -02:00
bt819.c [media] include/media: split I2C headers from V4L2 core 2015-11-17 06:57:11 -02:00
bt856.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
bt866.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
cs53l32a.c [media] media/i2c: drop the last users of the ctrl core ops 2016-07-12 11:17:19 -03:00
cs3308.c [media] media/i2c: Delete owner assignment 2016-09-06 16:21:24 -03:00
cs5345.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
ir-kbd-i2c.c rc: print correct variable for z8f0811 2016-11-11 08:45:08 -08:00
Kconfig [media] cec: move the CEC framework out of staging and to media 2016-11-16 15:40:20 -02:00
ks0127.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
ks0127.h
lm3560.c [media] media framework: rename pads init function to media_entity_pads_init() 2016-01-11 12:19:03 -02:00
lm3646.c [media] media framework: rename pads init function to media_entity_pads_init() 2016-01-11 12:19:03 -02:00
m52790.c [media] include/media: split I2C headers from V4L2 core 2015-11-17 06:57:11 -02:00
Makefile [media] media: mt9m111: move mt9m111 out of soc_camera 2016-09-09 10:41:17 -03:00
ml86v7667.c [media] i2c: fix platform_no_drv_owner.cocci warnings 2015-10-03 11:39:48 -03:00
msp3400-driver.c [media] msp3400: convert it to use dev_foo() macros 2016-11-18 10:07:18 -02:00
msp3400-driver.h [media] msp3400: use IS_ENABLED check instead of #if 2016-02-02 14:28:56 -02:00
msp3400-kthreads.c [media] msp3400: convert it to use dev_foo() macros 2016-11-18 10:07:18 -02:00
mt9m032.c [media] media framework: rename pads init function to media_entity_pads_init() 2016-01-11 12:19:03 -02:00
mt9m111.c [media] media: mt9m111: move mt9m111 out of soc_camera 2016-09-09 10:41:17 -03:00
mt9p031.c [media] media framework: rename pads init function to media_entity_pads_init() 2016-01-11 12:19:03 -02:00
mt9t001.c [media] v4l: mt9t001: fix clean up in case of power-on failures 2016-06-28 07:55:39 -03:00
mt9v011.c [media] mt9v011: add media controller support 2016-02-01 07:29:14 -02:00
mt9v032.c [media] v4l: mt9v032: Add V4L2 controls for AEC and AGC 2016-06-28 08:01:51 -03:00
noon010pc30.c [media] media framework: rename pads init function to media_entity_pads_init() 2016-01-11 12:19:03 -02:00
ov2659.c [media] media: i2c: ov2659: speedup probe if no device connected 2016-01-25 15:15:37 -02:00
ov7640.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
ov7670.c [media] include/media: split I2C headers from V4L2 core 2015-11-17 06:57:11 -02:00
ov9650.c [media] ov9650: add support for asynchronous probing 2016-09-19 16:20:02 -03:00
s5k4ecgx.c [media] media/i2c: Delete owner assignment 2016-09-06 16:21:24 -03:00
s5k5baf.c [media] s5k5baf: Check v4l2_of_parse_endpoint() return value 2016-02-01 10:02:40 -02:00
s5k6a3.c [media] s5k6a3: Add missing entity function initialization 2016-09-22 10:15:16 -03:00
s5k6aa.c [media] media framework: rename pads init function to media_entity_pads_init() 2016-01-11 12:19:03 -02:00
saa711x_regs.h [media] saa7115: Implement i2c_board_info.platform_data 2013-08-18 08:27:07 -03:00
saa717x.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
saa6588.c [media] include/media: split I2C headers from V4L2 core 2015-11-17 06:57:11 -02:00
saa6752hs.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
saa7110.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
saa7115.c [media] media/i2c: drop the last users of the ctrl core ops 2016-07-12 11:17:19 -03:00
saa7127.c [media] include/media: split I2C headers from V4L2 core 2015-11-17 06:57:11 -02:00
saa7185.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
smiapp-pll.c [media] smiapp-pll: Don't complain aloud about failing PLL calculation 2016-10-21 15:15:06 -02:00
smiapp-pll.h [media] smiapp-pll: include linux/device.h in smiapp-pll.c, not in smiapp-pll.h 2014-12-23 11:29:01 -02:00
sony-btf-mpx.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
sr030pc30.c [media] include/media: split I2C headers from V4L2 core 2015-11-17 06:57:11 -02:00
tc358743_regs.h [media] Driver for Toshiba TC358743 HDMI to CSI-2 bridge 2015-07-17 09:59:28 -03:00
tc358743.c [media] tc358743: Remove deprecated create_singlethread_workqueue 2016-07-08 15:01:18 -03:00
tda7432.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
tda9840.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
tea6415c.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
tea6415c.h
tea6420.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
tea6420.h
ths7303.c [media] media: i2c: ths7303: remove redundant assignment on bt 2016-05-07 11:47:12 -03:00
ths8200_regs.h
ths8200.c [media] media/i2c: Delete owner assignment 2016-09-06 16:21:24 -03:00
tlv320aic23b.c [media] media/i2c: Delete owner assignment 2016-09-06 16:21:24 -03:00
tvaudio.c [media] tvaudio: mark printk continuation lines as such 2016-10-21 08:51:29 -02:00
tvp514x_regs.h
tvp514x.c [media] media: i2c: tvp514x: Reported mbus format should be MEDIA_BUS_FMT_UYVY8_2X8 2016-10-24 17:30:03 -02:00
tvp5150_reg.h
tvp5150.c [media] v4l: tvp5150: Reset device at probe time, not in get/set format handlers 2016-12-21 07:28:20 -02:00
tvp7002_reg.h
tvp7002.c [media] media/i2c: Delete owner assignment 2016-09-06 16:21:24 -03:00
tw2804.c [media] v4l: subdev: Move [gs]_std operation to video ops 2014-05-24 17:11:26 -03:00
tw9903.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
tw9906.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
uda1342.c [media] include/media: split I2C headers from V4L2 core 2015-11-17 06:57:11 -02:00
upd64031a.c [media] include/media: split I2C headers from V4L2 core 2015-11-17 06:57:11 -02:00
upd64083.c [media] include/media: split I2C headers from V4L2 core 2015-11-17 06:57:11 -02:00
vp27smpx.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
vpx3220.c [media] vpx3220: signedness bug in vpx3220_fp_read() 2016-02-01 07:59:43 -02:00
vs6624_regs.h
vs6624.c [media] media/i2c: Delete owner assignment 2016-09-06 16:21:24 -03:00
wm8739.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
wm8775.c [media] media/i2c: drop the last users of the ctrl core ops 2016-07-12 11:17:19 -03:00