Lines Matching refs:blk
241 struct qup_i2c_block blk; member
283 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_interrupt() local
334 blk->tx_fifo_free += qup->out_blk_sz; in qup_i2c_interrupt()
345 if (!blk->is_rx_blk_mode) { in qup_i2c_interrupt()
346 blk->fifo_available += qup->in_fifo_sz; in qup_i2c_interrupt()
349 blk->fifo_available += qup->in_blk_sz; in qup_i2c_interrupt()
355 if (!blk->rx_bytes_read) in qup_i2c_interrupt()
365 if (blk->is_tx_blk_mode && !(opflags & QUP_MX_OUTPUT_DONE)) in qup_i2c_interrupt()
458 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_write_tx_fifo_v1() local
468 blk->tx_fifo_free--; in qup_i2c_write_tx_fifo_v1()
474 while (blk->tx_fifo_free && qup->pos < msg->len) { in qup_i2c_write_tx_fifo_v1()
491 blk->tx_fifo_free--; in qup_i2c_write_tx_fifo_v1()
498 qup->blk.pos = 0; in qup_i2c_set_blk_data()
499 qup->blk.data_len = msg->len; in qup_i2c_set_blk_data()
500 qup->blk.count = DIV_ROUND_UP(msg->len, qup->blk_xfer_limit); in qup_i2c_set_blk_data()
507 if (qup->blk.data_len > qup->blk_xfer_limit) in qup_i2c_get_data_len()
510 data_len = qup->blk.data_len; in qup_i2c_get_data_len()
549 int last = (qup->blk.pos == (qup->blk.count - 1)) && (qup->is_last); in qup_i2c_set_tags()
555 if (qup->blk.pos == 0) { in qup_i2c_set_tags()
571 tags[len++] = qup->blk.pos == (qup->blk.count - 1) ? in qup_i2c_set_tags()
658 blocks = qup->blk.count; in qup_i2c_bam_make_desc()
662 while (qup->blk.pos < blocks) { in qup_i2c_bam_make_desc()
666 qup->blk.data_len -= tlen; in qup_i2c_bam_make_desc()
684 qup->blk.pos = i; in qup_i2c_bam_make_desc()
694 while (qup->blk.pos < blocks) { in qup_i2c_bam_make_desc()
698 qup->blk.data_len -= tlen; in qup_i2c_bam_make_desc()
713 qup->blk.pos = i; in qup_i2c_bam_make_desc()
917 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_read_rx_fifo_v1() local
922 while (blk->fifo_available && qup->pos < msg->len) { in qup_i2c_read_rx_fifo_v1()
931 blk->fifo_available--; in qup_i2c_read_rx_fifo_v1()
935 blk->rx_bytes_read = true; in qup_i2c_read_rx_fifo_v1()
954 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_conf_v1() local
958 blk->is_tx_blk_mode = blk->total_tx_len > qup->out_fifo_sz; in qup_i2c_conf_v1()
959 blk->is_rx_blk_mode = blk->total_rx_len > qup->in_fifo_sz; in qup_i2c_conf_v1()
961 if (blk->is_tx_blk_mode) { in qup_i2c_conf_v1()
964 writel(blk->total_tx_len, qup->base + QUP_MX_OUTPUT_CNT); in qup_i2c_conf_v1()
967 writel(blk->total_tx_len, qup->base + QUP_MX_WRITE_CNT); in qup_i2c_conf_v1()
970 if (blk->total_rx_len) { in qup_i2c_conf_v1()
971 if (blk->is_rx_blk_mode) { in qup_i2c_conf_v1()
974 writel(blk->total_rx_len, qup->base + QUP_MX_INPUT_CNT); in qup_i2c_conf_v1()
977 writel(blk->total_rx_len, qup->base + QUP_MX_READ_CNT); in qup_i2c_conf_v1()
987 static void qup_i2c_clear_blk_v1(struct qup_i2c_block *blk) in qup_i2c_clear_blk_v1() argument
989 blk->tx_fifo_free = 0; in qup_i2c_clear_blk_v1()
990 blk->fifo_available = 0; in qup_i2c_clear_blk_v1()
991 blk->rx_bytes_read = false; in qup_i2c_clear_blk_v1()
996 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_conf_xfer_v1() local
999 qup_i2c_clear_blk_v1(blk); in qup_i2c_conf_xfer_v1()
1013 if (!blk->is_tx_blk_mode) { in qup_i2c_conf_xfer_v1()
1014 blk->tx_fifo_free = qup->out_fifo_sz; in qup_i2c_conf_xfer_v1()
1040 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_write_one() local
1043 blk->total_tx_len = msg->len + 1; in qup_i2c_write_one()
1044 blk->total_rx_len = 0; in qup_i2c_write_one()
1051 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_read_one() local
1054 blk->total_tx_len = 2; in qup_i2c_read_one()
1055 blk->total_rx_len = qup->msg->len; in qup_i2c_read_one()
1123 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_conf_count_v2() local
1126 if (blk->is_tx_blk_mode) in qup_i2c_conf_count_v2()
1127 writel(qup->config_run | blk->total_tx_len, in qup_i2c_conf_count_v2()
1130 writel(qup->config_run | blk->total_tx_len, in qup_i2c_conf_count_v2()
1133 if (blk->total_rx_len) { in qup_i2c_conf_count_v2()
1134 if (blk->is_rx_blk_mode) in qup_i2c_conf_count_v2()
1135 writel(qup->config_run | blk->total_rx_len, in qup_i2c_conf_count_v2()
1138 writel(qup->config_run | blk->total_rx_len, in qup_i2c_conf_count_v2()
1154 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_conf_mode_v2() local
1157 if (blk->is_tx_blk_mode) { in qup_i2c_conf_mode_v2()
1164 if (blk->is_rx_blk_mode) { in qup_i2c_conf_mode_v2()
1175 static void qup_i2c_clear_blk_v2(struct qup_i2c_block *blk) in qup_i2c_clear_blk_v2() argument
1177 blk->send_last_word = false; in qup_i2c_clear_blk_v2()
1178 blk->tx_tags_sent = false; in qup_i2c_clear_blk_v2()
1179 blk->tx_fifo_data = 0; in qup_i2c_clear_blk_v2()
1180 blk->tx_fifo_data_pos = 0; in qup_i2c_clear_blk_v2()
1181 blk->tx_fifo_free = 0; in qup_i2c_clear_blk_v2()
1183 blk->rx_tags_fetched = false; in qup_i2c_clear_blk_v2()
1184 blk->rx_bytes_read = false; in qup_i2c_clear_blk_v2()
1185 blk->rx_fifo_data = 0; in qup_i2c_clear_blk_v2()
1186 blk->rx_fifo_data_pos = 0; in qup_i2c_clear_blk_v2()
1187 blk->fifo_available = 0; in qup_i2c_clear_blk_v2()
1193 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_recv_data() local
1196 for (j = blk->rx_fifo_data_pos; in qup_i2c_recv_data()
1197 blk->cur_blk_len && blk->fifo_available; in qup_i2c_recv_data()
1198 blk->cur_blk_len--, blk->fifo_available--) { in qup_i2c_recv_data()
1200 blk->rx_fifo_data = readl(qup->base + QUP_IN_FIFO_BASE); in qup_i2c_recv_data()
1202 *(blk->cur_data++) = blk->rx_fifo_data; in qup_i2c_recv_data()
1203 blk->rx_fifo_data >>= 8; in qup_i2c_recv_data()
1211 blk->rx_fifo_data_pos = j; in qup_i2c_recv_data()
1217 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_recv_tags() local
1219 blk->rx_fifo_data = readl(qup->base + QUP_IN_FIFO_BASE); in qup_i2c_recv_tags()
1220 blk->rx_fifo_data >>= blk->rx_tag_len * 8; in qup_i2c_recv_tags()
1221 blk->rx_fifo_data_pos = blk->rx_tag_len; in qup_i2c_recv_tags()
1222 blk->fifo_available -= blk->rx_tag_len; in qup_i2c_recv_tags()
1235 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_read_rx_fifo_v2() local
1237 if (!blk->rx_tags_fetched) { in qup_i2c_read_rx_fifo_v2()
1239 blk->rx_tags_fetched = true; in qup_i2c_read_rx_fifo_v2()
1243 if (!blk->cur_blk_len) in qup_i2c_read_rx_fifo_v2()
1244 blk->rx_bytes_read = true; in qup_i2c_read_rx_fifo_v2()
1255 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_write_blk_data() local
1258 for (j = blk->tx_fifo_data_pos; *len && blk->tx_fifo_free; in qup_i2c_write_blk_data()
1259 (*len)--, blk->tx_fifo_free--) { in qup_i2c_write_blk_data()
1260 blk->tx_fifo_data |= *(*data)++ << (j * 8); in qup_i2c_write_blk_data()
1262 writel(blk->tx_fifo_data, in qup_i2c_write_blk_data()
1264 blk->tx_fifo_data = 0x0; in qup_i2c_write_blk_data()
1271 blk->tx_fifo_data_pos = j; in qup_i2c_write_blk_data()
1277 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_write_rx_tags_v2() local
1279 qup_i2c_write_blk_data(qup, &blk->cur_tx_tags, &blk->tx_tag_len); in qup_i2c_write_rx_tags_v2()
1280 if (blk->tx_fifo_data_pos) in qup_i2c_write_rx_tags_v2()
1281 writel(blk->tx_fifo_data, qup->base + QUP_OUT_FIFO_BASE); in qup_i2c_write_rx_tags_v2()
1308 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_write_tx_fifo_v2() local
1310 if (!blk->tx_tags_sent) { in qup_i2c_write_tx_fifo_v2()
1311 qup_i2c_write_blk_data(qup, &blk->cur_tx_tags, in qup_i2c_write_tx_fifo_v2()
1312 &blk->tx_tag_len); in qup_i2c_write_tx_fifo_v2()
1313 blk->tx_tags_sent = true; in qup_i2c_write_tx_fifo_v2()
1316 if (blk->send_last_word) in qup_i2c_write_tx_fifo_v2()
1319 qup_i2c_write_blk_data(qup, &blk->cur_data, &blk->cur_blk_len); in qup_i2c_write_tx_fifo_v2()
1320 if (!blk->cur_blk_len) { in qup_i2c_write_tx_fifo_v2()
1321 if (!blk->tx_fifo_data_pos) in qup_i2c_write_tx_fifo_v2()
1324 if (blk->tx_fifo_free) in qup_i2c_write_tx_fifo_v2()
1327 blk->send_last_word = true; in qup_i2c_write_tx_fifo_v2()
1333 writel(blk->tx_fifo_data, qup->base + QUP_OUT_FIFO_BASE); in qup_i2c_write_tx_fifo_v2()
1345 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_conf_xfer_v2() local
1361 blk->cur_data += 1; in qup_i2c_conf_xfer_v2()
1370 qup_i2c_clear_blk_v2(blk); in qup_i2c_conf_xfer_v2()
1392 if (!blk->is_tx_blk_mode) { in qup_i2c_conf_xfer_v2()
1393 blk->tx_fifo_free = qup->out_fifo_sz; in qup_i2c_conf_xfer_v2()
1431 struct qup_i2c_block *blk = &qup->blk; in qup_i2c_xfer_v2_msg() local
1437 for (i = 0; i < blk->count; i++) { in qup_i2c_xfer_v2_msg()
1439 blk->pos = i; in qup_i2c_xfer_v2_msg()
1440 blk->cur_tx_tags = blk->tags; in qup_i2c_xfer_v2_msg()
1441 blk->cur_blk_len = data_len; in qup_i2c_xfer_v2_msg()
1442 blk->tx_tag_len = in qup_i2c_xfer_v2_msg()
1443 qup_i2c_set_tags(blk->cur_tx_tags, qup, qup->msg); in qup_i2c_xfer_v2_msg()
1445 blk->cur_data = msg_buf; in qup_i2c_xfer_v2_msg()
1448 blk->total_tx_len = blk->tx_tag_len; in qup_i2c_xfer_v2_msg()
1449 blk->rx_tag_len = 2; in qup_i2c_xfer_v2_msg()
1450 blk->total_rx_len = blk->rx_tag_len + data_len; in qup_i2c_xfer_v2_msg()
1452 blk->total_tx_len = blk->tx_tag_len + data_len; in qup_i2c_xfer_v2_msg()
1453 blk->total_rx_len = 0; in qup_i2c_xfer_v2_msg()
1457 !qup->is_last || i < blk->count - 1); in qup_i2c_xfer_v2_msg()
1478 blk->data_len -= qup->blk_xfer_limit; in qup_i2c_xfer_v2_msg()
1527 qup->blk.is_tx_blk_mode = max_tx_len > qup->out_fifo_sz - in qup_i2c_determine_mode_v2()
1529 qup->blk.is_rx_blk_mode = max_rx_len > qup->in_fifo_sz - in qup_i2c_determine_mode_v2()