aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2011-10-03 08:45:19 +0200
committerAndreas Eversberg <jolly@eversberg.eu>2011-10-03 13:01:00 +0200
commit1ac47658c4956e3c61b450fb4048b5dc85b35c94 (patch)
tree56e6bfcbecad66ce48a7655a8047f32cb215cc01
parent55e7a2e87dc79a936e0993e57f411e33299643cf (diff)
[WIP] Adding tx callback to lchan_init_lapdm
-rw-r--r--include/osmo-bts/bts.h2
-rw-r--r--src/common/bts.c7
-rw-r--r--src/osmo-bts-bb/l1_if.c4
-rw-r--r--src/osmo-bts-bb/oml.c2
-rw-r--r--src/osmo-bts-sysmo/oml.c2
5 files changed, 11 insertions, 6 deletions
diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h
index 3ea0353e..e6460d45 100644
--- a/include/osmo-bts/bts.h
+++ b/include/osmo-bts/bts.h
@@ -18,7 +18,7 @@ int trx_link_estab(struct gsm_bts_trx *trx);
void bts_new_si(void *arg);
void bts_setup_slot(struct gsm_bts_trx_ts *slot, uint8_t comb);
-int lchan_init_lapdm(struct gsm_lchan *lchan);
+int lchan_init_lapdm(struct gsm_lchan *lchan, osmo_prim_cb cb);
int bts_agch_enqueue(struct gsm_bts *bts, struct msgb *msg);
struct msgb *bts_agch_dequeue(struct gsm_bts *bts);
diff --git a/src/common/bts.c b/src/common/bts.c
index da428583..b810c074 100644
--- a/src/common/bts.c
+++ b/src/common/bts.c
@@ -421,13 +421,14 @@ void bts_new_si(void *arg)
#endif
}
-int lchan_init_lapdm(struct gsm_lchan *lchan)
+int lchan_init_lapdm(struct gsm_lchan *lchan, osmo_prim_cb cb)
{
struct lapdm_channel *lc = &lchan->lapdm_ch;
lapdm_channel_init(lc, LAPDM_MODE_BTS);
- lapdm_channel_set_flags(lc, LAPDM_ENT_F_POLLING_ONLY);
- lapdm_channel_set_l1(lc, NULL, lchan);
+ if (!cb)
+ lapdm_channel_set_flags(lc, LAPDM_ENT_F_POLLING_ONLY);
+ lapdm_channel_set_l1(lc, cb, lchan);
lapdm_channel_set_l3(lc, lapdm_rll_tx_cb, lchan);
return 0;
diff --git a/src/osmo-bts-bb/l1_if.c b/src/osmo-bts-bb/l1_if.c
index 77cccac3..184ae628 100644
--- a/src/osmo-bts-bb/l1_if.c
+++ b/src/osmo-bts-bb/l1_if.c
@@ -169,6 +169,10 @@ static int l1if_signal_cbfn(unsigned int subsys, unsigned int signal, void *hdlr
return 0;
}
+int l1if_data_req_cb(struct osmo_prim_hdr *oph, void *ctx)
+{
+}
+
static int l1if_reset_cnf(struct osmo_l1ctl *l1ctl, struct msgb *msg)
{
enum baseband_role bb_role = l1ctl->bb_role;
diff --git a/src/osmo-bts-bb/oml.c b/src/osmo-bts-bb/oml.c
index c812a3a7..194ebc7f 100644
--- a/src/osmo-bts-bb/oml.c
+++ b/src/osmo-bts-bb/oml.c
@@ -247,7 +247,7 @@ int lchan_activate(struct gsm_lchan *lchan)
#endif
lchan->state = LCHAN_S_ACT_REQ;
- lchan_init_lapdm(lchan);
+ lchan_init_lapdm(lchan, l1if_data_req_cb);
return 0;
}
diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c
index 69d0147e..9239d4a2 100644
--- a/src/osmo-bts-sysmo/oml.c
+++ b/src/osmo-bts-sysmo/oml.c
@@ -611,7 +611,7 @@ int lchan_activate(struct gsm_lchan *lchan)
}
lchan->state = LCHAN_S_ACT_REQ;
- lchan_init_lapdm(lchan);
+ lchan_init_lapdm(lchan, NULL);
return 0;
}