<p>Hoernchen has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/19471">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">ccid: support warm reset<br><br>Change-Id: I4b0a119afcb37edb1d30badc85834165883a12b5<br>---<br>M ccid_common/ccid_slot_fsm.c<br>1 file changed, 26 insertions(+), 15 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/71/19471/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/ccid_common/ccid_slot_fsm.c b/ccid_common/ccid_slot_fsm.c</span><br><span>index dc90a38..13d1139 100644</span><br><span>--- a/ccid_common/ccid_slot_fsm.c</span><br><span>+++ b/ccid_common/ccid_slot_fsm.c</span><br><span>@@ -91,22 +91,33 @@</span><br><span>      ss->seq = ipo->hdr.bSeq;</span><br><span>       LOGPCS(cs, LOGL_DEBUG, "scheduling power-up\n");</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  /* FIXME: do this via a FSM? */</span><br><span style="color: hsl(0, 100%, 40%);">- card_uart_ctrl(ss->cuart, CUART_CTL_RST, true);</span><br><span style="color: hsl(0, 100%, 40%);">-      osmo_fsm_inst_dispatch(ss->fi, ISO7816_E_RESET_ACT_IND, NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-       card_uart_ctrl(ss->cuart, CUART_CTL_POWER, true);</span><br><span style="color: hsl(0, 100%, 40%);">-    osmo_fsm_inst_dispatch(ss->fi, ISO7816_E_POWER_UP_IND, NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-        cs->icc_powered = true;</span><br><span style="color: hsl(0, 100%, 40%);">-      card_uart_ctrl(ss->cuart, CUART_CTL_CLOCK, true);</span><br><span style="color: hsl(0, 100%, 40%);">-#ifdef OCTSIMFWBUILD</span><br><span style="color: hsl(0, 100%, 40%);">-        delay_us(10000);</span><br><span style="color: hsl(0, 100%, 40%);">-#else</span><br><span style="color: hsl(0, 100%, 40%);">-   usleep(10000);</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(120, 100%, 40%);">+  if (! cs->icc_powered) {</span><br><span style="color: hsl(120, 100%, 40%);">+           /* FIXME: do this via a FSM? */</span><br><span style="color: hsl(120, 100%, 40%);">+               card_uart_ctrl(ss->cuart, CUART_CTL_RST, true);</span><br><span style="color: hsl(120, 100%, 40%);">+            osmo_fsm_inst_dispatch(ss->fi, ISO7816_E_RESET_ACT_IND, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+             card_uart_ctrl(ss->cuart, CUART_CTL_POWER, true);</span><br><span style="color: hsl(120, 100%, 40%);">+          osmo_fsm_inst_dispatch(ss->fi, ISO7816_E_POWER_UP_IND, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+              cs->icc_powered = true;</span><br><span style="color: hsl(120, 100%, 40%);">+            card_uart_ctrl(ss->cuart, CUART_CTL_CLOCK, true);</span><br><span style="color: hsl(120, 100%, 40%);">+  #ifdef OCTSIMFWBUILD</span><br><span style="color: hsl(120, 100%, 40%);">+          delay_us(10000);</span><br><span style="color: hsl(120, 100%, 40%);">+      #else</span><br><span style="color: hsl(120, 100%, 40%);">+         usleep(10000);</span><br><span style="color: hsl(120, 100%, 40%);">+        #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      osmo_fsm_inst_dispatch(ss->fi, ISO7816_E_RESET_REL_IND, NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-       card_uart_ctrl(ss->cuart, CUART_CTL_RST, false);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+           osmo_fsm_inst_dispatch(ss->fi, ISO7816_E_RESET_REL_IND, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+             card_uart_ctrl(ss->cuart, CUART_CTL_RST, false);</span><br><span style="color: hsl(120, 100%, 40%);">+   } else { /* warm reset */</span><br><span style="color: hsl(120, 100%, 40%);">+             card_uart_ctrl(ss->cuart, CUART_CTL_RST, true);</span><br><span style="color: hsl(120, 100%, 40%);">+            osmo_fsm_inst_dispatch(ss->fi, ISO7816_E_RESET_ACT_IND, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+     #ifdef OCTSIMFWBUILD</span><br><span style="color: hsl(120, 100%, 40%);">+          delay_us(10000);</span><br><span style="color: hsl(120, 100%, 40%);">+      #else</span><br><span style="color: hsl(120, 100%, 40%);">+         usleep(10000);</span><br><span style="color: hsl(120, 100%, 40%);">+        #endif</span><br><span style="color: hsl(120, 100%, 40%);">+                osmo_fsm_inst_dispatch(ss->fi, ISO7816_E_RESET_REL_IND, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+             card_uart_ctrl(ss->cuart, CUART_CTL_RST, false);</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span>    msgb_free(msg);</span><br><span>      /* continues in iso_fsm_clot_user_cb once ATR is received */</span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/19471">change 19471</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/19471"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ccid-firmware </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I4b0a119afcb37edb1d30badc85834165883a12b5 </div>
<div style="display:none"> Gerrit-Change-Number: 19471 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Hoernchen <ewild@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>