aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2012-03-07 18:05:18 +0100
committerHarald Welte <laforge@gnumonks.org>2012-03-07 18:05:18 +0100
commitf1cbd819848684de82042d3930d1e88fbc2d4714 (patch)
treeceaa6c67913afdc135853db6fa6ba2aadc7fe2fc /src
parent818cb2d3145a2a20b40a3c98d190ec6700116b39 (diff)
prepare for splitting L1 queue into signalling/tch/pdtch
We don't use multiple queues yet, but we very well might end up using them soon.
Diffstat (limited to 'src')
-rw-r--r--src/osmo-bts-sysmo/l1_fwd.h2
-rw-r--r--src/osmo-bts-sysmo/l1_if.h4
-rw-r--r--src/osmo-bts-sysmo/l1_transp_fwd.c2
-rw-r--r--src/osmo-bts-sysmo/l1_transp_hw.c26
4 files changed, 31 insertions, 3 deletions
diff --git a/src/osmo-bts-sysmo/l1_fwd.h b/src/osmo-bts-sysmo/l1_fwd.h
index 0c355499..55397920 100644
--- a/src/osmo-bts-sysmo/l1_fwd.h
+++ b/src/osmo-bts-sysmo/l1_fwd.h
@@ -1,3 +1,5 @@
#define L1FWD_L1_PORT 9999
#define L1FWD_SYS_PORT 9998
+#define L1FWD_TCH_PORT 9997
+#define L1FWD_PDTCH_PORT 9996
diff --git a/src/osmo-bts-sysmo/l1_if.h b/src/osmo-bts-sysmo/l1_if.h
index 1b150d38..b6209dae 100644
--- a/src/osmo-bts-sysmo/l1_if.h
+++ b/src/osmo-bts-sysmo/l1_if.h
@@ -8,12 +8,16 @@
enum {
MQ_SYS_READ,
MQ_L1_READ,
+ MQ_TCH_READ,
+ MQ_PDTCH_READ,
_NUM_MQ_READ
};
enum {
MQ_SYS_WRITE,
MQ_L1_WRITE,
+ MQ_TCH_WRITE,
+ MQ_PDTCH_WRITE,
_NUM_MQ_WRITE
};
diff --git a/src/osmo-bts-sysmo/l1_transp_fwd.c b/src/osmo-bts-sysmo/l1_transp_fwd.c
index ad64e7bd..e759ee13 100644
--- a/src/osmo-bts-sysmo/l1_transp_fwd.c
+++ b/src/osmo-bts-sysmo/l1_transp_fwd.c
@@ -56,6 +56,8 @@
static const uint16_t fwd_udp_ports[] = {
[MQ_SYS_WRITE] = L1FWD_SYS_PORT,
[MQ_L1_WRITE] = L1FWD_L1_PORT,
+ [MQ_TCH_WRITE] = L1FWD_TCH_PORT,
+ [MQ_PDTCH_WRITE]= L1FWD_PDTCH_PORT,
};
static int fwd_read_cb(struct osmo_fd *ofd)
diff --git a/src/osmo-bts-sysmo/l1_transp_hw.c b/src/osmo-bts-sysmo/l1_transp_hw.c
index d7e01e92..dbdc48d0 100644
--- a/src/osmo-bts-sysmo/l1_transp_hw.c
+++ b/src/osmo-bts-sysmo/l1_transp_hw.c
@@ -46,19 +46,35 @@
#include "l1_transp.h"
+#ifdef HW_VERSION_1
#define DEV_SYS_DSP2ARM_NAME "/dev/msgq/femtobts_dsp2arm"
#define DEV_SYS_ARM2DSP_NAME "/dev/msgq/femtobts_arm2dsp"
#define DEV_L1_DSP2ARM_NAME "/dev/msgq/gsml1_dsp2arm"
#define DEV_L1_ARM2DSP_NAME "/dev/msgq/gsml1_arm2dsp"
+#else
+#define DEV_SYS_DSP2ARM_NAME "/dev/msgq/superfemto_dsp2arm"
+#define DEV_SYS_ARM2DSP_NAME "/dev/msgq/superfemto_arm2dsp"
+#define DEV_L1_DSP2ARM_NAME "/dev/msgq/gsml1_sig_dsp2arm"
+#define DEV_L1_ARM2DSP_NAME "/dev/msgq/gsml1_sig_arm2dsp"
+#endif
+
+#define DEV_TCH_DSP2ARM_NAME "/dev/msgq/gsml1_tch_dsp2arm"
+#define DEV_TCH_ARM2DSP_NAME "/dev/msgq/gsml1_tch_arm2dsp"
+#define DEV_PDTCH_DSP2ARM_NAME "/dev/msgq/gsml1_pdtch_dsp2arm"
+#define DEV_PDTCH_ARM2DSP_NAME "/dev/msgq/gsml1_pdtch_arm2dsp"
static const char *rd_devnames[] = {
[MQ_SYS_READ] = DEV_SYS_DSP2ARM_NAME,
[MQ_L1_READ] = DEV_L1_DSP2ARM_NAME,
+ [MQ_TCH_READ] = DEV_TCH_DSP2ARM_NAME,
+ [MQ_PDTCH_READ] = DEV_PDTCH_DSP2ARM_NAME,
};
static const char *wr_devnames[] = {
[MQ_SYS_WRITE] = DEV_SYS_ARM2DSP_NAME,
[MQ_L1_WRITE] = DEV_L1_ARM2DSP_NAME,
+ [MQ_TCH_WRITE] = DEV_TCH_ARM2DSP_NAME,
+ [MQ_PDTCH_WRITE]= DEV_PDTCH_ARM2DSP_NAME,
};
/* callback when there's something to read from the l1 msg_queue */
@@ -80,10 +96,14 @@ static int l1if_fd_cb(struct osmo_fd *ofd, unsigned int what)
}
msgb_put(msg, rc);
- if (ofd->priv_nr == MQ_L1_WRITE)
- return l1if_handle_l1prim(fl1h, msg);
- else
+ switch (ofd->priv_nr) {
+ case MQ_SYS_WRITE:
return l1if_handle_sysprim(fl1h, msg);
+ case MQ_L1_WRITE:
+ case MQ_TCH_WRITE:
+ case MQ_PDTCH_WRITE:
+ return l1if_handle_l1prim(fl1h, msg);
+ }
};
/* callback when we can write to one of the l1 msg_queue devices */