card_uart_tx: Allow caller to specify if Rx should be active after Tx
This reverts commit 02dd9111635a8adbcd804671695de88f22ffa5ae.
Change-Id: Ibe02d283701dbfff5ab47e1b8195369c134cde03
diff --git a/ccid_common/cuart.c b/ccid_common/cuart.c
index 4ea82ba..9a68167 100644
--- a/ccid_common/cuart.c
+++ b/ccid_common/cuart.c
@@ -112,7 +112,7 @@
return rc;
}
-int card_uart_tx(struct card_uart *cuart, const uint8_t *data, size_t len)
+int card_uart_tx(struct card_uart *cuart, const uint8_t *data, size_t len, bool rx_after_complete)
{
OSMO_ASSERT(cuart);
OSMO_ASSERT(cuart->driver);
@@ -121,6 +121,7 @@
OSMO_ASSERT(!cuart->tx_busy);
cuart->tx_busy = true;
+ cuart->rx_after_tx_compl = rx_after_complete;
/* disable receiver to avoid receiving what we transmit */
card_uart_ctrl(cuart, CUART_CTL_RX, false);
@@ -150,7 +151,8 @@
case CUART_E_TX_COMPLETE:
cuart->tx_busy = false;
/* re-enable receiver if we're done with transmit */
- card_uart_ctrl(cuart, CUART_CTL_RX, true);
+ if (cuart->rx_after_tx_compl)
+ card_uart_ctrl(cuart, CUART_CTL_RX, true);
break;
default:
break;