Hi,<div><br></div><div>I've quickly tried this with the problematic simcards and it seems to do the trick, works just fine.</div><div><br></div><div>nice work.</div><div><br></div><div>Cheers,</div><div>Lukas<br><br><div class="gmail_quote">
On Sun, Dec 18, 2011 at 1:45 AM, Holger Hans Peter Freyther <span dir="ltr"><<a href="mailto:holger@freyther.de">holger@freyther.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 12/16/2011 09:51 AM, Lukas Kuzmiak wrote:<br>
> Hi Harald,<br>
<br>
Hi all,<br>
<br>
tnt has had some issues as well... it looks like if for prot_t_supported==1<br>
the data will not be sent immediately. E.g. a "ih->rctx_must_be_sent = 1;"<br>
appears to work around this. This means that a mixed ATR/APDU URB will be<br>
generated and our adpu_split host code will not be called.<br>
<br>
static enum iso7816_3_state<br>
transition_to_tck(struct iso7816_3_handle *ih)<br>
{<br>
        if (ih->prot_t_supported == 0x01) {<br>
                /* If only T=0 supported, there is no TCK but we<br>
                 * immediately transition to APDUs */<br>
                set_atr_state(ih, ATR_S_DONE);<br>
                return ISO7816_S_WAIT_APDU;<br>
<br>
<br>
My idea of a proper patch was to move a lot into the ATR_S_DONE state<br>
(rctx_must_be_sent, scheduling the tc_etu_set_wtime) but this does not appear<br>
to work properly. So the easiest patch is to add "ih->rctx_must_be_sent = 1"<br>
to the above code path.<br>
<br>
cheers<br>
<span class="HOEnZb"><font color="#888888">        holger<br>
<br>
<br>
</font></span></blockquote></div><br></div>