diff options
author | Harald Welte <laforge@gnumonks.org> | 2010-04-09 10:51:38 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-04-09 10:51:38 +0200 |
commit | 0e9d250407f589cff312adc6c9e2c83f6af37de5 (patch) | |
tree | dd38c32a0cf7a14bded270ac817e8c4b927a6e4f /src | |
parent | cba99230bebe5f36ffac648840e64058b35d9632 (diff) |
layer1: fix off-by-one error when transmitting bursts in the uplink
Prior to this fix, only 3 out of 4 bursts of every mac block were
received by the BTS at all.
Thanks to Dieter Spaar for spending so much time to debug this issue!
Diffstat (limited to 'src')
-rw-r--r-- | src/target/firmware/layer1/tpu_window.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/target/firmware/layer1/tpu_window.c b/src/target/firmware/layer1/tpu_window.c index c36fd827..0b30e80b 100644 --- a/src/target/firmware/layer1/tpu_window.c +++ b/src/target/firmware/layer1/tpu_window.c @@ -101,6 +101,12 @@ void l1s_tx_win_ctrl(uint16_t arfcn, enum l1_txwin_type wtype, uint8_t pwr) /* uplink is three TS after downlink ( "+ 32" gives a TA of 1) */ uint16_t offset = (L1_BURST_LENGTH_Q * 3) + 28; + /* this is needed to cause a delay of one more TDMA frame, + * otherwise we have an off-by-one error and send the bursts + * at the wrong point in time, resulting in only 3 out of 4 + * bursts arriving at the BTS */ + tpu_enq_at(5000 - 10); /* TPU_CLOCK_RANGE - EPSILON_SYNC */ + #ifdef CONFIG_TX_ENABLE /* window open for TRF6151 and RFFE */ rffe_mode(gsm_arfcn2band(arfcn), 1); |