From e7194abb9e7f237184aa784b84654ee33549bb69 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sat, 14 Nov 2015 21:03:25 +0100 Subject: [PATCH] card_emu: Ensure to re-set PTS state when coming out of reset --- firmware/src_simtrace/card_emu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/firmware/src_simtrace/card_emu.c b/firmware/src_simtrace/card_emu.c index faa3dc09..5418e3c1 100644 --- a/firmware/src_simtrace/card_emu.c +++ b/firmware/src_simtrace/card_emu.c @@ -143,6 +143,7 @@ struct card_handle { }; 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 @@ static void card_set_state(struct card_handle *ch, 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 @@ void card_emu_io_statechg(struct card_handle *ch, enum card_io io, int active) 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;