Lines Matching full:async_rx

1005 	struct uarte_async_rx *async_rx = &data->async->rx;  in uarte_nrfx_rx_enable()  local
1018 if (async_rx->enabled || async_rx->discard_fifo) { in uarte_nrfx_rx_enable()
1031 async_rx->usr_buf = buf; in uarte_nrfx_rx_enable()
1041 async_rx->timeout = K_USEC(timeout); in uarte_nrfx_rx_enable()
1045 async_rx->timeout = K_NO_WAIT; in uarte_nrfx_rx_enable()
1048 async_rx->timeout = (timeout == SYS_FOREVER_US) ? in uarte_nrfx_rx_enable()
1050 async_rx->idle_cnt = 0; in uarte_nrfx_rx_enable()
1053 async_rx->timeout_us = timeout; in uarte_nrfx_rx_enable()
1054 async_rx->timeout_slab = timeout / RX_TIMEOUT_DIV; in uarte_nrfx_rx_enable()
1057 async_rx->buf = buf; in uarte_nrfx_rx_enable()
1058 async_rx->buf_len = len; in uarte_nrfx_rx_enable()
1059 async_rx->offset = 0; in uarte_nrfx_rx_enable()
1060 async_rx->next_buf = NULL; in uarte_nrfx_rx_enable()
1061 async_rx->next_buf_len = 0; in uarte_nrfx_rx_enable()
1082 if (async_rx->flush_cnt) { in uarte_nrfx_rx_enable()
1083 int cpy_len = MIN(len, async_rx->flush_cnt); in uarte_nrfx_rx_enable()
1104 async_rx->flush_cnt -= cpy_len; in uarte_nrfx_rx_enable()
1106 async_rx->flush_cnt); in uarte_nrfx_rx_enable()
1110 async_rx->flush_cnt); in uarte_nrfx_rx_enable()
1117 if (!K_TIMEOUT_EQ(async_rx->timeout, K_NO_WAIT)) { in uarte_nrfx_rx_enable()
1119 k_timer_start(&async_rx->timer, async_rx->timeout, in uarte_nrfx_rx_enable()
1132 async_rx->enabled = true; in uarte_nrfx_rx_enable()
1150 struct uarte_async_rx *async_rx = &data->async->rx; in uarte_nrfx_rx_buf_rsp() local
1155 if (async_rx->buf == NULL) { in uarte_nrfx_rx_buf_rsp()
1157 } else if (async_rx->next_buf == NULL) { in uarte_nrfx_rx_buf_rsp()
1166 async_rx->next_usr_buf = buf; in uarte_nrfx_rx_buf_rsp()
1169 async_rx->next_buf = buf; in uarte_nrfx_rx_buf_rsp()
1170 async_rx->next_buf_len = len; in uarte_nrfx_rx_buf_rsp()
1212 struct uarte_async_rx *async_rx = &data->async->rx; in uarte_nrfx_rx_disable() local
1216 if (async_rx->buf == NULL) { in uarte_nrfx_rx_disable()
1220 k_timer_stop(&async_rx->timer); in uarte_nrfx_rx_disable()
1224 if (async_rx->next_buf != NULL) { in uarte_nrfx_rx_disable()
1229 async_rx->enabled = false; in uarte_nrfx_rx_disable()
1230 async_rx->discard_fifo = true; in uarte_nrfx_rx_disable()
1266 struct uarte_async_rx *async_rx = &data->async->rx; in rx_timeout() local
1270 async_rx->idle_cnt = 0; in rx_timeout()
1272 async_rx->idle_cnt++; in rx_timeout()
1281 if (async_rx->idle_cnt == (RX_TIMEOUT_DIV - 1)) { in rx_timeout()
1287 k_timer_start(&async_rx->timer, async_rx->timeout, K_NO_WAIT); in rx_timeout()
1292 struct uarte_async_rx *async_rx = &data->async->rx; in rx_timeout() local
1295 if (async_rx->is_in_irq) { in rx_timeout()
1308 read = async_rx->cnt.cnt; in rx_timeout()
1312 if (read != async_rx->total_byte_cnt) { in rx_timeout()
1313 async_rx->total_byte_cnt = read; in rx_timeout()
1314 async_rx->timeout_left = async_rx->timeout_us; in rx_timeout()
1321 int32_t len = async_rx->total_byte_cnt - async_rx->total_user_byte_cnt; in rx_timeout()
1330 async_rx->cnt.cnt = async_rx->total_user_byte_cnt; in rx_timeout()
1342 if (len + async_rx->offset > async_rx->buf_len) { in rx_timeout()
1343 len = async_rx->buf_len - async_rx->offset; in rx_timeout()
1348 if (clipped || (async_rx->timeout_left < async_rx->timeout_slab)) { in rx_timeout()
1350 if (async_rx->buf != NULL) { in rx_timeout()
1352 async_rx->offset += len; in rx_timeout()
1353 async_rx->total_user_byte_cnt += len; in rx_timeout()
1356 async_rx->timeout_left -= async_rx->timeout_slab; in rx_timeout()
1363 k_timer_stop(&async_rx->timer); in rx_timeout()
1404 struct uarte_async_rx *async_rx = &data->async->rx; in rxstarted_isr() local
1409 if (!K_TIMEOUT_EQ(async_rx->timeout, K_NO_WAIT)) { in rxstarted_isr()
1413 if (async_rx->timeout_us != SYS_FOREVER_US) { in rxstarted_isr()
1414 k_timeout_t timeout = K_USEC(async_rx->timeout_slab); in rxstarted_isr()
1416 async_rx->timeout_left = async_rx->timeout_us; in rxstarted_isr()
1417 k_timer_start(&async_rx->timer, timeout, timeout); in rxstarted_isr()
1427 struct uarte_async_rx *async_rx = &data->async->rx; in endrx_isr() local
1431 async_rx->is_in_irq = true; in endrx_isr()
1437 k_timer_stop(&async_rx->timer); in endrx_isr()
1442 const int rx_amount = nrf_uarte_rx_amount_get(uarte) + async_rx->flush_cnt; in endrx_isr()
1447 dmm_buffer_in_release(config->mem_reg, async_rx->usr_buf, rx_amount, async_rx->buf); in endrx_isr()
1451 async_rx->buf = async_rx->usr_buf; in endrx_isr()
1453 async_rx->flush_cnt = 0; in endrx_isr()
1462 int rx_len = rx_amount - async_rx->offset; in endrx_isr()
1469 async_rx->total_user_byte_cnt += rx_len; in endrx_isr()
1477 rx_buf_release(dev, async_rx->buf); in endrx_isr()
1478 async_rx->buf = async_rx->next_buf; in endrx_isr()
1479 async_rx->buf_len = async_rx->next_buf_len; in endrx_isr()
1481 async_rx->usr_buf = async_rx->next_usr_buf; in endrx_isr()
1483 async_rx->next_buf = NULL; in endrx_isr()
1484 async_rx->next_buf_len = 0; in endrx_isr()
1485 async_rx->offset = 0; in endrx_isr()
1487 if (async_rx->enabled) { in endrx_isr()
1495 if (async_rx->buf) { in endrx_isr()
1513 async_rx->is_in_irq = false; in endrx_isr()
1565 struct uarte_async_rx *async_rx = &data->async->rx; in rxto_isr() local
1567 if (async_rx->buf) { in rxto_isr()
1569 (void)dmm_buffer_in_release(config->mem_reg, async_rx->usr_buf, 0, async_rx->buf); in rxto_isr()
1570 async_rx->buf = async_rx->usr_buf; in rxto_isr()
1572 rx_buf_release(dev, async_rx->buf); in rxto_isr()
1573 async_rx->buf = NULL; in rxto_isr()
1584 async_rx->enabled = false; in rxto_isr()
1585 if (async_rx->discard_fifo) { in rxto_isr()
1586 async_rx->discard_fifo = false; in rxto_isr()
1592 async_rx->total_user_byte_cnt += rx_flush(dev); in rxto_isr()
1596 async_rx->flush_cnt = rx_flush(dev); in rxto_isr()
1736 struct uarte_async_rx *async_rx = &data->async->rx; in uarte_nrfx_isr_async() local
1796 ret = dmm_buffer_in_release(config->mem_reg, async_rx->usr_buf, async_rx->buf_len, in uarte_nrfx_isr_async()
1797 async_rx->buf); in uarte_nrfx_isr_async()
1801 async_rx->buf = async_rx->usr_buf; in uarte_nrfx_isr_async()
1803 notify_uart_rx_rdy(dev, async_rx->buf_len); in uarte_nrfx_isr_async()
1804 rx_buf_release(dev, async_rx->buf); in uarte_nrfx_isr_async()
1805 async_rx->buf_len = 0; in uarte_nrfx_isr_async()
1806 async_rx->buf = NULL; in uarte_nrfx_isr_async()