ov8830: limit i2c transfers to 30 bytes due to i2c driver restrictions
authorTuukka Toivonen <tuukka.toivonen@intel.com>
Fri, 3 Feb 2012 13:13:38 +0000 (15:13 +0200)
committerbuildbot <buildbot@intel.com>
Tue, 21 Feb 2012 01:05:44 +0000 (17:05 -0800)
commitef0a675062a756a79f574e1acb0c462b995c3be3
treec7f8b4480af5086d55573087a86bcf596263072d
parentf36fdfba8f4602fd7ce86017b034edf6826ef6f8
ov8830: limit i2c transfers to 30 bytes due to i2c driver restrictions

BZ: 23715

See also BZ 16310.

The i2c adapter can transfer 32 bytes maximum
at a time, while driver implemets maximum 128
bytes burst transfer length, so i2c driver would
split buffer transfer if buffer length is more than
32 byte. This will cause some problem sometime, since
during two consequtive transfers, if the second transfer
starts at the time when the first transfer completely finishes,
(i2c transfer buffer empty),the i2c controler would start
a new i2c transfer, which include a start/stop signal according to
i2c protocal, but it will break the i2c burst transfer rules
expected by driver.

Change driver's maximum burst length from 128 to 30 bytes
which leaves also a safety margin.

Change-Id: If34a28dc9ea5318bd15769bfeeb501dd36eae7f5
Signed-off-by: Tuukka Toivonen <tuukka.toivonen@intel.com>
Reviewed-on: http://android.intel.com:8080/35311
Reviewed-by: Koski, Anttu <anttu.koski@intel.com>
Tested-by: Koski, Anttu <anttu.koski@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
drivers/media/video/ov8830.h