summaryrefslogtreecommitdiffstats
path: root/src/host/layer23
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2012-01-02 02:21:19 +0100
committerAndreas Eversberg <jolly@eversberg.eu>2012-01-02 02:21:19 +0100
commitc2b823faf07bc5614feadb7aecf49ee84d43d17e (patch)
tree89d7339f6c7949de91078372435fe74b2217f8b6 /src/host/layer23
parent5e1765c33216f084c83f96ab5745e4b3651d1e17 (diff)
layer23/mobile: Fixed cell re-selection after loosing signal
Test showed that loosing the signal in dedicated mode caused a complete rescann of all cells. By keeping the cell selected, the process can use the neighbour cell informations to do a quick search for the best cell afterwards.
Diffstat (limited to 'src/host/layer23')
-rw-r--r--src/host/layer23/src/mobile/gsm322.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/host/layer23/src/mobile/gsm322.c b/src/host/layer23/src/mobile/gsm322.c
index 9384743c..c5b87b28 100644
--- a/src/host/layer23/src/mobile/gsm322.c
+++ b/src/host/layer23/src/mobile/gsm322.c
@@ -3024,9 +3024,10 @@ int gsm322_l1_signal(unsigned int subsys, unsigned int signal,
cs = &ms->cellsel;
LOGP(DCS, LOGL_INFO, "Loss of CCCH.\n");
if (cs->selected && cs->sel_arfcn == cs->arfcn) {
- LOGP(DCS, LOGL_INFO, "Unselect cell due to loss\n");
- /* unset selected cell */
- gsm322_unselect_cell(cs);
+ /* do not unselect cell */
+ LOGP(DCS, LOGL_INFO, "Keep cell selected after loss, "
+ "so we can use the Neighbour cell information "
+ "for cell re-selection.\n");
}
stop_cs_timer(cs);
gsm322_cs_loss(cs);