fixeria has submitted this change. ( 
https://gerrit.osmocom.org/c/osmocom-bb/+/30243 )

Change subject: trxcon: separate l1sched_clck_handle() from BURST.ind handling
......................................................................

trxcon: separate l1sched_clck_handle() from BURST.ind handling

Do not mix up Downlink burst handling with the clock delivery.  Add
a separate PHYIF API function and call it from the TRXC/TRXD PHYIF.

This way calling trxcon_phyif_handle_burst_ind() would not trigger
the internal timer-driven Uplink scheduler in libl1sched, letting
the underlaying PHYIF logic to pull Uplink bursts synchronously.

Change-Id: Ieeee25573d1142aec2fee28d884127f14573b681
Related: OS#5599
---
M src/host/trxcon/include/osmocom/bb/trxcon/phyif.h
M src/host/trxcon/src/trx_if.c
M src/host/trxcon/src/trxcon_shim.c
3 files changed, 13 insertions(+), 7 deletions(-)

Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, but someone else must approve
  msuraev: Looks good to me, but someone else must approve
  fixeria: Looks good to me, approved



diff --git a/src/host/trxcon/include/osmocom/bb/trxcon/phyif.h 
b/src/host/trxcon/include/osmocom/bb/trxcon/phyif.h
index 43363cb..775c278 100644
--- a/src/host/trxcon/include/osmocom/bb/trxcon/phyif.h
+++ b/src/host/trxcon/include/osmocom/bb/trxcon/phyif.h
@@ -89,8 +89,10 @@
 };


-int trxcon_phyif_handle_burst_ind(void *priv, const struct 
trxcon_phyif_burst_ind *bi);
 int trxcon_phyif_handle_burst_req(void *phyif, const struct 
trxcon_phyif_burst_req *br);
+int trxcon_phyif_handle_burst_ind(void *priv, const struct 
trxcon_phyif_burst_ind *bi);
+int trxcon_phyif_handle_clock_ind(void *priv, uint32_t fn);
+
 int trxcon_phyif_handle_cmd(void *phyif, const struct trxcon_phyif_cmd *cmd);
 int trxcon_phyif_handle_rsp(void *priv, const struct trxcon_phyif_rsp *rsp);
 void trxcon_phyif_close(void *phyif);
diff --git a/src/host/trxcon/src/trx_if.c b/src/host/trxcon/src/trx_if.c
index 5a662f0..388d82b 100644
--- a/src/host/trxcon/src/trx_if.c
+++ b/src/host/trxcon/src/trx_if.c
@@ -675,6 +675,9 @@
                  "RX burst tn=%u fn=%u rssi=%d toa=%d\n",
                  bi.tn, bi.fn, bi.rssi, bi.toa256);

+       if (bi.fn % 51 == 0)
+               trxcon_phyif_handle_clock_ind(trx->priv, bi.fn);
+
        return trxcon_phyif_handle_burst_ind(trx->priv, &bi);
 }

diff --git a/src/host/trxcon/src/trxcon_shim.c 
b/src/host/trxcon/src/trxcon_shim.c
index 6434461..5329539 100644
--- a/src/host/trxcon/src/trxcon_shim.c
+++ b/src/host/trxcon/src/trxcon_shim.c
@@ -230,14 +230,15 @@
        };

        /* Poke scheduler */
-       l1sched_handle_rx_burst(trxcon->sched, bi->tn, bi->fn,
-                               bi->burst, bi->burst_len, &meas);
+       return l1sched_handle_rx_burst(trxcon->sched, bi->tn, bi->fn,
+                                      bi->burst, bi->burst_len, &meas);
+}

-       /* Correct local clock counter */
-       if (bi->fn % 51 == 0)
-               l1sched_clck_handle(trxcon->sched, bi->fn);
+int trxcon_phyif_handle_clock_ind(void *priv, uint32_t fn)
+{
+       struct trxcon_inst *trxcon = priv;

-       return 0;
+       return l1sched_clck_handle(trxcon->sched, fn);
 }

 int trxcon_phyif_handle_rsp(void *priv, const struct trxcon_phyif_rsp *rsp)

--
To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/30243
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: Ieeee25573d1142aec2fee28d884127f14573b681
Gerrit-Change-Number: 30243
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanits...@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanits...@sysmocom.de>
Gerrit-Reviewer: laforge <lafo...@osmocom.org>
Gerrit-Reviewer: msuraev <msur...@sysmocom.de>
Gerrit-MessageType: merged

Reply via email to