summaryrefslogtreecommitdiffstats
path: root/src/target/firmware
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2023-08-31 20:13:46 +0700
committerVadim Yanitskiy <vyanitskiy@sysmocom.de>2023-10-16 14:10:21 +0700
commit069b627abecad7efb4de43e3bad7ceb685d65e89 (patch)
tree160c695eec8e656a17470943852710b4c08f5757 /src/target/firmware
parenta6d0a3e17002598d973c2a887b8f5d219b252943 (diff)
firmware/layer1: handle CSD related channel modes
Diffstat (limited to 'src/target/firmware')
-rw-r--r--src/target/firmware/layer1/async.c4
-rw-r--r--src/target/firmware/layer1/prim_tch.c12
2 files changed, 16 insertions, 0 deletions
diff --git a/src/target/firmware/layer1/async.c b/src/target/firmware/layer1/async.c
index fe8a906c..8d76e5cc 100644
--- a/src/target/firmware/layer1/async.c
+++ b/src/target/firmware/layer1/async.c
@@ -109,6 +109,10 @@ uint8_t l1a_tch_mode_set(uint8_t mode)
switch (mode) {
case GSM48_CMODE_SPEECH_V1:
case GSM48_CMODE_SPEECH_EFR:
+ case GSM48_CMODE_DATA_14k5:
+ case GSM48_CMODE_DATA_12k0:
+ case GSM48_CMODE_DATA_6k0:
+ case GSM48_CMODE_DATA_3k6:
l1s.tch_mode = mode;
break;
default:
diff --git a/src/target/firmware/layer1/prim_tch.c b/src/target/firmware/layer1/prim_tch.c
index c6fbddd3..a33cb58d 100644
--- a/src/target/firmware/layer1/prim_tch.c
+++ b/src/target/firmware/layer1/prim_tch.c
@@ -81,6 +81,18 @@ static void tch_get_params(struct gsm_time *time, uint8_t chan_nr,
case GSM48_CMODE_SPEECH_EFR:
*tch_mode = *tch_f_hn ? TCH_EFR_MODE : SIG_ONLY_MODE;
break;
+ case GSM48_CMODE_DATA_14k5:
+ *tch_mode = *tch_f_hn ? TCH_144_MODE : SIG_ONLY_MODE;
+ break;
+ case GSM48_CMODE_DATA_12k0:
+ *tch_mode = *tch_f_hn ? TCH_96_MODE : SIG_ONLY_MODE;
+ break;
+ case GSM48_CMODE_DATA_6k0:
+ *tch_mode = *tch_f_hn ? TCH_48F_MODE : TCH_48H_MODE;
+ break;
+ case GSM48_CMODE_DATA_3k6:
+ *tch_mode = *tch_f_hn ? TCH_24F_MODE : TCH_24H_MODE;
+ break;
default:
*tch_mode = SIG_ONLY_MODE;
}