dexter has uploaded this change for review.

View Change

gprs_rlcmac_sched: check if we really use direct phy

In gprs_rlcmac_sched we have a flag to skip idle frames in case do not
use the so called "direct phy access".

Unfortunately the check is not done correctly. The flag gets set when
the ENABLE_DIRECT_PHY define constant is set. However, this does not say
much about whether we access a PHY directly or not. The define constant
is intended to be used to disable direct phy related code in
on platforms where no direct phy code is used or cannot be used.

In order to know if we actually accessing a PHY directly we must check
the presence of fl1h on the related TRX. (see also pcu_l1_if.cpp,
function pcu_l1if_tx_pdtch)

Related: OS#6191
Change-Id: I0808950b1154bbb9a789c3f706ad9fb6618764ec
---
M src/gprs_rlcmac_sched.cpp
1 file changed, 28 insertions(+), 3 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/75/34575/1
diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp
index 314fd58..214ea45 100644
--- a/src/gprs_rlcmac_sched.cpp
+++ b/src/gprs_rlcmac_sched.cpp
@@ -488,9 +488,11 @@
+ pdch->num_tbfs(GPRS_RLCMAC_UL_TBF);
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;
+ if (bts->trx[trx].fl1h) {
+ /* 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 && (msg = sched_dummy())) {
/* increase counter */

To view, visit change 34575. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Change-Id: I0808950b1154bbb9a789c3f706ad9fb6618764ec
Gerrit-Change-Number: 34575
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier@sysmocom.de>
Gerrit-MessageType: newchange