diff options
author | Andreas.Eversberg <jolly@eversberg.eu> | 2010-08-12 07:11:04 +0000 |
---|---|---|
committer | Andreas.Eversberg <jolly@eversberg.eu> | 2010-08-12 07:11:04 +0000 |
commit | c27bbfa7d9c0821afc31e4fafa3fd6ea44719df5 (patch) | |
tree | aa53831344328b35c15986a221ef04a665a3e85b | |
parent | a5b023cd98c792c6fbf3bd7c6b04696fed987d9a (diff) |
[layer23] Removed hack: Allocate SDCCH when requesting a TCH
Includes removal of compiler warnings when selecting the right channel
request type for TCH.
-rw-r--r-- | src/host/layer23/src/mobile/gsm48_rr.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/host/layer23/src/mobile/gsm48_rr.c b/src/host/layer23/src/mobile/gsm48_rr.c index 9bb6ab17..46993d82 100644 --- a/src/host/layer23/src/mobile/gsm48_rr.c +++ b/src/host/layer23/src/mobile/gsm48_rr.c @@ -1005,8 +1005,6 @@ static int gsm48_rr_chan_req(struct osmocom_ms *ms, int cause, int paging) /* number of retransmissions (with first transmission) */ rr->n_chan_req = s->max_retrans + 1; -#warning HACK: always request SDCCH for test -cause = RR_EST_CAUSE_LOC_UPD; /* generate CHAN REQ (9.1.8) */ switch (cause) { case RR_EST_CAUSE_EMERGENCY: @@ -1065,36 +1063,36 @@ cause = RR_EST_CAUSE_LOC_UPD; break; case RR_EST_CAUSE_ANS_PAG_TCH_F: switch (sup->ch_cap) { + case GSM_CAP_SDCCH: + chan_req_mask = 0x0f; + chan_req_val = 0x10; + break; case GSM_CAP_SDCCH_TCHF: chan_req_mask = 0x1f; chan_req_val = 0x80; break; - case GSM_CAP_SDCCH_TCHF_TCHH: + default: chan_req_mask = 0x0f; chan_req_val = 0x20; break; - case GSM_CAP_SDCCH: - chan_req_mask = 0x0f; - chan_req_val = 0x10; - break; } LOGP(DRR, LOGL_INFO, "CHANNEL REQUEST: %02x (PAGING TCH/F)\n", chan_req_val); break; case RR_EST_CAUSE_ANS_PAG_TCH_ANY: switch (sup->ch_cap) { + case GSM_CAP_SDCCH: + chan_req_mask = 0x0f; + chan_req_val = 0x10; + break; case GSM_CAP_SDCCH_TCHF: chan_req_mask = 0x1f; chan_req_val = 0x80; break; - case GSM_CAP_SDCCH_TCHF_TCHH: + default: chan_req_mask = 0x0f; chan_req_val = 0x30; break; - case GSM_CAP_SDCCH: - chan_req_mask = 0x0f; - chan_req_val = 0x10; - break; } LOGP(DRR, LOGL_INFO, "CHANNEL REQUEST: %02x (PAGING TCH/H or " "TCH/F)\n", chan_req_val); @@ -2818,7 +2816,8 @@ static int gsm48_rr_dl_est(struct osmocom_ms *ms) #else rsl_dec_chan_nr(rr->cd_now.chan_nr, &ch_type, &ch_subch, &ch_ts); if ((ch_type != RSL_CHAN_SDCCH8_ACCH - && ch_type != RSL_CHAN_SDCCH4_ACCH) || ch_ts > 4 || ch_subch >= 4) { + && ch_type != RSL_CHAN_SDCCH4_ACCH + && ch_type != RSL_CHAN_Bm_ACCHs) /*|| ch_ts > 4*/ || ch_subch >= 4) { printf("Channel type %d, subch %d, ts %d not supported, " "exitting.\n", ch_type, ch_subch, ch_ts); exit(-ENOTSUP); |