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;