diff options
author | Max <msuraev@sysmocom.de> | 2016-09-17 14:15:03 +0200 |
---|---|---|
committer | Max <msuraev@sysmocom.de> | 2016-09-24 15:09:31 +0200 |
commit | 654175f33bd412671e3ef8cdd65c0689d10f278c (patch) | |
tree | 9861adb1bf44de4ff5edf02025e7fc7795f33218 /src/osmo-bts-litecell15/l1_if.c | |
parent | eb08a87be52bf55a78c12689f1e5c7cff627cbbc (diff) |
DTX: check Marker bit to send ONSET to L1
If Marker bit is set than it's a talkspurt which we have to explicitly
indicate to L1 by first sending ONSET message and than actual voice
data in a separate message.
This change affect sysmobts and LC15 hw.
Change-Id: I88c41568bcb0d82699f617adc4ad192603dd1bb6
Related: OS#1750
Diffstat (limited to 'src/osmo-bts-litecell15/l1_if.c')
-rw-r--r-- | src/osmo-bts-litecell15/l1_if.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/osmo-bts-litecell15/l1_if.c b/src/osmo-bts-litecell15/l1_if.c index 21d047a5..0779dacc 100644 --- a/src/osmo-bts-litecell15/l1_if.c +++ b/src/osmo-bts-litecell15/l1_if.c @@ -469,7 +469,8 @@ static int ph_tch_req(struct gsm_bts_trx *trx, struct msgb *msg, if (!l1if_tch_encode(lchan, l1p->u.phDataReq.msgUnitParam.u8Buffer, &l1p->u.phDataReq.msgUnitParam.u8Size, - msg->data, msg->len, u32Fn)) { + msg->data, msg->len, u32Fn, + l1sap->u.tch.marker)) { msgb_free(nmsg); nmsg = NULL; } @@ -503,7 +504,13 @@ static int ph_tch_req(struct gsm_bts_trx *trx, struct msgb *msg, /* send message to DSP's queue */ osmo_wqueue_enqueue(&fl1->write_q[MQ_L1_WRITE], nmsg); - msgb_free(msg); + if (l1sap->u.tch.marker) { /* Send voice after ONSET was sent */ + l1sap->u.tch.marker = 0; + return ph_tch_req(trx, l1sap->oph.msg, l1sap); + } + + if (msg) + msgb_free(msg); return 0; } |