<p>Pau Espin Pedrol <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/11766">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Neels Hofmeyr: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bts-trx: setup timer once at creation time<br><br>The setup is only needed once, so no need to set it every time we want<br>to schedule it.<br>Furthermore, it will ease new code introduced in follow-up patches,<br>which will schedule this timer under some circumstances without need to<br>send a message at the same time (because re-try of a cmd after a delay<br>is wanted).<br><br>This commit adds an alloc function and an init function to keep<br>different parts of the code decoupled and avoid exposing more<br>implementation details between them (like exposing the trx_if timer).<br><br>Change-Id: I3b6461d0130d25284e673c5efce0b3832c48bbb5<br>---<br>M src/osmo-bts-trx/l1_if.c<br>M src/osmo-bts-trx/l1_if.h<br>M src/osmo-bts-trx/main.c<br>M src/osmo-bts-trx/trx_if.c<br>M src/osmo-bts-trx/trx_if.h<br>5 files changed, 17 insertions(+), 6 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c</span><br><span>index faff3a0..b4ca54f 100644</span><br><span>--- a/src/osmo-bts-trx/l1_if.c</span><br><span>+++ b/src/osmo-bts-trx/l1_if.c</span><br><span>@@ -58,6 +58,14 @@</span><br><span>    [GSM_PCHAN_UNKNOWN]             = 0,</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+struct trx_l1h *trx_l1h_alloc(void *tall_ctx, struct phy_instance *pinst)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  struct trx_l1h *l1h;</span><br><span style="color: hsl(120, 100%, 40%);">+  l1h = talloc_zero(tall_ctx, struct trx_l1h);</span><br><span style="color: hsl(120, 100%, 40%);">+  l1h->phy_inst = pinst;</span><br><span style="color: hsl(120, 100%, 40%);">+     trx_if_init(l1h);</span><br><span style="color: hsl(120, 100%, 40%);">+     return l1h;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span> </span><br><span> static void check_transceiver_availability_trx(struct trx_l1h *l1h, int avail)</span><br><span> {</span><br><span>diff --git a/src/osmo-bts-trx/l1_if.h b/src/osmo-bts-trx/l1_if.h</span><br><span>index 77c5936..165f9d8 100644</span><br><span>--- a/src/osmo-bts-trx/l1_if.h</span><br><span>+++ b/src/osmo-bts-trx/l1_if.h</span><br><span>@@ -64,6 +64,7 @@</span><br><span>   struct l1sched_trx      l1s;</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+struct trx_l1h *trx_l1h_alloc(void *tall_ctx, struct phy_instance *pinst);</span><br><span> int check_transceiver_availability(struct gsm_bts *bts, int avail);</span><br><span> int l1if_provision_transceiver_trx(struct trx_l1h *l1h);</span><br><span> int l1if_provision_transceiver(struct gsm_bts *bts);</span><br><span>diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c</span><br><span>index 98f460e..9529190 100644</span><br><span>--- a/src/osmo-bts-trx/main.c</span><br><span>+++ b/src/osmo-bts-trx/main.c</span><br><span>@@ -139,8 +139,7 @@</span><br><span> void bts_model_phy_instance_set_defaults(struct phy_instance *pinst)</span><br><span> {</span><br><span>    struct trx_l1h *l1h;</span><br><span style="color: hsl(0, 100%, 40%);">-    l1h = talloc_zero(tall_bts_ctx, struct trx_l1h);</span><br><span style="color: hsl(0, 100%, 40%);">-        l1h->phy_inst = pinst;</span><br><span style="color: hsl(120, 100%, 40%);">+     l1h = trx_l1h_alloc(tall_bts_ctx, pinst);</span><br><span>    pinst->u.osmotrx.hdl = l1h;</span><br><span> </span><br><span>   l1h->config.power_oml = 1;</span><br><span>diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c</span><br><span>index 4bcdfc6..b409d51 100644</span><br><span>--- a/src/osmo-bts-trx/trx_if.c</span><br><span>+++ b/src/osmo-bts-trx/trx_if.c</span><br><span>@@ -140,8 +140,6 @@</span><br><span>  * TRX ctrl socket</span><br><span>  */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void trx_ctrl_timer_cb(void *data);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> /* send first ctrl message and start timer */</span><br><span> static void trx_ctrl_send(struct trx_l1h *l1h)</span><br><span> {</span><br><span>@@ -162,8 +160,6 @@</span><br><span>        send(l1h->trx_ofd_ctrl.fd, buf, len+1, 0);</span><br><span> </span><br><span>    /* start timer */</span><br><span style="color: hsl(0, 100%, 40%);">-       l1h->trx_ctrl_timer.cb = trx_ctrl_timer_cb;</span><br><span style="color: hsl(0, 100%, 40%);">-  l1h->trx_ctrl_timer.data = l1h;</span><br><span>   osmo_timer_schedule(&l1h->trx_ctrl_timer, 2, 0);</span><br><span> }</span><br><span> </span><br><span>@@ -184,6 +180,12 @@</span><br><span>      trx_ctrl_send(l1h);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+void trx_if_init(struct trx_l1h *l1h)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+        l1h->trx_ctrl_timer.cb = trx_ctrl_timer_cb;</span><br><span style="color: hsl(120, 100%, 40%);">+        l1h->trx_ctrl_timer.data = l1h;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /*! Send a new TRX control command.</span><br><span>  *  \param[inout] l1h TRX Layer1 handle to which to send command</span><br><span>  *  \param[in] criticial</span><br><span>diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h</span><br><span>index b161044..206f5e5 100644</span><br><span>--- a/src/osmo-bts-trx/trx_if.h</span><br><span>+++ b/src/osmo-bts-trx/trx_if.h</span><br><span>@@ -14,6 +14,7 @@</span><br><span>  int                     critical;</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+void trx_if_init(struct trx_l1h *l1h);</span><br><span> int trx_if_cmd_poweroff(struct trx_l1h *l1h);</span><br><span> int trx_if_cmd_poweron(struct trx_l1h *l1h);</span><br><span> int trx_if_cmd_settsc(struct trx_l1h *l1h, uint8_t tsc);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/11766">change 11766</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/11766"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I3b6461d0130d25284e673c5efce0b3832c48bbb5 </div>
<div style="display:none"> Gerrit-Change-Number: 11766 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-CC: Harald Welte <laforge@gnumonks.org> </div>