Lines Matching refs:msg

88 static int wait_for_completion(struct twi_regs *twi, struct adi_i2c_msg *msg)  in wait_for_completion()  argument
98 if (msg->alen) { in wait_for_completion()
99 writew(*(msg->abuf++), &twi->xmt_data8); in wait_for_completion()
100 --msg->alen; in wait_for_completion()
101 } else if (!(msg->flags & I2C_M_COMBO) && msg->len) { in wait_for_completion()
102 writew(*(msg->buf++), &twi->xmt_data8); in wait_for_completion()
103 --msg->len; in wait_for_completion()
106 if (msg->flags & I2C_M_COMBO) in wait_for_completion()
115 if (msg->len) { in wait_for_completion()
116 *(msg->buf++) = readw(&twi->rcv_data8); in wait_for_completion()
117 --msg->len; in wait_for_completion()
118 } else if (msg->flags & I2C_M_STOP) { in wait_for_completion()
125 return msg->len; in wait_for_completion()
129 if (msg->flags & I2C_M_COMBO && msg->len) { in wait_for_completion()
132 (min(msg->len, 0xff) << 6) | MEN | MDIR; in wait_for_completion()
144 return msg->len; in wait_for_completion()
158 struct adi_i2c_msg msg = { in i2c_transfer() local
179 if (msg.alen) { in i2c_transfer()
180 len = (msg.flags & I2C_M_COMBO) ? msg.alen : msg.alen + len; in i2c_transfer()
181 writew(*(msg.abuf++), &twi->xmt_data8); in i2c_transfer()
182 --msg.alen; in i2c_transfer()
183 } else if (!(msg.flags & I2C_M_READ) && msg.len) { in i2c_transfer()
184 writew(*(msg.buf++), &twi->xmt_data8); in i2c_transfer()
185 --msg.len; in i2c_transfer()
196 ((msg.flags & I2C_M_READ) ? MDIR : 0); in i2c_transfer()
200 ret = wait_for_completion(twi, &msg); in i2c_transfer()