From 0e3083daf597cb34e12693f7ed9bcc006406f085 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Fri, 17 Sep 2021 17:35:34 +0200 Subject: [PATCH] scheduler: Skip Tx DL idle blocks in TRX0 when not in DIRECT_PHY mode We also want to avoid sending idle blocs in TRX0 to the BTS, so that the BTS can be aware of blocks being idle and then submitting dummy blokcs by itself applying required BCCH Carrier power reduction. Related: SYS#4919 Change-Id: Idd58d2a09c3947098b960cfcb5cd1b7b7bca3d84 --- src/gprs_rlcmac_sched.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 08f43cd4..405b7dbd 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -498,7 +498,13 @@ int gprs_rlcmac_rcv_rts_block(struct gprs_rlcmac_bts *bts, */ const unsigned num_tbfs = pdch->num_tbfs(GPRS_RLCMAC_DL_TBF) + pdch->num_tbfs(GPRS_RLCMAC_UL_TBF); - if (trx != 0 && num_tbfs == 0) + bool skip_idle = (num_tbfs == 0); +#ifdef ENABLE_DIRECT_PHY + /* In DIRECT_PHY mode we want to always submit something to L1 in + * TRX0, since BTS is not preparing dummy bursts on idle TS for us */ + skip_idle = skip_idle && trx != 0; +#endif + if (skip_idle) return 0; if ((msg = sched_dummy())) { /* increase counter */