diff options
author | Eric Wild <ewild@sysmocom.de> | 2019-11-27 18:33:09 +0100 |
---|---|---|
committer | Eric Wild <ewild@sysmocom.de> | 2019-11-28 13:42:16 +0100 |
commit | fd0baceb95b6dbfad2094dc165e03dffb4acfd19 (patch) | |
tree | c3557e37592db74d4e0cb6647a9a934e2c4283ce | |
parent | 9a2279cf63d6d7feef26711f2dc3d0a1c27e4e86 (diff) |
add a "no rx or tx" state
Change-Id: I27def4feff5a01b751fd48c5aa844ffdbb087f63
-rw-r--r-- | ccid_common/cuart.h | 1 | ||||
-rw-r--r-- | ccid_common/iso7816_fsm.c | 2 | ||||
-rw-r--r-- | sysmoOCTSIM/cuart_driver_asf4_usart_async.c | 2 |
3 files changed, 4 insertions, 1 deletions
diff --git a/ccid_common/cuart.h b/ccid_common/cuart.h index 6c53481..32a8daa 100644 --- a/ccid_common/cuart.h +++ b/ccid_common/cuart.h @@ -23,6 +23,7 @@ extern const struct value_string card_uart_event_vals[]; enum card_uart_ctl { CUART_CTL_RX, /* enable/disable receiver */ + CUART_CTL_NO_RXTX, /* enable/disable receiver */ CUART_CTL_POWER, /* enable/disable ICC power */ CUART_CTL_CLOCK, /* enable/disable ICC clock */ CUART_CTL_CLOCK_FREQ, /* set ICC clock frequency (hz)*/ diff --git a/ccid_common/iso7816_fsm.c b/ccid_common/iso7816_fsm.c index 031f6b0..623193f 100644 --- a/ccid_common/iso7816_fsm.c +++ b/ccid_common/iso7816_fsm.c @@ -305,7 +305,7 @@ static void iso7816_3_wait_tpdu_onenter(struct osmo_fsm_inst *fi, uint32_t prev_ { struct iso7816_3_priv *ip = get_iso7816_3_priv(fi); OSMO_ASSERT(fi->fsm == &iso7816_3_fsm); - card_uart_ctrl(ip->uart, CUART_CTL_RX, false); + card_uart_ctrl(ip->uart, CUART_CTL_NO_RXTX, true); /* reset the TPDU state machine */ osmo_fsm_inst_dispatch(ip->tpdu_fi, ISO7816_E_TPDU_CLEAR_REQ, NULL); } diff --git a/sysmoOCTSIM/cuart_driver_asf4_usart_async.c b/sysmoOCTSIM/cuart_driver_asf4_usart_async.c index a8f8044..21ab5a4 100644 --- a/sysmoOCTSIM/cuart_driver_asf4_usart_async.c +++ b/sysmoOCTSIM/cuart_driver_asf4_usart_async.c @@ -348,6 +348,8 @@ static int asf4_usart_ctrl(struct card_uart *cuart, enum card_uart_ctl ctl, int Sercom *sercom = cuart->u.asf4.usa_pd->device.hw; switch (ctl) { + case CUART_CTL_NO_RXTX: + break; case CUART_CTL_RX: if (arg){ sercom->USART.CTRLB.bit.RXEN = 1; |