Messages in this thread | | | From | "Sricharan" <> | Subject | RE: [PATCH v2 2/2] i2c: qup: support SMBus block read | Date | Fri, 20 May 2016 14:01:17 +0530 |
| |
Hi,
<snip..> >>> @@ -1128,6 +1173,22 @@ static int qup_i2c_read_one_v2(struct >>> qup_i2c_dev *qup, struct i2c_msg *msg) >>> goto err; >>> >>> qup->blk.pos++; >>> + >>> + /* Handle SMBus block read length */ >>> + if (qup_i2c_check_msg_len(msg) && (msg->len == 1)) { >>> + if (msg->buf[0] > I2C_SMBUS_BLOCK_MAX) { >>> + ret = -EPROTO; >>> + goto err; >>> + } >>> + msg->len += msg->buf[0]; >>> + qup->pos = 0; >>> + qup_i2c_set_read_mode_v2(qup, msg->len); >>> + qup_i2c_issue_xfer_v2(qup, msg); >>> + ret = qup_i2c_wait_for_complete(qup, msg); >>> + if (ret) >>> + goto err; >> Is the issue_xfer_v2 needed inside this here ? >No, qup_i2c_issue_xfer_v2 is needed so that we read rest of the data >that is indicated by the length we read earlier.
So qup_i2c_issue_xfer_v2 writes the tags and there is one already in the loop above this check. So if you just do qup_i2c_set_read_mode_v2 and qup_i2c_set_blk_data inside this check, will not be enough ?
Regards, Sricharan
| |