<p>fixeria <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/21441">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  pespin: Looks good to me, but someone else must approve
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">power_control: generalize power control state structure<br><br>Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52<br>Related: SYS#4918<br>---<br>M include/osmo-bts/gsm_data.h<br>M src/common/power_control.c<br>M tests/power/ms_power_loop_test.c<br>3 files changed, 13 insertions(+), 10 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h</span><br><span>index 64102f5..04c6629 100644</span><br><span>--- a/include/osmo-bts/gsm_data.h</span><br><span>+++ b/include/osmo-bts/gsm_data.h</span><br><span>@@ -161,6 +161,15 @@</span><br><span>        uint32_t fn;</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+struct lchan_power_ctrl_state {</span><br><span style="color: hsl(120, 100%, 40%);">+       uint8_t current;</span><br><span style="color: hsl(120, 100%, 40%);">+      uint8_t max;</span><br><span style="color: hsl(120, 100%, 40%);">+  bool fixed;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Scaled up (100 times) average UL/DL RxLev (in dBm) */</span><br><span style="color: hsl(120, 100%, 40%);">+      int avg100_rxlev_dbm;</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> struct gsm_lchan {</span><br><span>    /* The TS that we're part of */</span><br><span>  struct gsm_bts_trx_ts *ts;</span><br><span>@@ -306,15 +315,9 @@</span><br><span>    enum lchan_rel_act_kind rel_act_kind;</span><br><span>        /* RTP header Marker bit to indicate beginning of speech after pause  */</span><br><span>     bool rtp_tx_marker;</span><br><span style="color: hsl(0, 100%, 40%);">-     /* power handling */</span><br><span style="color: hsl(0, 100%, 40%);">-    struct {</span><br><span style="color: hsl(0, 100%, 40%);">-                uint8_t current;</span><br><span style="color: hsl(0, 100%, 40%);">-                uint8_t max;</span><br><span style="color: hsl(0, 100%, 40%);">-            bool fixed;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-         /* Scaled up (100 times) average UL RSSI */</span><br><span style="color: hsl(0, 100%, 40%);">-             int avg100_ul_rssi;</span><br><span style="color: hsl(0, 100%, 40%);">-     } ms_power_ctrl;</span><br><span style="color: hsl(120, 100%, 40%);">+      /* MS power control */</span><br><span style="color: hsl(120, 100%, 40%);">+        struct lchan_power_ctrl_state ms_power_ctrl;</span><br><span> </span><br><span>     /* BTS power reduction (in dB) */</span><br><span>    uint8_t bs_power_red;</span><br><span>diff --git a/src/common/power_control.c b/src/common/power_control.c</span><br><span>index e022e59..3328167 100644</span><br><span>--- a/src/common/power_control.c</span><br><span>+++ b/src/common/power_control.c</span><br><span>@@ -79,7 +79,7 @@</span><br><span>                              const int8_t Pwr)</span><br><span> {</span><br><span>        const uint8_t A = bts->ul_power_ctrl.pf.ewma.alpha;</span><br><span style="color: hsl(0, 100%, 40%);">-  int *Avg100 = &lchan->ms_power_ctrl.avg100_ul_rssi;</span><br><span style="color: hsl(120, 100%, 40%);">+    int *Avg100 = &lchan->ms_power_ctrl.avg100_rxlev_dbm;</span><br><span> </span><br><span>     /* We don't have 'Avg[n - 1]' if this is the first run */</span><br><span>        if (lchan->meas.res_nr == 0) {</span><br><span>diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c</span><br><span>index f1b910b..1abe532 100644</span><br><span>--- a/tests/power/ms_power_loop_test.c</span><br><span>+++ b/tests/power/ms_power_loop_test.c</span><br><span>@@ -152,7 +152,7 @@</span><br><span> </span><br><span>     init_test(__func__);</span><br><span>         lchan = &g_trx->ts[0].lchan[0];</span><br><span style="color: hsl(0, 100%, 40%);">-  avg100 = &lchan->ms_power_ctrl.avg100_ul_rssi;</span><br><span style="color: hsl(120, 100%, 40%);">+ avg100 = &lchan->ms_power_ctrl.avg100_rxlev_dbm;</span><br><span> </span><br><span>  g_bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_EWMA;</span><br><span>  g_bts->ul_power_ctrl.pf.ewma.alpha = 20; /* 80% smoothing */</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/21441">change 21441</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-bts/+/21441"/><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-Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 </div>
<div style="display:none"> Gerrit-Change-Number: 21441 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>