summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/layer1
diff options
context:
space:
mode:
authorSylvain Munaut2010-11-06 16:00:12 +0100
committerSylvain Munaut2010-11-07 10:34:10 +0100
commit00ffd1336e67bef6aaff918bfd189f7dc8d8d41c (patch)
tree3a9b407e0881b7a1ab4eb21704b3ce0ccd480109 /src/target/firmware/layer1
parenttarget/fw/l1: Fix TCH/H by properly scheduling the TCHD task during 'off' slots (diff)
downloadosmocom-00ffd1336e67bef6aaff918bfd189f7dc8d8d41c.tar.gz
osmocom-00ffd1336e67bef6aaff918bfd189f7dc8d8d41c.tar.xz
osmocom-00ffd1336e67bef6aaff918bfd189f7dc8d8d41c.zip
target/fw/l1: Fix TCH/H1 by properly loading the TCH mode during TCH_A task
Altough quite counterintuitive, the TCH_A task does some voice coding work ... at least during TCH/H subchannel 1 ... Go figure ... Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Diffstat (limited to 'src/target/firmware/layer1')
-rw-r--r--src/target/firmware/layer1/prim_tch.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/target/firmware/layer1/prim_tch.c b/src/target/firmware/layer1/prim_tch.c
index f144204..d17ac55 100644
--- a/src/target/firmware/layer1/prim_tch.c
+++ b/src/target/firmware/layer1/prim_tch.c
@@ -556,14 +556,14 @@ static int l1s_tch_a_cmd(__unused uint8_t p1, __unused uint8_t p2, uint16_t p3)
uint8_t chan_nr;
uint16_t arfcn;
uint8_t tsc, tn;
- uint8_t tch_f_hn, tch_sub;
+ uint8_t tch_f_hn, tch_sub, tch_mode;
uint32_t fn_report;
uint8_t burst_id;
/* Get/compute various parameters */
rfch_get_params(&l1s.next_time, &arfcn, &tsc, &tn);
chan_nr = mframe_task2chan_nr(mf_task_id, tn);
- tch_get_params(&l1s.next_time, chan_nr, &fn_report, &tch_f_hn, &tch_sub, NULL);
+ tch_get_params(&l1s.next_time, chan_nr, &fn_report, &tch_f_hn, &tch_sub, &tch_mode);
burst_id = (fn_report - 12) / 26;
/* Load SACCH data if we start a new burst */
@@ -625,7 +625,7 @@ static int l1s_tch_a_cmd(__unused uint8_t p1, __unused uint8_t p2, uint16_t p3)
dsp_load_tch_param(
&l1s.next_time,
- SIG_ONLY_MODE, tch_f_hn ? TCH_F : TCH_H, tch_sub,
+ tch_mode, tch_f_hn ? TCH_F : TCH_H, tch_sub,
0, 0, tn
);