linux/drivers/media
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
..
cec Linux 4.12-rc6 2017-06-20 08:51:56 -03:00
common [media] b2c2: constify nxt200x_config structure 2017-04-17 12:18:18 -03:00
dvb-core [media] dvb_ca_en50221: Fix wrong EXPORT_SYMBOL order 2017-06-07 13:21:25 -03:00
dvb-frontends [media] af9013: refactor power control 2017-06-20 10:35:08 -03:00
firewire [media] firewire: don't break long lines 2016-10-21 10:06:00 -02:00
i2c [media] media: i2c: ov772x: Force use of SCCB protocol 2017-06-23 08:28:05 -03:00
mmc
pci [media] ddbridge: hardware IDs for new C2T2 cards and other devices 2017-06-20 09:59:48 -03:00
platform [media] media: venus: enable building with COMPILE_TEST 2017-06-20 10:57:08 -03:00
radio [media] wl128x: use setup_timer 2017-04-10 14:56:37 -03:00
rc [media] rc-core: cleanup rc_register_device pt2 2017-06-13 13:55:01 -03:00
spi [media] gs1662: drop kfree for memory allocated with devm_kzalloc 2016-10-24 17:59:08 -02:00
tuners [media] xc5000: Don't spin waiting for analog lock 2017-06-06 07:51:05 -03:00
usb [media] af9015: move 2nd demod power-up wait different location 2017-06-20 10:26:13 -03:00
v4l2-core [media] v4l2-core: Use kvmalloc() for potentially big allocations 2017-06-20 09:11:48 -03:00
Kconfig [media] cec: rename MEDIA_CEC_NOTIFIER to CEC_NOTIFIER 2017-06-04 15:23:35 -03:00
Makefile [media] cec: select CEC_CORE instead of depend on it 2017-06-04 15:23:33 -03:00
media-device.c [media] media: Rename graph and pipeline structs and functions 2017-01-27 16:13:24 -02:00
media-devnode.c media: utilize new cdev_device_add helper function 2017-03-21 06:44:33 +01:00
media-entity.c [media] media: entity: Add media_entity_get_fwnode_pad() function 2017-06-20 09:09:37 -03:00