BZ: 23295
MT9E013_BYTE_MAX(that is, the block bytes for one times read) should be decreased
to 30 to not be bigger than rx fifo depth(=32), if MT9E013_BYTE_MAX >= 32, the OTP
data read from sensor via i2c may be corrupted.
Change-Id: Idbe3bf13ffcf194d8eec95268993afb5155fd488
Orig-Change-Id: Ic857285b0915ef9696345e94244531fe57fab7a2
Signed-off-by: ziyux.jiang <ziyux.jiang@intel.com>
Reviewed-on: http://android.intel.com:8080/34898
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>
msg[1].buf = (u8 *)data;
err = i2c_transfer(client->adapter, msg, 2);
- if (err < 0)
+ if (err != 2) {
+ if (err >= 0)
+ err = -EIO;
goto error;
+ }
/* high byte comes first */
if (len == MT9E013_8BIT) {
#define OTPM_COUNT 0x200
/* Defines for register writes and register array processing */
-#define MT9E013_BYTE_MAX 32
+#define MT9E013_BYTE_MAX 30
#define MT9E013_SHORT_MAX 16
#define I2C_RETRY_COUNT 5
#define MT9E013_TOK_MASK 0xfff0