[PATCH] osmocom-bb[master]: host/trxcon/scheduler: optionally reset clock counter

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Thu Feb 22 15:33:12 UTC 2018


Review at  https://gerrit.osmocom.org/6749

host/trxcon/scheduler: optionally reset clock counter

Change-Id: I4565620fc0c5f64133c2674d2c972fc34245cf32
---
M src/host/trxcon/l1ctl.c
M src/host/trxcon/sched_trx.c
M src/host/trxcon/sched_trx.h
M src/host/trxcon/trxcon.c
4 files changed, 13 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/49/6749/1

diff --git a/src/host/trxcon/l1ctl.c b/src/host/trxcon/l1ctl.c
index 436d043..7810763 100644
--- a/src/host/trxcon/l1ctl.c
+++ b/src/host/trxcon/l1ctl.c
@@ -287,8 +287,8 @@
 		gsm_band_name(gsm_arfcn2band(band_arfcn)),
 		band_arfcn &~ ARFCN_FLAG_MASK);
 
-	/* Reset L1 */
-	sched_trx_reset(l1l->trx);
+	/* Reset scheduler and clock counter */
+	sched_trx_reset(l1l->trx, 1);
 
 	/* Configure a single timeslot */
 	if (fbsb->ccch_mode == CCCH_MODE_COMBINED)
@@ -371,7 +371,7 @@
 
 		/* Fall through */
 	case L1CTL_RES_T_SCHED:
-		sched_trx_reset(l1l->trx);
+		sched_trx_reset(l1l->trx, 1);
 		break;
 	default:
 		LOGP(DL1C, LOGL_ERROR, "Unknown L1CTL_RESET_REQ type\n");
@@ -560,7 +560,7 @@
 static int l1ctl_rx_dm_rel_req(struct l1ctl_link *l1l, struct msgb *msg)
 {
 	/* Reset scheduler */
-	sched_trx_reset(l1l->trx);
+	sched_trx_reset(l1l->trx, 0);
 
 	msgb_free(msg);
 	return 0;
diff --git a/src/host/trxcon/sched_trx.c b/src/host/trxcon/sched_trx.c
index 04fc5cf..94a8e68 100644
--- a/src/host/trxcon/sched_trx.c
+++ b/src/host/trxcon/sched_trx.c
@@ -128,14 +128,15 @@
 	return 0;
 }
 
-int sched_trx_reset(struct trx_instance *trx)
+int sched_trx_reset(struct trx_instance *trx, int reset_clock)
 {
 	int i;
 
 	if (!trx)
 		return -EINVAL;
 
-	LOGP(DSCH, LOGL_NOTICE, "Reset scheduler\n");
+	LOGP(DSCH, LOGL_NOTICE, "Reset scheduler %s\n",
+		reset_clock ? "and clock counter" : "");
 
 	/* Free all potentially allocated timeslots */
 	for (i = 0; i < TRX_TS_COUNT; i++)
@@ -143,8 +144,9 @@
 
 	INIT_LLIST_HEAD(&trx->ts_list);
 
-	/* Stop and reset clock counter */
-	sched_clck_reset(&trx->sched);
+	/* Stop and reset clock counter if required */
+	if (reset_clock)
+		sched_clck_reset(&trx->sched);
 
 	return 0;
 }
diff --git a/src/host/trxcon/sched_trx.h b/src/host/trxcon/sched_trx.h
index cab290b..ff3d254 100644
--- a/src/host/trxcon/sched_trx.h
+++ b/src/host/trxcon/sched_trx.h
@@ -248,7 +248,7 @@
 
 /* Scheduler management functions */
 int sched_trx_init(struct trx_instance *trx);
-int sched_trx_reset(struct trx_instance *trx);
+int sched_trx_reset(struct trx_instance *trx, int reset_clock);
 int sched_trx_shutdown(struct trx_instance *trx);
 
 /* Timeslot management functions */
diff --git a/src/host/trxcon/trxcon.c b/src/host/trxcon/trxcon.c
index 82371bd..4a571b9 100644
--- a/src/host/trxcon/trxcon.c
+++ b/src/host/trxcon/trxcon.c
@@ -89,8 +89,8 @@
 		osmo_fsm_inst_state_chg(trxcon_fsm, TRXCON_STATE_IDLE, 0, 0);
 
 		if (app_data.trx->fsm->state != TRX_STATE_OFFLINE) {
-			/* Reset scheduler */
-			sched_trx_reset(app_data.trx);
+			/* Reset scheduler and clock counter */
+			sched_trx_reset(app_data.trx, 1);
 
 			/* TODO: implement trx_if_reset() */
 			trx_if_cmd_poweroff(app_data.trx);

-- 
To view, visit https://gerrit.osmocom.org/6749
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4565620fc0c5f64133c2674d2c972fc34245cf32
Gerrit-PatchSet: 1
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>



More information about the gerrit-log mailing list