diff options
author | Alex Badea <vamposdecampos@gmail.com> | 2013-01-03 13:25:05 +0200 |
---|---|---|
committer | Sylvain Munaut <tnt@246tNt.com> | 2013-01-06 00:47:59 +0100 |
commit | 147103ce0144aeb2cfd93ed3afdddec73aadff8c (patch) | |
tree | 849816595320ef0065f6d0eee41853ef98f9abb2 /src/host/layer23/src | |
parent | 9ed9aac023ab4fb9f8fa12d3ef3b8d2bb6da9712 (diff) |
l1: add CBCH flag to dedicated mode
Add a .dm_flags member to struct l1ctl_dm_est_req. Define a flag bit
to indicate CBCH mode. If set, this instructs L1 to use the CBCH
variant of SDCCH for dedicated mode (no uplink, no SACCH).
Add the new dm_flags field to l1ctl_tx_dm_est_req* API calls. Clear it
everywhere, except for app_cbch_sniff which requests CBCH.
Signed-off-by: Alex Badea <vamposdecampos@gmail.com>
Diffstat (limited to 'src/host/layer23/src')
-rw-r--r-- | src/host/layer23/src/common/l1ctl.c | 6 | ||||
-rw-r--r-- | src/host/layer23/src/misc/app_cbch_sniff.c | 4 | ||||
-rw-r--r-- | src/host/layer23/src/mobile/gsm48_rr.c | 4 |
3 files changed, 8 insertions, 6 deletions
diff --git a/src/host/layer23/src/common/l1ctl.c b/src/host/layer23/src/common/l1ctl.c index 5898b227..74320852 100644 --- a/src/host/layer23/src/common/l1ctl.c +++ b/src/host/layer23/src/common/l1ctl.c @@ -461,7 +461,7 @@ int l1ctl_tx_rach_req(struct osmocom_ms *ms, uint8_t ra, uint16_t offset, /* Transmit L1CTL_DM_EST_REQ */ int l1ctl_tx_dm_est_req_h0(struct osmocom_ms *ms, uint16_t band_arfcn, uint8_t chan_nr, uint8_t tsc, uint8_t tch_mode, - uint8_t audio_mode) + uint8_t audio_mode, uint8_t dm_flags) { struct msgb *msg; struct l1ctl_info_ul *ul; @@ -484,6 +484,7 @@ int l1ctl_tx_dm_est_req_h0(struct osmocom_ms *ms, uint16_t band_arfcn, req->h0.band_arfcn = htons(band_arfcn); req->tch_mode = tch_mode; req->audio_mode = audio_mode; + req->dm_flags = dm_flags; return osmo_send_l1(ms, msg); } @@ -491,7 +492,7 @@ int l1ctl_tx_dm_est_req_h0(struct osmocom_ms *ms, uint16_t band_arfcn, int l1ctl_tx_dm_est_req_h1(struct osmocom_ms *ms, uint8_t maio, uint8_t hsn, uint16_t *ma, uint8_t ma_len, uint8_t chan_nr, uint8_t tsc, uint8_t tch_mode, - uint8_t audio_mode) + uint8_t audio_mode, uint8_t dm_flags) { struct msgb *msg; struct l1ctl_info_ul *ul; @@ -519,6 +520,7 @@ int l1ctl_tx_dm_est_req_h1(struct osmocom_ms *ms, uint8_t maio, uint8_t hsn, req->h1.ma[i] = htons(ma[i]); req->tch_mode = tch_mode; req->audio_mode = audio_mode; + req->dm_flags = dm_flags; return osmo_send_l1(ms, msg); } diff --git a/src/host/layer23/src/misc/app_cbch_sniff.c b/src/host/layer23/src/misc/app_cbch_sniff.c index 8256eaf6..a62dd7c9 100644 --- a/src/host/layer23/src/misc/app_cbch_sniff.c +++ b/src/host/layer23/src/misc/app_cbch_sniff.c @@ -57,12 +57,12 @@ static int try_cbch(struct osmocom_ms *ms, struct gsm48_sysinfo *s) return l1ctl_tx_dm_est_req_h1(ms, s->maio, s->hsn, s->hopping, s->hopp_len, s->chan_nr, s->tsc, - GSM48_CMODE_SIGN, 0); + GSM48_CMODE_SIGN, 0, L1CTL_DM_F_CBCH); } else { LOGP(DRR, LOGL_INFO, "chan_nr = 0x%02x TSC = %d ARFCN = %d\n", s->chan_nr, s->tsc, s->arfcn); return l1ctl_tx_dm_est_req_h0(ms, s->arfcn, - s->chan_nr, s->tsc, GSM48_CMODE_SIGN, 0); + s->chan_nr, s->tsc, GSM48_CMODE_SIGN, 0, L1CTL_DM_F_CBCH); } } diff --git a/src/host/layer23/src/mobile/gsm48_rr.c b/src/host/layer23/src/mobile/gsm48_rr.c index 3d15494a..a21758c0 100644 --- a/src/host/layer23/src/mobile/gsm48_rr.c +++ b/src/host/layer23/src/mobile/gsm48_rr.c @@ -3002,10 +3002,10 @@ static int gsm48_rr_activate_channel(struct osmocom_ms *ms, if (cd->h) l1ctl_tx_dm_est_req_h1(ms, cd->maio, cd->hsn, ma, ma_len, cd->chan_nr, cd->tsc, cd->mode, - rr->audio_mode); + rr->audio_mode, 0); else l1ctl_tx_dm_est_req_h0(ms, cd->arfcn, cd->chan_nr, cd->tsc, - cd->mode, rr->audio_mode); + cd->mode, rr->audio_mode, 0); rr->dm_est = 1; /* old SI 5/6 are not valid on a new dedicated channel */ |