Lines Matching refs:msg
86 struct i2c_msg *msg; member
115 struct i2c_msg *msg = id->msg; in sh7760_i2c_irq() local
116 char *data = msg->buf; in sh7760_i2c_irq()
165 if (msg->len <= len) { in sh7760_i2c_irq()
181 while (msg->len && len) { in sh7760_i2c_irq()
183 msg->len--; in sh7760_i2c_irq()
187 if (msg->len) { in sh7760_i2c_irq()
188 len = (msg->len >= FIFO_SIZE) ? FIFO_SIZE - 1 in sh7760_i2c_irq()
189 : msg->len - 1; in sh7760_i2c_irq()
195 if ((fsr & FSR_TEND) && (msg->len < 1)) { in sh7760_i2c_irq()
208 while (msg->len && (IN32(id, I2CTFDR) < FIFO_SIZE)) { in sh7760_i2c_irq()
210 msg->len--; in sh7760_i2c_irq()
213 if (msg->len < 1) { in sh7760_i2c_irq()
217 len = (msg->len >= FIFO_SIZE) ? 2 : 0; in sh7760_i2c_irq()
227 id->msg = NULL; in sh7760_i2c_irq()
248 OUT32(id, I2CMAR, (id->msg->addr << 1) | 1); in sh7760_i2c_mrecv()
251 if (id->msg->len >= FIFO_SIZE) in sh7760_i2c_mrecv()
254 len = id->msg->len - 1; /* trigger before all received */ in sh7760_i2c_mrecv()
274 OUT32(id, I2CMAR, (id->msg->addr << 1) | 0); in sh7760_i2c_msend()
277 if (id->msg->len >= FIFO_SIZE) in sh7760_i2c_msend()
285 while (id->msg->len && IN32(id, I2CTFDR) < FIFO_SIZE) { in sh7760_i2c_msend()
286 OUT32(id, I2CRXTX, *(id->msg->buf)); in sh7760_i2c_msend()
287 (id->msg->len)--; in sh7760_i2c_msend()
288 (id->msg->buf)++; in sh7760_i2c_msend()
295 OUT32(id, I2CFIER, FIER_TEIE | (id->msg->len ? FIER_TXIE : 0)); in sh7760_i2c_msend()
321 id->msg = msgs; in sh7760_i2c_master_xfer()
356 id->msg = NULL; in sh7760_i2c_master_xfer()