Attention is currently required from: fixeria, dexter. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/27777 )
Change subject: osmo-bts-trx: amr_loop: trigger the loop unconditionally ......................................................................
Patch Set 1:
(1 comment)
File src/osmo-bts-trx/sched_lchan_tchf.c:
https://gerrit.osmocom.org/c/osmo-bts/+/27777/comment/8cc5bec2_3372520f PS1, Line 462: if (chan_state->codec[i] == cmr_codec)
To me it reads as: if the decoded CMR value is present in the list of allowed codec modes, then we d […]
well, it first checks _if_ the CMR (sent in DL, but relevant to UL) is part of the active set. And if it is, then we communicate it to the MS as CMR in DL.
The problem is now that the loop is disabled all the time, rather than only if a new CMR (differing from previous CMR) is sent. So the condition is wrong. The comment even says "new request". But it in fact checks whether it is any valid CMR request, not just a new request.
I would change the predicate to 'if (cmr != chan_state->dl_cmr)'