summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/layer1
diff options
context:
space:
mode:
Diffstat (limited to 'src/target/firmware/layer1')
-rw-r--r--src/target/firmware/layer1/prim_rach.c7
-rw-r--r--src/target/firmware/layer1/prim_rx_nb.c5
-rw-r--r--src/target/firmware/layer1/prim_tch.c20
-rw-r--r--src/target/firmware/layer1/prim_tx_nb.c5
4 files changed, 29 insertions, 8 deletions
diff --git a/src/target/firmware/layer1/prim_rach.c b/src/target/firmware/layer1/prim_rach.c
index 27e89abb..08353efb 100644
--- a/src/target/firmware/layer1/prim_rach.c
+++ b/src/target/firmware/layer1/prim_rach.c
@@ -60,6 +60,7 @@ static int l1s_tx_rach_cmd(__unused uint8_t p1, __unused uint8_t p2, __unused ui
{
int i;
uint16_t *info_ptr;
+ uint16_t arfcn;
uint8_t data[2];
putchart('T');
@@ -72,9 +73,11 @@ static int l1s_tx_rach_cmd(__unused uint8_t p1, __unused uint8_t p2, __unused ui
info_ptr = &dsp_api.ndb->d_rach;
info_ptr[0] = ((uint16_t)(data[0])) | ((uint16_t)(data[1])<<8);
- dsp_api.db_w->d_task_ra = RACH_DSP_TASK;
+ arfcn = l1s.serving_cell.arfcn;
- l1s_tx_win_ctrl(l1s.serving_cell.arfcn | ARFCN_UPLINK, L1_TXWIN_AB, 0, 3);
+ dsp_api.db_w->d_task_ra = dsp_task_iq_swap(RACH_DSP_TASK, arfcn, 1);
+
+ l1s_tx_win_ctrl(arfcn | ARFCN_UPLINK, L1_TXWIN_AB, 0, 3);
return 0;
}
diff --git a/src/target/firmware/layer1/prim_rx_nb.c b/src/target/firmware/layer1/prim_rx_nb.c
index ade23a01..38c7b53b 100644
--- a/src/target/firmware/layer1/prim_rx_nb.c
+++ b/src/target/firmware/layer1/prim_rx_nb.c
@@ -199,7 +199,10 @@ static int l1s_nb_cmd(__unused uint8_t p1, uint8_t burst_id,
dsp_load_tch_param(&l1s.next_time,
SIG_ONLY_MODE, SDCCH_4, 0, 0, 0, tn);
- dsp_load_rx_task(ALLC_DSP_TASK, burst_id, tsc);
+ dsp_load_rx_task(
+ dsp_task_iq_swap(ALLC_DSP_TASK, arfcn, 0),
+ burst_id, tsc
+ );
l1s_rx_win_ctrl(arfcn, L1_RXWIN_NB, 0);
diff --git a/src/target/firmware/layer1/prim_tch.c b/src/target/firmware/layer1/prim_tch.c
index a26c58ea..a0a03b81 100644
--- a/src/target/firmware/layer1/prim_tch.c
+++ b/src/target/firmware/layer1/prim_tch.c
@@ -475,10 +475,16 @@ skip_tx_traffic:
0, sync, tn
);
- dsp_load_rx_task(TCHT_DSP_TASK, 0, tsc); /* burst_id unused for TCH */
+ dsp_load_rx_task(
+ dsp_task_iq_swap(TCHT_DSP_TASK, arfcn, 0),
+ 0, tsc /* burst_id unused for TCH */
+ );
l1s_rx_win_ctrl(arfcn, L1_RXWIN_NB, 0);
- dsp_load_tx_task(TCHT_DSP_TASK, 0, tsc); /* burst_id unused for TCH */
+ dsp_load_tx_task(
+ dsp_task_iq_swap(TCHT_DSP_TASK, arfcn, 1),
+ 0, tsc /* burst_id unused for TCH */
+ );
l1s_tx_win_ctrl(arfcn | ARFCN_UPLINK, L1_TXWIN_NB, 0, 3);
return 0;
@@ -734,10 +740,16 @@ static int l1s_tch_a_cmd(__unused uint8_t p1, __unused uint8_t p2, uint16_t p3)
0, 0, tn
);
- dsp_load_rx_task(TCHA_DSP_TASK, 0, tsc); /* burst_id unused for TCHA */
+ dsp_load_rx_task(
+ dsp_task_iq_swap(TCHA_DSP_TASK, arfcn, 0),
+ 0, tsc /* burst_id unused for TCHA */
+ );
l1s_rx_win_ctrl(arfcn, L1_RXWIN_NB, 0);
- dsp_load_tx_task(TCHA_DSP_TASK, 0, tsc); /* burst_id unused for TCHA */
+ dsp_load_tx_task(
+ dsp_task_iq_swap(TCHA_DSP_TASK, arfcn, 1),
+ 0, tsc /* burst_id unused for TCHA */
+ );
l1s_tx_win_ctrl(arfcn | ARFCN_UPLINK, L1_TXWIN_NB, 0, 3);
return 0;
diff --git a/src/target/firmware/layer1/prim_tx_nb.c b/src/target/firmware/layer1/prim_tx_nb.c
index df13c757..71b32eba 100644
--- a/src/target/firmware/layer1/prim_tx_nb.c
+++ b/src/target/firmware/layer1/prim_tx_nb.c
@@ -121,7 +121,10 @@ static int l1s_tx_cmd(uint8_t p1, uint8_t burst_id, uint16_t p3)
dsp_load_tch_param(&l1s.next_time,
SIG_ONLY_MODE, SDCCH_4, 0, 0, 0, tn);
- dsp_load_tx_task(DUL_DSP_TASK, burst_id, tsc);
+ dsp_load_tx_task(
+ dsp_task_iq_swap(DUL_DSP_TASK, arfcn, 1),
+ burst_id, tsc
+ );
l1s_tx_win_ctrl(arfcn | ARFCN_UPLINK, L1_TXWIN_NB, 0, 3);