Lines Matching refs:msg

154 	struct drm_dp_aux_msg msg;  in drm_dp_dpcd_access()  local
158 memset(&msg, 0, sizeof(msg)); in drm_dp_dpcd_access()
159 msg.address = offset; in drm_dp_dpcd_access()
160 msg.request = request; in drm_dp_dpcd_access()
161 msg.buffer = buffer; in drm_dp_dpcd_access()
162 msg.size = size; in drm_dp_dpcd_access()
174 ret = aux->transfer(aux, &msg); in drm_dp_dpcd_access()
176 native_reply = msg.reply & DP_AUX_NATIVE_REPLY_MASK; in drm_dp_dpcd_access()
301 static void drm_dp_i2c_msg_write_status_update(struct drm_dp_aux_msg *msg) in drm_dp_i2c_msg_write_status_update() argument
308 if ((msg->request & ~DP_AUX_I2C_MOT) == DP_AUX_I2C_WRITE) { in drm_dp_i2c_msg_write_status_update()
309 msg->request &= DP_AUX_I2C_MOT; in drm_dp_i2c_msg_write_status_update()
310 msg->request |= DP_AUX_I2C_WRITE_STATUS_UPDATE; in drm_dp_i2c_msg_write_status_update()
314 static int drm_dp_i2c_do_msg(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg) in drm_dp_i2c_do_msg() argument
329 ret = aux->transfer(aux, msg); in drm_dp_i2c_do_msg()
349 switch (msg->reply & DP_AUX_NATIVE_REPLY_MASK) { in drm_dp_i2c_do_msg()
359 aux->name, ret, msg->size); in drm_dp_i2c_do_msg()
378 aux->name, msg->reply); in drm_dp_i2c_do_msg()
382 switch (msg->reply & DP_AUX_I2C_REPLY_MASK) { in drm_dp_i2c_do_msg()
388 if (ret != msg->size) in drm_dp_i2c_do_msg()
389 drm_dp_i2c_msg_write_status_update(msg); in drm_dp_i2c_do_msg()
394 aux->name, ret, msg->size); in drm_dp_i2c_do_msg()
408 drm_dp_i2c_msg_write_status_update(msg); in drm_dp_i2c_do_msg()
414 aux->name, msg->reply); in drm_dp_i2c_do_msg()
423 static void drm_dp_i2c_msg_set_request(struct drm_dp_aux_msg *msg, in drm_dp_i2c_msg_set_request() argument
426 msg->request = (i2c_msg->flags & I2C_M_RD) ? in drm_dp_i2c_msg_set_request()
429 msg->request |= DP_AUX_I2C_MOT; in drm_dp_i2c_msg_set_request()
441 struct drm_dp_aux_msg msg = *orig_msg; in drm_dp_i2c_drain_msg() local
443 while (msg.size > 0) { in drm_dp_i2c_drain_msg()
444 err = drm_dp_i2c_do_msg(aux, &msg); in drm_dp_i2c_drain_msg()
448 if (err < msg.size && err < ret) { in drm_dp_i2c_drain_msg()
450 aux->name, msg.size, err); in drm_dp_i2c_drain_msg()
454 msg.size -= err; in drm_dp_i2c_drain_msg()
455 msg.buffer += err; in drm_dp_i2c_drain_msg()
467 struct drm_dp_aux_msg msg; in drm_dp_i2c_xfer() local
470 memset(&msg, 0, sizeof(msg)); in drm_dp_i2c_xfer()
473 msg.address = msgs[i].addr; in drm_dp_i2c_xfer()
474 drm_dp_i2c_msg_set_request(&msg, &msgs[i]); in drm_dp_i2c_xfer()
479 msg.buffer = NULL; in drm_dp_i2c_xfer()
480 msg.size = 0; in drm_dp_i2c_xfer()
481 err = drm_dp_i2c_do_msg(aux, &msg); in drm_dp_i2c_xfer()
487 drm_dp_i2c_msg_set_request(&msg, &msgs[i]); in drm_dp_i2c_xfer()
496 for (j = 0; j < msgs[i].len; j += msg.size) { in drm_dp_i2c_xfer()
497 msg.buffer = msgs[i].buf + j; in drm_dp_i2c_xfer()
498 msg.size = min(transfer_size, msgs[i].len - j); in drm_dp_i2c_xfer()
500 err = drm_dp_i2c_drain_msg(aux, &msg); in drm_dp_i2c_xfer()
506 drm_dp_i2c_msg_set_request(&msg, &msgs[i]); in drm_dp_i2c_xfer()
521 msg.request &= ~DP_AUX_I2C_MOT; in drm_dp_i2c_xfer()
522 msg.buffer = NULL; in drm_dp_i2c_xfer()
523 msg.size = 0; in drm_dp_i2c_xfer()
524 (void)drm_dp_i2c_do_msg(aux, &msg); in drm_dp_i2c_xfer()