aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--contrib/sysmobts-calib/sysmobts-layer1.c7
-rw-r--r--contrib/sysmobts-calib/sysmobts-layer1.h12
-rw-r--r--src/osmo-bts-sysmo/femtobts.h9
-rw-r--r--src/osmo-bts-sysmo/l1_if.c4
4 files changed, 30 insertions, 2 deletions
diff --git a/contrib/sysmobts-calib/sysmobts-layer1.c b/contrib/sysmobts-calib/sysmobts-layer1.c
index c475354a..8c04c77a 100644
--- a/contrib/sysmobts-calib/sysmobts-layer1.c
+++ b/contrib/sysmobts-calib/sysmobts-layer1.c
@@ -338,9 +338,10 @@ int activate_rf_frontend(int clock_source, int initial_cor)
prim.u.activateRfReq.rfTrx.iClkCor = initial_cor;
prim.u.activateRfReq.rfTrx.clkSrc = clock_source;
-
+#if SUPERFEMTO_API_VERSION < SUPERFEMTO_API(2,4,0)
prim.u.activateRfReq.rfRx.iClkCor = initial_cor;
- prim.u.activateRfReq.rfRx.clkSrc = clock_source;
+ prim.u.activateRfReq.rfRx.clkSrc = clock_source;
+#endif
rc = send_recv_primitive(SuperFemto_PrimId_ActivateRfReq, &prim);
return rc;
@@ -583,8 +584,10 @@ int set_clock_cor(int clock_cor, int calib, int source)
prim.u.rfClockSetupReq.rfTrx.iClkCor = clock_cor;
prim.u.rfClockSetupReq.rfTrx.clkSrc = calib;
+#if SUPERFEMTO_API_VERSION < SUPERFEMTO_API(2,4,0)
prim.u.rfClockSetupReq.rfRx.iClkCor = clock_cor;
prim.u.rfClockSetupReq.rfRx.clkSrc = calib;
+#endif
prim.u.rfClockSetupReq.rfTrxClkCal.clkSrc = source;
rc = send_recv_primitive(SuperFemto_PrimId_RfClockSetupReq, &prim);
diff --git a/contrib/sysmobts-calib/sysmobts-layer1.h b/contrib/sysmobts-calib/sysmobts-layer1.h
index 5b2b285d..ec961eba 100644
--- a/contrib/sysmobts-calib/sysmobts-layer1.h
+++ b/contrib/sysmobts-calib/sysmobts-layer1.h
@@ -1,6 +1,18 @@
#ifndef SYSMOBTS_LAYER_H
#define SYSMOBTS_LAYER_H
+#include <sysmocom/femtobts/superfemto.h>
+
+/* older header files don't have this */
+#ifndef SUPERFEMTO_API
+#define SUPERFEMTO_API(x,y,z) ((x << 16) + (y << 8) + z)
+#endif
+
+#ifndef SUPERFEMTO_API_VERSION
+#define SUPERFEMTO_API_VERSION SUPERFEMTO_API(2,2,0)
+#endif
+
+
extern int initialize_layer1(uint32_t dsp_flags);
extern int print_system_info();
extern int activate_rf_frontend(int clock_source, int clock_cor);
diff --git a/src/osmo-bts-sysmo/femtobts.h b/src/osmo-bts-sysmo/femtobts.h
index b91a86fc..5a716ee0 100644
--- a/src/osmo-bts-sysmo/femtobts.h
+++ b/src/osmo-bts-sysmo/femtobts.h
@@ -12,6 +12,15 @@
//#define USE_L1_RTP_MODE /* Tell L1 to use RTP mode */
#endif
+/* older header files don't have this */
+#ifndef SUPERFEMTO_API
+#define SUPERFEMTO_API(x,y,z) ((x << 16) + (y << 8) + z)
+#endif
+
+#ifndef SUPERFEMTO_API_VERSION
+#define SUPERFEMTO_API_VERSION SUPERFEMTO_API(2,2,0)
+#endif
+
enum l1prim_type {
L1P_T_REQ,
L1P_T_CONF,
diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c
index 3cf2955a..69c44246 100644
--- a/src/osmo-bts-sysmo/l1_if.c
+++ b/src/osmo-bts-sysmo/l1_if.c
@@ -965,6 +965,10 @@ int l1if_activate_rf(struct femtol1_hdl *hdl, int on)
/* Use clock from OCXO or whatever source is configured */
sysp->u.activateRfReq.rfTrx.clkSrc = hdl->clk_src;
sysp->u.activateRfReq.rfTrx.iClkCor = hdl->clk_cal;
+#if SUPERFEMTO_API_VERSION < SUPERFEMTO_API(2,4,0)
+ sysp->u.activateRfReq.rfRx.clkSrc = hdl->clk_src;
+ sysp->u.activateRfReq.rfRx.iClkCor = hdl->clk_cal;
+#endif /* API 2.4.0 */
#endif
} else {
sysp->id = SuperFemto_PrimId_DeactivateRfReq;