diff --git a/ccid_common/cuart.c b/ccid_common/cuart.c
index 393bf55..895717a 100644
--- a/ccid_common/cuart.c
+++ b/ccid_common/cuart.c
@@ -75,7 +75,7 @@
 	return rc;
 }
 
-int card_uart_tx(struct card_uart *cuart, const uint8_t *data, size_t len, bool rx_after_complete)
+int card_uart_tx(struct card_uart *cuart, const uint8_t *data, size_t len)
 {
 	OSMO_ASSERT(cuart);
 	OSMO_ASSERT(cuart->driver);
@@ -87,7 +87,7 @@
 	/* disable receiver to avoid receiving what we transmit */
 	card_uart_ctrl(cuart, CUART_CTL_RX, false);
 
-	return cuart->driver->ops->async_tx(cuart, data, len, rx_after_complete);
+	return cuart->driver->ops->async_tx(cuart, data, len);
 }
 
 int card_uart_rx(struct card_uart *cuart, uint8_t *data, size_t len)
diff --git a/ccid_common/cuart.h b/ccid_common/cuart.h
index c28209f..790c277 100644
--- a/ccid_common/cuart.h
+++ b/ccid_common/cuart.h
@@ -30,7 +30,7 @@
 struct card_uart_ops {
 	int (*open)(struct card_uart *cuart, const char *device_name);
 	int (*close)(struct card_uart *cuart);
-	int (*async_tx)(struct card_uart *cuart, const uint8_t *data, size_t len, bool rx_after_complete);
+	int (*async_tx)(struct card_uart *cuart, const uint8_t *data, size_t len);
 	int (*async_rx)(struct card_uart *cuart, uint8_t *data, size_t len);
 
 	int (*ctrl)(struct card_uart *cuart, enum card_uart_ctl ctl, bool enable);
@@ -93,7 +93,7 @@
 int card_uart_close(struct card_uart *cuart);
 
 /*! Schedule (asynchronous) transmit data via UART; optionally enable Rx after completion */
-int card_uart_tx(struct card_uart *cuart, const uint8_t *data, size_t len, bool rx_after_complete);
+int card_uart_tx(struct card_uart *cuart, const uint8_t *data, size_t len);
 
 /*! Schedule (asynchronous) receive data via UART (after CUART_E_RX_COMPLETE) */
 int card_uart_rx(struct card_uart *cuart, uint8_t *data, size_t len);
diff --git a/ccid_common/iso7816_fsm.c b/ccid_common/iso7816_fsm.c
index f8fe14a..f20cbcd 100644
--- a/ccid_common/iso7816_fsm.c
+++ b/ccid_common/iso7816_fsm.c
@@ -809,7 +809,7 @@
 		LOGPFSML(fi, LOGL_DEBUG, "Transmitting TPDU header %s via UART\n",
 			 osmo_hexdump_nospc((uint8_t *) tpduh, sizeof(*tpduh)));
 		osmo_fsm_inst_state_chg(fi, TPDU_S_TX_HDR, 0, 0);
-		card_uart_tx(ip->uart, (uint8_t *) tpduh, sizeof(*tpduh), true);
+		card_uart_tx(ip->uart, (uint8_t *) tpduh, sizeof(*tpduh));
 		break;
 	default:
 		OSMO_ASSERT(0);
@@ -855,7 +855,7 @@
 		} else if (byte == tpduh->ins) {
 			if (msgb_l2len(tfp->tpdu)) {
 				/* transmit all remaining bytes */
-				card_uart_tx(ip->uart, msgb_l2(tfp->tpdu), msgb_l2len(tfp->tpdu), true);
+				card_uart_tx(ip->uart, msgb_l2(tfp->tpdu), msgb_l2len(tfp->tpdu));
 				osmo_fsm_inst_state_chg(fi, TPDU_S_TX_REMAINING, 0, 0);
 			} else {
 				card_uart_set_rx_threshold(ip->uart, tpduh->p3);
diff --git a/ccid_host/cuart_driver_tty.c b/ccid_host/cuart_driver_tty.c
index 7fc8d3a..3695b58 100644
--- a/ccid_host/cuart_driver_tty.c
+++ b/ccid_host/cuart_driver_tty.c
@@ -220,7 +220,7 @@
 	return 0;
 }
 
-static int tty_uart_async_tx(struct card_uart *cuart, const uint8_t *data, size_t len, bool rx_after)
+static int tty_uart_async_tx(struct card_uart *cuart, const uint8_t *data, size_t len)
 {
 	OSMO_ASSERT(cuart->driver == &tty_uart_driver);
 
diff --git a/ccid_host/cuart_test.c b/ccid_host/cuart_test.c
index 0ed6614..d4d8faf 100644
--- a/ccid_host/cuart_test.c
+++ b/ccid_host/cuart_test.c
@@ -44,7 +44,7 @@
 static void test_apdu(void)
 {
 	const uint8_t select_mf[] = "\xa0\xa4\x04\x00\x02\x3f\x00";
-	card_uart_tx(&g_cuart, select_mf, 5, true);
+	card_uart_tx(&g_cuart, select_mf, 5);
 
 	osmo_select_main(true);
 	sleep(1);
