card_emu: Ensure to re-set PTS state when coming out of reset
diff --git a/firmware/src_simtrace/card_emu.c b/firmware/src_simtrace/card_emu.c
index faa3dc0..5418e3c 100644
--- a/firmware/src_simtrace/card_emu.c
+++ b/firmware/src_simtrace/card_emu.c
@@ -143,6 +143,7 @@
};
static void set_tpdu_state(struct card_handle *ch, enum tpdu_state new_ts);
+static void set_pts_state(struct card_handle *ch, enum pts_state new_ptss);
static void update_fidi(struct card_handle *ch)
{
@@ -172,6 +173,7 @@
card_emu_uart_enable(ch->uart_chan, 0);
break;
case ISO_S_WAIT_ATR:
+ set_pts_state(ch, PTS_S_WAIT_REQ_PTSS);
/* Reset to initial Fi / Di ratio */
ch->fi = 1;
ch->di = 1;
@@ -649,8 +651,8 @@
case CARD_IO_RST:
if (active == 0 && ch->in_reset &&
ch->vcc_active && ch->clocked) {
+ card_set_state(ch, ISO_S_WAIT_ATR);
/* FIXME: wait 400 clocks */
- //card_set_state(ch, ISO_S_WAIT_ATR);
card_set_state(ch, ISO_S_IN_ATR);
}
ch->in_reset = active;