fixeria submitted this change.
trxcon: implement Ready-to-Send PHYIF API
This API is going to be used by osmo-trx-ms for pulling Uplink bursts
from the scheduler in a synchronous way, without relying on the
timer driven libtrxcon's internal scheduler.
Change-Id: Ic8f74413f5fad277340e007dd4296f890155a2c1
Related: OS#5599
---
M src/host/trxcon/include/osmocom/bb/trxcon/phyif.h
M src/host/trxcon/src/trxcon_shim.c
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/src/host/trxcon/include/osmocom/bb/trxcon/phyif.h b/src/host/trxcon/include/osmocom/bb/trxcon/phyif.h
index a2bc9ce..ac23ac6 100644
--- a/src/host/trxcon/include/osmocom/bb/trxcon/phyif.h
+++ b/src/host/trxcon/include/osmocom/bb/trxcon/phyif.h
@@ -69,6 +69,12 @@
} param;
};
+/* RTS.ind - Ready-to-Send indication */
+struct trxcon_phyif_rts_ind {
+ uint32_t fn;
+ uint8_t tn;
+};
+
/* BURST.req - a burst to be transmitted */
struct trxcon_phyif_burst_req {
uint32_t fn;
@@ -88,11 +94,12 @@
unsigned int burst_len;
};
-
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_rts_ind(void *priv, const struct trxcon_phyif_rts_ind *rts);
+
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/trxcon_shim.c b/src/host/trxcon/src/trxcon_shim.c
index ee51036..9da3cb7 100644
--- a/src/host/trxcon/src/trxcon_shim.c
+++ b/src/host/trxcon/src/trxcon_shim.c
@@ -220,6 +220,19 @@
}
/* External L1 API for the PHYIF */
+int trxcon_phyif_handle_rts_ind(void *priv, const struct trxcon_phyif_rts_ind *rts)
+{
+ struct trxcon_inst *trxcon = priv;
+ struct l1sched_burst_req br = {
+ .fn = rts->fn,
+ .tn = rts->tn,
+ .burst_len = 0, /* NOPE.ind */
+ };
+
+ l1sched_pull_burst(trxcon->sched, &br);
+ return l1sched_handle_burst_req(trxcon->sched, &br);
+}
+
int trxcon_phyif_handle_burst_ind(void *priv, const struct trxcon_phyif_burst_ind *phybi)
{
struct trxcon_inst *trxcon = priv;
To view, visit change 30241. To unsubscribe, or for help writing mail filters, visit settings.