diff options
author | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2022-04-14 01:19:43 +0300 |
---|---|---|
committer | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2022-08-18 16:11:03 +0700 |
commit | 016c8b616df0447ba151f7b24294fe16cf18fe79 (patch) | |
tree | 233545b37ffc01b15e57b06dd741801704ee1ea1 /src/osmo-bts-trx/sched_lchan_tchf.c | |
parent | 2baf54dd468d4b2366c809051231b935f305ad2b (diff) |
osmo-bts-trx: amr_loop: trigger the loop unconditionally2022q2
The logic responsible for enabling and disabling the loop appears
to be broken: during my experiments trx_loop_amr_set() was never
called with loop=1. It's not clear what's the motivation behind
this breaker, so I propose to rip it out for now. This patch
finally makes the loop work (confirmed with a TEMS phone).
Related: SYS#5917, OS#4984
Change-Id: I09b649973d4269c4082a4fafa493c37825f95a9c
(cherry picked from commit 541b7525aee81fbeed23be9cddf909ebcca6ed6d)
Diffstat (limited to 'src/osmo-bts-trx/sched_lchan_tchf.c')
-rw-r--r-- | src/osmo-bts-trx/sched_lchan_tchf.c | 13 |
1 files changed, 1 insertions, 12 deletions
diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index 6a90327b..b530d25d 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -384,7 +384,7 @@ struct msgb *tch_dl_dequeue(struct l1sched_ts *l1ts, struct trx_dl_burst_req *br if (msg_tch) { int len; uint8_t cmr_codec; - int cmr, ft, i; + int ft, i; enum osmo_amr_type ft_codec; enum osmo_amr_quality bfi; int8_t sti, cmi; @@ -416,22 +416,11 @@ struct msgb *tch_dl_dequeue(struct l1sched_ts *l1ts, struct trx_dl_burst_req *br LOGL1SB(DL1P, LOGL_ERROR, l1ts, br, "Cannot send invalid AMR payload\n"); goto free_bad_msg; } - cmr = -1; ft = -1; for (i = 0; i < chan_state->codecs; i++) { - if (chan_state->codec[i] == cmr_codec) - cmr = i; if (chan_state->codec[i] == ft_codec) ft = i; } - if (cmr >= 0) { /* new request */ - chan_state->dl_cmr = cmr; - /* disable AMR loop */ - trx_loop_amr_set(chan_state, 0); - } else { - /* enable AMR loop */ - trx_loop_amr_set(chan_state, 1); - } if (ft < 0) { LOGL1SB(DL1P, LOGL_ERROR, l1ts, br, "Codec (FT = %d) of RTP frame not in list\n", ft_codec); |