summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/layer1/tpu_window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/target/firmware/layer1/tpu_window.c')
-rw-r--r--src/target/firmware/layer1/tpu_window.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/target/firmware/layer1/tpu_window.c b/src/target/firmware/layer1/tpu_window.c
index f4e76c16..21a3326e 100644
--- a/src/target/firmware/layer1/tpu_window.c
+++ b/src/target/firmware/layer1/tpu_window.c
@@ -47,7 +47,9 @@
#define L1_NB_DURATION_Q (L1_BURST_LENGTH_Q + 2 * L1_NB_MARGIN_Q - L1_TAIL_DURATION_Q)
#define L1_SB_DURATION_Q (L1_BURST_LENGTH_Q + 2 * L1_SB_MARGIN_Q - L1_TAIL_DURATION_Q)
#define L1_FB_DURATION_Q (11 * L1_TDMA_LENGTH_Q + 2057) /* more than 11 full slots */
-#define L1_FB26_DURATION_Q (L1_TDMA_LENGTH_Q + 798)
+//#define L1_FB26_DURATION_Q (L1_TDMA_LENGTH_Q + 798)
+#define L1_FB26_DURATION_Q (2*L1_TDMA_LENGTH_Q + 798)
+#define L1_SB26_DURATION_Q (L1_TDMA_LENGTH_Q + 984) // 984
#define L1_PW_DURATION_Q 289
#define DSP_SETUP_TIME 66
@@ -57,6 +59,8 @@ static const uint16_t rx_burst_duration[_NUM_L1_RXWIN] = {
[L1_RXWIN_FB] = L1_FB_DURATION_Q,
[L1_RXWIN_SB] = L1_SB_DURATION_Q,
[L1_RXWIN_NB] = L1_NB_DURATION_Q,
+ [L1_RXWIN_FB26] = L1_FB26_DURATION_Q,
+ [L1_RXWIN_SB26] = L1_SB26_DURATION_Q,
};
#define L1_TX_NB_DURATION_Q 626
@@ -129,6 +133,15 @@ void l1s_rx_win_ctrl(uint16_t arfcn, enum l1_rxwin_type wtype, uint8_t tn_ofs)
stop -= 11 * L1_TDMA_LENGTH_Q;
}
+ /* Delay 11 full TDMA frames */
+ if (wtype == L1_RXWIN_FB26) {
+ uint8_t i;
+ for (i = 0; i < 2; i++)
+ tpu_enq_at(0);
+
+ stop -= 2 * L1_TDMA_LENGTH_Q;
+ }
+
/* Window close for ABB */
twl3025_downlink(0, stop & 0xffff);