summaryrefslogtreecommitdiffstats
path: root/src/host
diff options
context:
space:
mode:
authorAndreas.Eversberg <jolly@eversberg.eu>2010-10-15 18:50:25 +0000
committerAndreas.Eversberg <jolly@eversberg.eu>2010-10-15 18:50:25 +0000
commit19807191b6b7407900971b3af533611661ff623d (patch)
tree5f2e4e316136267722063caa0cca5a9fd7a63777 /src/host
parent1dd14c0b26e0427f63b36eb5aeb259e1cfb4f8e9 (diff)
[layer23] If the mobile sticks to a cell, RXLEV_MIN is ignored
Diffstat (limited to 'src/host')
-rw-r--r--src/host/layer23/src/mobile/gsm322.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/host/layer23/src/mobile/gsm322.c b/src/host/layer23/src/mobile/gsm322.c
index 2abaa566..07e67d36 100644
--- a/src/host/layer23/src/mobile/gsm322.c
+++ b/src/host/layer23/src/mobile/gsm322.c
@@ -1496,6 +1496,7 @@ static int gsm322_am_no_cell_found(struct osmocom_ms *ms, struct msgb *msg)
static int gsm322_cs_select(struct osmocom_ms *ms, int any, int plmn_allowed)
{
struct gsm322_cellsel *cs = &ms->cellsel;
+ struct gsm_settings *set = &ms->settings;
struct gsm_subscriber *subscr = &ms->subscr;
struct gsm48_sysinfo *s;
int i, found = -1, power = 0;
@@ -1532,7 +1533,8 @@ static int gsm322_cs_select(struct osmocom_ms *ms, int any, int plmn_allowed)
/* check C1 criteria not fullfilled */
// TODO: C1 is also dependant on power class and max power
- if (rxlev2dbm(cs->list[i].rxlev) < s->rxlev_acc_min_db) {
+ if (rxlev2dbm(cs->list[i].rxlev) < s->rxlev_acc_min_db
+ && !set->stick) {
LOGP(DCS, LOGL_INFO, "Skip frequency %d: C1 criteria "
"not met. (rxlev %s < min %d)\n", i,
gsm_print_rxlev(cs->list[i].rxlev),