Lines Matching refs:msg
118 struct i2c_msg *msg; member
140 if (!qup->msg) { in qup_i2c_interrupt()
247 static void qup_i2c_set_write_mode(struct qup_i2c_dev *qup, struct i2c_msg *msg) in qup_i2c_set_write_mode() argument
250 int total = msg->len + 1; in qup_i2c_set_write_mode()
264 static void qup_i2c_issue_write(struct qup_i2c_dev *qup, struct i2c_msg *msg) in qup_i2c_issue_write() argument
266 u32 addr = msg->addr << 1; in qup_i2c_issue_write()
280 while (qup->pos < msg->len) { in qup_i2c_issue_write()
286 if (qup->pos == msg->len - 1) in qup_i2c_issue_write()
292 val |= (qup_tag | msg->buf[qup->pos]) << QUP_MSW_SHIFT; in qup_i2c_issue_write()
294 val = qup_tag | msg->buf[qup->pos]; in qup_i2c_issue_write()
297 if (idx & 1 || qup->pos == msg->len - 1) in qup_i2c_issue_write()
305 static int qup_i2c_write_one(struct qup_i2c_dev *qup, struct i2c_msg *msg) in qup_i2c_write_one() argument
310 qup->msg = msg; in qup_i2c_write_one()
315 qup_i2c_set_write_mode(qup, msg); in qup_i2c_write_one()
328 qup_i2c_issue_write(qup, msg); in qup_i2c_write_one()
343 dev_err(qup->dev, "NACK from %x\n", msg->addr); in qup_i2c_write_one()
347 } while (qup->pos < msg->len); in qup_i2c_write_one()
354 qup->msg = NULL; in qup_i2c_write_one()
373 static void qup_i2c_issue_read(struct qup_i2c_dev *qup, struct i2c_msg *msg) in qup_i2c_issue_read() argument
377 addr = (msg->addr << 1) | 1; in qup_i2c_issue_read()
380 len = (msg->len == QUP_READ_LIMIT) ? 0 : msg->len; in qup_i2c_issue_read()
387 static void qup_i2c_read_fifo(struct qup_i2c_dev *qup, struct i2c_msg *msg) in qup_i2c_read_fifo() argument
393 for (idx = 0; qup->pos < msg->len; idx++) { in qup_i2c_read_fifo()
403 msg->buf[qup->pos++] = val & 0xFF; in qup_i2c_read_fifo()
405 msg->buf[qup->pos++] = val >> QUP_MSW_SHIFT; in qup_i2c_read_fifo()
410 static int qup_i2c_read_one(struct qup_i2c_dev *qup, struct i2c_msg *msg) in qup_i2c_read_one() argument
415 qup->msg = msg; in qup_i2c_read_one()
420 qup_i2c_set_read_mode(qup, msg->len); in qup_i2c_read_one()
432 qup_i2c_issue_read(qup, msg); in qup_i2c_read_one()
448 dev_err(qup->dev, "NACK from %x\n", msg->addr); in qup_i2c_read_one()
453 qup_i2c_read_fifo(qup, msg); in qup_i2c_read_one()
454 } while (qup->pos < msg->len); in qup_i2c_read_one()
458 qup->msg = NULL; in qup_i2c_read_one()