falconia has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/32182 )
Change subject: bts-{lc15,oc2g,sysmo}: support EFR in repeat_last_sid() ......................................................................
bts-{lc15,oc2g,sysmo}: support EFR in repeat_last_sid()
The function repeat_last_sid() is implemented in the common part, but is only used by osmo-bts-{lc15,oc2g,sysmo} models. These BTS models call this function when they are looking to see if a previously cached SID frame needs to retransmitted on the DL because it is that time according to the SACCH multiframe. Out of non-AMR codecs, this function previously supported only FR1 and HR1, but failed to support EFR. Fix that omission.
Change-Id: Iebcd28e65af889254740757eed9c579392eb1c33 --- M src/common/msg_utils.c 1 file changed, 21 insertions(+), 6 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/82/32182/1
diff --git a/src/common/msg_utils.c b/src/common/msg_utils.c index bd2c4b7..dc4aaa7 100644 --- a/src/common/msg_utils.c +++ b/src/common/msg_utils.c @@ -387,8 +387,10 @@ return fn_chk(lchan->nr ? h1 : h0, fn, lchan->nr ? ARRAY_SIZE(h1) : ARRAY_SIZE(h0)); - } - return false; + } else if (lchan->tch_mode == GSM48_CMODE_SPEECH_EFR) { + return fn_chk(f, fn, ARRAY_SIZE(f)); + } else + return false; }
/*! \brief Check if DTX DL AMR is enabled for a given lchan (it have proper type, @@ -466,10 +468,6 @@ */ uint8_t repeat_last_sid(struct gsm_lchan *lchan, uint8_t *dst, uint32_t fn) { - /* FIXME: add EFR support */ - if (lchan->tch_mode == GSM48_CMODE_SPEECH_EFR) - return 0; - if (lchan->tch_mode != GSM48_CMODE_SPEECH_AMR) { if (dtx_sched_optional(lchan, fn)) return 0;