Lines Matching refs:xfer

946 					struct exynos_dsi_transfer *xfer)  in exynos_dsi_send_to_fifo()  argument
949 const u8 *payload = xfer->tx_payload + xfer->tx_done; in exynos_dsi_send_to_fifo()
950 u16 length = xfer->tx_len - xfer->tx_done; in exynos_dsi_send_to_fifo()
951 bool first = !xfer->tx_done; in exynos_dsi_send_to_fifo()
955 xfer, xfer->tx_len, xfer->tx_done, xfer->rx_len, xfer->rx_done); in exynos_dsi_send_to_fifo()
960 xfer->tx_done += length; in exynos_dsi_send_to_fifo()
992 reg = (xfer->data[1] << 16) | (xfer->data[0] << 8) | xfer->data_id; in exynos_dsi_send_to_fifo()
998 if (NEQV(xfer->flags & MIPI_DSI_MSG_USE_LPM, in exynos_dsi_send_to_fifo()
1000 exynos_dsi_set_cmd_lpm(dsi, xfer->flags & MIPI_DSI_MSG_USE_LPM); in exynos_dsi_send_to_fifo()
1006 if (xfer->flags & MIPI_DSI_MSG_REQ_ACK) in exynos_dsi_send_to_fifo()
1011 struct exynos_dsi_transfer *xfer) in exynos_dsi_read_from_fifo() argument
1013 u8 *payload = xfer->rx_payload + xfer->rx_done; in exynos_dsi_read_from_fifo()
1014 bool first = !xfer->rx_done; in exynos_dsi_read_from_fifo()
1025 if (xfer->rx_len >= 2) { in exynos_dsi_read_from_fifo()
1027 ++xfer->rx_done; in exynos_dsi_read_from_fifo()
1033 ++xfer->rx_done; in exynos_dsi_read_from_fifo()
1034 xfer->rx_len = xfer->rx_done; in exynos_dsi_read_from_fifo()
1035 xfer->result = 0; in exynos_dsi_read_from_fifo()
1040 xfer->result = 0; in exynos_dsi_read_from_fifo()
1045 if (length > xfer->rx_len) { in exynos_dsi_read_from_fifo()
1048 xfer->rx_len, length); in exynos_dsi_read_from_fifo()
1049 length = xfer->rx_len; in exynos_dsi_read_from_fifo()
1050 } else if (length < xfer->rx_len) in exynos_dsi_read_from_fifo()
1051 xfer->rx_len = length; in exynos_dsi_read_from_fifo()
1054 length = xfer->rx_len - xfer->rx_done; in exynos_dsi_read_from_fifo()
1055 xfer->rx_done += length; in exynos_dsi_read_from_fifo()
1082 if (xfer->rx_done == xfer->rx_len) in exynos_dsi_read_from_fifo()
1083 xfer->result = 0; in exynos_dsi_read_from_fifo()
1097 struct exynos_dsi_transfer *xfer; in exynos_dsi_transfer_start() local
1108 xfer = list_first_entry(&dsi->transfer_list, in exynos_dsi_transfer_start()
1113 if (xfer->tx_len && xfer->tx_done == xfer->tx_len) in exynos_dsi_transfer_start()
1117 exynos_dsi_send_to_fifo(dsi, xfer); in exynos_dsi_transfer_start()
1119 if (xfer->tx_len || xfer->rx_len) in exynos_dsi_transfer_start()
1122 xfer->result = 0; in exynos_dsi_transfer_start()
1123 complete(&xfer->completed); in exynos_dsi_transfer_start()
1127 list_del_init(&xfer->list); in exynos_dsi_transfer_start()
1138 struct exynos_dsi_transfer *xfer; in exynos_dsi_transfer_finish() local
1149 xfer = list_first_entry(&dsi->transfer_list, in exynos_dsi_transfer_finish()
1156 xfer, xfer->tx_len, xfer->tx_done, xfer->rx_len, xfer->rx_done); in exynos_dsi_transfer_finish()
1158 if (xfer->tx_done != xfer->tx_len) in exynos_dsi_transfer_finish()
1161 if (xfer->rx_done != xfer->rx_len) in exynos_dsi_transfer_finish()
1162 exynos_dsi_read_from_fifo(dsi, xfer); in exynos_dsi_transfer_finish()
1164 if (xfer->rx_done != xfer->rx_len) in exynos_dsi_transfer_finish()
1169 list_del_init(&xfer->list); in exynos_dsi_transfer_finish()
1174 if (!xfer->rx_len) in exynos_dsi_transfer_finish()
1175 xfer->result = 0; in exynos_dsi_transfer_finish()
1176 complete(&xfer->completed); in exynos_dsi_transfer_finish()
1182 struct exynos_dsi_transfer *xfer) in exynos_dsi_remove_transfer() argument
1190 xfer == list_first_entry(&dsi->transfer_list, in exynos_dsi_remove_transfer()
1192 list_del_init(&xfer->list); in exynos_dsi_remove_transfer()
1200 list_del_init(&xfer->list); in exynos_dsi_remove_transfer()
1206 struct exynos_dsi_transfer *xfer) in exynos_dsi_transfer() argument
1211 xfer->tx_done = 0; in exynos_dsi_transfer()
1212 xfer->rx_done = 0; in exynos_dsi_transfer()
1213 xfer->result = -ETIMEDOUT; in exynos_dsi_transfer()
1214 init_completion(&xfer->completed); in exynos_dsi_transfer()
1219 list_add_tail(&xfer->list, &dsi->transfer_list); in exynos_dsi_transfer()
1226 wait_for_completion_timeout(&xfer->completed, in exynos_dsi_transfer()
1228 if (xfer->result == -ETIMEDOUT) { in exynos_dsi_transfer()
1229 exynos_dsi_remove_transfer(dsi, xfer); in exynos_dsi_transfer()
1230 dev_err(dsi->dev, "xfer timed out: %*ph %*ph\n", 2, xfer->data, in exynos_dsi_transfer()
1231 xfer->tx_len, xfer->tx_payload); in exynos_dsi_transfer()
1236 return xfer->result; in exynos_dsi_transfer()
1414 struct exynos_dsi_transfer xfer; in exynos_dsi_host_transfer() local
1430 xfer.data_id = msg->type | (msg->channel << 6); in exynos_dsi_host_transfer()
1437 xfer.tx_len = 0; in exynos_dsi_host_transfer()
1438 xfer.data[0] = tx_buf[0]; in exynos_dsi_host_transfer()
1439 xfer.data[1] = (msg->tx_len == 2) ? tx_buf[1] : 0; in exynos_dsi_host_transfer()
1441 xfer.tx_len = msg->tx_len; in exynos_dsi_host_transfer()
1442 xfer.data[0] = msg->tx_len & 0xff; in exynos_dsi_host_transfer()
1443 xfer.data[1] = msg->tx_len >> 8; in exynos_dsi_host_transfer()
1444 xfer.tx_payload = msg->tx_buf; in exynos_dsi_host_transfer()
1447 xfer.rx_len = msg->rx_len; in exynos_dsi_host_transfer()
1448 xfer.rx_payload = msg->rx_buf; in exynos_dsi_host_transfer()
1449 xfer.flags = msg->flags; in exynos_dsi_host_transfer()
1451 ret = exynos_dsi_transfer(dsi, &xfer); in exynos_dsi_host_transfer()
1452 return (ret < 0) ? ret : xfer.rx_done; in exynos_dsi_host_transfer()