[PORT FROM R2] mt9e013: mt9m114: fix i2c burst transfer error
authorTao Jing <jing.tao@intel.com>
Mon, 16 Jan 2012 06:18:52 +0000 (14:18 +0800)
committerbuildbot <buildbot@intel.com>
Fri, 20 Jan 2012 19:08:22 +0000 (11:08 -0800)
BZ: 20773

ORIG_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 t0 32 bytes for both
sensors.

Change-Id: I27df255211161b20d441825397e43a88eb4774cf
Orig-Change-Id: I9035825c326c85700bcb0e66d9954588e5459cc4
Signed-off-by: Tao Jing <jing.tao@intel.com>
Reviewed-on: http://android.intel.com:8080/31997
Reviewed-by: Wang, Wen W <wen.w.wang@intel.com>
Reviewed-by: Jong-a-lock, Robert <robert.jong-a-lock@intel.com>
Tested-by: Lampila, KalleX <kallex.lampila@intel.com>
Reviewed-by: Cohen, David A <david.a.cohen@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
Reviewed-on: http://android.intel.com:8080/32601
Reviewed-by: Lampila, KalleX <kallex.lampila@intel.com>
drivers/media/video/mt9e013.h
drivers/media/video/mt9m114.h

index eeb64b3..8e5c5bb 100644 (file)
@@ -388,7 +388,7 @@ struct mt9e013_device {
        void *otp_data;
 };
 
-#define MT9E013_MAX_WRITE_BUF_SIZE     128
+#define MT9E013_MAX_WRITE_BUF_SIZE     32
 struct mt9e013_write_buffer {
        u16 addr;
        u8 data[MT9E013_MAX_WRITE_BUF_SIZE];
index 547a293..4563bcb 100644 (file)
@@ -276,7 +276,7 @@ struct mt9m114_control {
        int (*tweak)(struct v4l2_subdev *sd, int value);
 };
 
-#define MT9M114_MAX_WRITE_BUF_SIZE     128
+#define MT9M114_MAX_WRITE_BUF_SIZE     32
 struct mt9m114_write_buffer {
        u16 addr;
        u8 data[MT9M114_MAX_WRITE_BUF_SIZE];