Lines Matching refs:msg
41 static int edp_msg_fifo_tx(struct edp_aux *aux, struct drm_dp_aux_msg *msg) in edp_msg_fifo_tx() argument
45 bool native = msg->request & (DP_AUX_NATIVE_WRITE & DP_AUX_NATIVE_READ); in edp_msg_fifo_tx()
46 bool read = msg->request & (DP_AUX_I2C_READ & DP_AUX_NATIVE_READ); in edp_msg_fifo_tx()
47 u8 *msgdata = msg->buffer; in edp_msg_fifo_tx()
53 len = msg->size + 4; in edp_msg_fifo_tx()
62 data[0] = (msg->address >> 16) & 0xf; /* addr[19:16] */ in edp_msg_fifo_tx()
66 data[1] = (msg->address >> 8) & 0xff; /* addr[15:8] */ in edp_msg_fifo_tx()
67 data[2] = msg->address & 0xff; /* addr[7:0] */ in edp_msg_fifo_tx()
68 data[3] = (msg->size - 1) & 0xff; /* len[7:0] */ in edp_msg_fifo_tx()
88 static int edp_msg_fifo_rx(struct edp_aux *aux, struct drm_dp_aux_msg *msg) in edp_msg_fifo_rx() argument
93 u32 len = msg->size; in edp_msg_fifo_rx()
98 dp = msg->buffer; in edp_msg_fifo_rx()
118 ssize_t edp_aux_transfer(struct drm_dp_aux *drm_aux, struct drm_dp_aux_msg *msg) in edp_aux_transfer() argument
122 bool native = msg->request & (DP_AUX_NATIVE_WRITE & DP_AUX_NATIVE_READ); in edp_aux_transfer()
123 bool read = msg->request & (DP_AUX_I2C_READ & DP_AUX_NATIVE_READ); in edp_aux_transfer()
126 if ((msg->size == 0) || (msg->buffer == NULL)) { in edp_aux_transfer()
127 msg->reply = native ? in edp_aux_transfer()
129 return msg->size; in edp_aux_transfer()
133 if ((native && (msg->size > AUX_CMD_NATIVE_MAX)) || in edp_aux_transfer()
134 (msg->size > AUX_CMD_I2C_MAX)) { in edp_aux_transfer()
136 __func__, msg->size, msg->request); in edp_aux_transfer()
145 ret = edp_msg_fifo_tx(aux, msg); in edp_aux_transfer()
165 ret = edp_msg_fifo_rx(aux, msg); in edp_aux_transfer()
170 msg->reply = native ? in edp_aux_transfer()
174 msg->reply = native ? in edp_aux_transfer()
184 ret = msg->size; in edp_aux_transfer()