summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Schodet2011-02-02 16:26:56 +0100
committerNicolas Schodet2011-02-02 17:59:52 +0100
commit9d4af2b967ff358aae1744d473175f472df07cf6 (patch)
tree55cf59ee848fda2e3649d7217bf2820aeae2ce61
parent49831332d76b15d5266abba70e1c935f2a54d0a1 (diff)
cesar/hal/phy: reduce TCC iterations for one symbol MPDU, closes #2266
-rw-r--r--cesar/hal/phy/inc/phy_params.txt1
-rw-r--r--cesar/hal/phy/src/rx.c39
2 files changed, 28 insertions, 12 deletions
diff --git a/cesar/hal/phy/inc/phy_params.txt b/cesar/hal/phy/inc/phy_params.txt
index 73218216d4..a82fd6a67d 100644
--- a/cesar/hal/phy/inc/phy_params.txt
+++ b/cesar/hal/phy/inc/phy_params.txt
@@ -5,6 +5,7 @@ tx_scale_adapt_blk_exp = 8
rx_fec_param__me10doi_max_it = 9
rx_fec_param__tcc_half_it_fc = 10
rx_fec_param__tcc_half_it_data_last_pb = 15
+rx_fec_param__tcc_half_it_data_one_symbol = 5
rx_fec_param__tcc_dyn_stop = 1
rx_fec_param__tcc_ber_period = 1
rx_fec_param__tcc_threshold = 0
diff --git a/cesar/hal/phy/src/rx.c b/cesar/hal/phy/src/rx.c
index 0ed92062bf..ebd45f2546 100644
--- a/cesar/hal/phy/src/rx.c
+++ b/cesar/hal/phy/src/rx.c
@@ -120,18 +120,33 @@ phy_rx_prepare_common (phy_t *ctx, bool short_ppdu, bool sound, uint nb_pb,
/* TCC decoder parameters. */
if (!sound)
{
- PHY_DSPSS_TCC_HALF_IT_LAST_PB =
- BF_FILL (PHY_DSPSS_TCC_HALF_IT_LAST_PB,
- (VALUE,
- PHY_PARAM_RX_FEC_PARAM__TCC_HALF_IT_DATA_LAST_PB),
- (ENABLED, 1),
- (PB_NB, nb_pb));
- PHY_DSPSS_RX_FEC_PARAM =
- PHY_PARAMS (PHY_DSPSS, RX_FEC_PARAM, ME10DOI_MAX_IT,
- TCC_HALF_IT_FC, TCC_DYN_STOP, TCC_BER_PERIOD,
- TCC_THRESHOLD)
- | BF_FILL (PHY_DSPSS_RX_FEC_PARAM, (TCC_HALF_IT_DATA,
- tcc_halfit));
+ if (symbol_nb == 1)
+ {
+ PHY_DSPSS_TCC_HALF_IT_LAST_PB =
+ BF_FILL (PHY_DSPSS_TCC_HALF_IT_LAST_PB, (ENABLED, 0));
+ PHY_DSPSS_RX_FEC_PARAM =
+ PHY_PARAMS (PHY_DSPSS, RX_FEC_PARAM, ME10DOI_MAX_IT,
+ TCC_HALF_IT_FC, TCC_DYN_STOP, TCC_BER_PERIOD,
+ TCC_THRESHOLD)
+ | BF_FILL (PHY_DSPSS_RX_FEC_PARAM,
+ (TCC_HALF_IT_DATA,
+ PHY_PARAM_RX_FEC_PARAM__TCC_HALF_IT_DATA_ONE_SYMBOL));
+ }
+ else
+ {
+ PHY_DSPSS_TCC_HALF_IT_LAST_PB =
+ BF_FILL (PHY_DSPSS_TCC_HALF_IT_LAST_PB,
+ (VALUE,
+ PHY_PARAM_RX_FEC_PARAM__TCC_HALF_IT_DATA_LAST_PB),
+ (ENABLED, 1),
+ (PB_NB, nb_pb));
+ PHY_DSPSS_RX_FEC_PARAM =
+ PHY_PARAMS (PHY_DSPSS, RX_FEC_PARAM, ME10DOI_MAX_IT,
+ TCC_HALF_IT_FC, TCC_DYN_STOP, TCC_BER_PERIOD,
+ TCC_THRESHOLD)
+ | BF_FILL (PHY_DSPSS_RX_FEC_PARAM, (TCC_HALF_IT_DATA,
+ tcc_halfit));
+ }
}
}
/* Freeze RESYS to write offset table. */