linux/drivers/media/i2c
Jacopo Mondi ab924af9ac [media] media: i2c: ov772x: Force use of SCCB protocol
Commit e789029761 ("i2c: sh_mobile: don't send a stop condition by
default inside transfers") makes the i2c_sh_mobile I2C-adapter emit a
stop/start sequence between messages in a single transfer only when
explicitly requested with I2C_M_STOP.

This breaks the ov772x driver in the SH4 Migo-R board as the Omnivision
sensor uses the I2C-like SCCB protocol that doesn't support repeated
starts:

i2c-sh_mobile i2c-sh_mobile.0: Transfer request timed out
ov772x 0-0021: Product ID error 92:92

Fix it by marking the client as SCCB, forcing the emission of a
stop/start sequence between all messages.
As I2C_M_STOP requires the I2C adapter to support protocol mangling,
ensure that the I2C_FUNC_PROTOCOL_MANGLING functionality is available.

Tested on SH4 Migo-R board, with OV772x now successfully probing

soc-camera-pdrv soc-camera-pdrv.0: Probing soc-camera-pdrv.0
ov772x 0-0021: ov7725 Product ID 77:21 Manufacturer ID 7f:a2

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Suggested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2017-06-23 08:28:05 -03:00
..
cx25840 [media] cx25840: fix unchecked return values 2017-06-06 07:30:11 -03:00
et8ek8 [media] et8ek8: Export OF device ID as module aliases 2017-04-17 13:05:00 -03:00
m5mols [media] media: i2c: m5mols: m5mols_core: constify v4l2_subdev_pad_ops structures 2017-02-03 09:28:32 -02:00
s5c73m3 [media] v4l: Switch from V4L2 OF not V4L2 fwnode API 2017-06-06 09:58:16 -03:00
smiapp [media] v4l: Switch from V4L2 OF not V4L2 fwnode API 2017-06-06 09:58:16 -03:00
soc_camera [media] media: i2c: ov772x: Force use of SCCB protocol 2017-06-23 08:28:05 -03:00
ad5820.c [media] ad5820: unregister async sub-device 2017-06-08 12:34:17 -03:00
ad9389b.c [media] media/i2c: Delete owner assignment 2016-09-06 16:21:24 -03:00
adp1653.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
adv7170.c [media] adv7170: drop redundant ret local 2017-01-30 15:47:05 -02:00
adv7175.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
adv7180.c [media] media: adv7180: add adv7180cp, adv7180st compatible strings 2017-06-06 16:47:59 -03:00
adv7183_regs.h scripts/spelling.txt: add "swithc" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
adv7183.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02: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] i2c: adv7511: Use cec_get_drvdata() 2017-04-05 15:19:02 -03:00
adv7604.c [media] v4l: Switch from V4L2 OF not V4L2 fwnode API 2017-06-06 09:58:16 -03:00
adv7842.c [media] i2c: adv7842: Use cec_get_drvdata() 2017-04-05 15:19:41 -03:00
ak881x.c [media] drivers: media: i2c: ak881x: constify v4l2_subdev_* structures 2017-02-03 09:33:55 -02:00
aptina-pll.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
aptina-pll.h [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
as3645a.c [media] as3645a: Join string literals back 2017-06-20 08:18:12 -03:00
bt819.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
bt856.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
bt866.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
cs53l32a.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
cs3308.c [media] media/i2c: Delete owner assignment 2016-09-06 16:21:24 -03:00
cs5345.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
dw9714.c [media] dw9714: Initial driver for dw9714 VCM 2017-06-20 08:17:48 -03:00
ir-kbd-i2c.c [media] rc-main: assign driver type during allocation 2017-01-30 13:59:57 -02:00
Kconfig [media] dw9714: Initial driver for dw9714 VCM 2017-06-20 08:17:48 -03:00
ks0127.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
ks0127.h [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
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] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
Makefile [media] dw9714: Initial driver for dw9714 VCM 2017-06-20 08:17:48 -03:00
max2175.c [media] max2175: remove an useless comparision 2017-06-20 07:11:15 -03:00
max2175.h [media] media: i2c: max2175: Add MAX2175 support 2017-06-20 07:02:43 -03:00
ml86v7667.c [media] drivers: media: i2c: ml86v7667: constify v4l2_subdev_* structures 2017-02-03 09:34:43 -02:00
msp3400-driver.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -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] media drivers: annotate fall-through 2017-05-19 07:10:03 -03:00
mt9m032.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
mt9m111.c [media] media: mt9m111: move mt9m111 out of soc_camera 2016-09-09 10:41:17 -03:00
mt9p031.c [media] drivers: media: i2c: constify v4l2_subdev_* structures 2017-02-03 09:23:19 -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: Switch from V4L2 OF not V4L2 fwnode API 2017-06-06 09:58:16 -03:00
noon010pc30.c [media] drivers: media: i2c: constify v4l2_subdev_* structures 2017-02-03 09:23:19 -02:00
ov2640.c [media] ov2640: print error if devm_*_optional*() fails 2017-04-25 07:08:21 -03:00
ov2659.c [media] v4l: Switch from V4L2 OF not V4L2 fwnode API 2017-06-06 09:58:16 -03:00
ov5640.c [media] add Omnivision OV5640 sensor driver 2017-06-20 07:23:55 -03:00
ov5645.c [media] v4l: Switch from V4L2 OF not V4L2 fwnode API 2017-06-06 09:58:16 -03:00
ov5647.c [media] v4l: Switch from V4L2 OF not V4L2 fwnode API 2017-06-06 09:58:16 -03:00
ov7640.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
ov7670.c [media] ov7670: add devicetree support 2017-04-10 07:54:06 -03:00
ov9650.c [media] ov9650: use msleep() for uncritical long delay 2017-01-31 11:54:47 -02:00
ov13858.c [media] ov13858: remove duplicated const declaration 2017-06-20 08:50:43 -03:00
s5k4ecgx.c [media] media/i2c: Delete owner assignment 2016-09-06 16:21:24 -03:00
s5k5baf.c [media] v4l: Switch from V4L2 OF not V4L2 fwnode API 2017-06-06 09:58:16 -03:00
s5k6a3.c [media] drivers: media: i2c: constify v4l2_subdev_* structures 2017-02-03 09:23:19 -02:00
s5k6aa.c [media] s5k6aa: set usleep_range() range greater than 0 2017-06-13 14:20:50 -03:00
saa711x_regs.h [media] saa7115: Implement i2c_board_info.platform_data 2013-08-18 08:27:07 -03:00
saa717x.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
saa6588.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
saa6752hs.c [media] i2c: Drop owner assignment from i2c_driver 2015-08-11 13:00:15 -03:00
saa7110.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
saa7115.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
saa7127.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
saa7185.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02: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] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
sr030pc30.c [media] include/media: split I2C headers from V4L2 core 2015-11-17 06:57:11 -02:00
tc358743_regs.h [media] tc358743: Disable HDCP with "manual HDCP authentication" bit 2017-02-03 11:16:02 -02:00
tc358743.c [media] i2c: tc358743: remove useless variable assignment in tc358743_isr 2017-06-20 09:06:44 -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 [media] media: i2c: ths8200: driver for TI video encoder 2013-06-17 09:52:31 -03:00
ths8200.c [media] media/i2c: Delete owner assignment 2016-09-06 16:21:24 -03:00
tlv320aic23b.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
tvaudio.c [media] tvaudio: mark printk continuation lines as such 2016-10-21 08:51:29 -02:00
tvp514x_regs.h [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
tvp514x.c [media] v4l: Switch from V4L2 OF not V4L2 fwnode API 2017-06-06 09:58:16 -03:00
tvp5150_reg.h [media] v4l: tvp5150: Fix comment regarding output pin muxing 2016-12-21 07:31:49 -02:00
tvp5150.c [media] v4l: Switch from V4L2 OF not V4L2 fwnode API 2017-06-06 09:58:16 -03:00
tvp7002_reg.h [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
tvp7002.c [media] v4l: Switch from V4L2 OF not V4L2 fwnode API 2017-06-06 09:58:16 -03:00
tw2804.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
tw9903.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
tw9906.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
uda1342.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
upd64031a.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
upd64083.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
vp27smpx.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
vpx3220.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
vs6624_regs.h [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
vs6624.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
wm8739.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
wm8775.c [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00