diff options
Diffstat (limited to 'src/target/firmware/layer1')
-rw-r--r-- | src/target/firmware/layer1/prim_rach.c | 7 | ||||
-rw-r--r-- | src/target/firmware/layer1/prim_rx_nb.c | 5 | ||||
-rw-r--r-- | src/target/firmware/layer1/prim_tch.c | 20 | ||||
-rw-r--r-- | src/target/firmware/layer1/prim_tx_nb.c | 5 |
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); |