aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-sysmo/l1_if.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/osmo-bts-sysmo/l1_if.c')
-rw-r--r--src/osmo-bts-sysmo/l1_if.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c
index 38a1ac8c..a850b3c2 100644
--- a/src/osmo-bts-sysmo/l1_if.c
+++ b/src/osmo-bts-sysmo/l1_if.c
@@ -669,6 +669,10 @@ static int reset_compl_cb(struct msgb *resp, void *data)
bts_shutdown(trx->bts, "L1-RESET failure");
}
+ /* as we cannot get the current DSP trace flags, we simply
+ * set them to zero (or whatever dsp_trace_f has been initialized to */
+ l1if_set_trace_flags(fl1h, fl1h->dsp_trace_f);
+
/* otherwise, request activation of RF board */
l1if_activate_rf(fl1h, 1);
@@ -684,6 +688,24 @@ int l1if_reset(struct femtol1_hdl *hdl)
return l1if_req_compl(hdl, msg, 1, reset_compl_cb, hdl);
}
+/* set the trace flags within the DSP */
+int l1if_set_trace_flags(struct femtol1_hdl *hdl, uint32_t flags)
+{
+ struct msgb *msg = sysp_msgb_alloc();
+ FemtoBts_Prim_t *sysp = msgb_sysprim(msg);
+
+ LOGP(DL1C, LOGL_INFO, "Tx SET-TRACE-FLAGS.req (0x%08x)\n",
+ flags);
+
+ sysp->id = FemtoBts_PrimId_SetTraceFlagsReq;
+ sysp->u.setTraceFlagsReq.u32Tf = flags;
+
+ hdl->dsp_trace_f = flags;
+
+ /* There is no confirmation we could wait for */
+ return osmo_wqueue_enqueue(&hdl->write_q[MQ_SYS_WRITE], msg);
+}
+
struct femtol1_hdl *l1if_open(void *priv)
{
struct femtol1_hdl *fl1h;