diff options
-rw-r--r-- | src/target/firmware/include/layer1/mframe_sched.h | 1 | ||||
-rw-r--r-- | src/target/firmware/layer1/l23_api.c | 8 | ||||
-rw-r--r-- | src/target/firmware/layer1/mframe_sched.c | 11 |
3 files changed, 14 insertions, 6 deletions
diff --git a/src/target/firmware/include/layer1/mframe_sched.h b/src/target/firmware/include/layer1/mframe_sched.h index 3b2039a2..ecdb1ec8 100644 --- a/src/target/firmware/include/layer1/mframe_sched.h +++ b/src/target/firmware/include/layer1/mframe_sched.h @@ -28,6 +28,7 @@ enum mframe_task { MF_TASK_TCH_H_0, MF_TASK_TCH_H_1, + MF_TASK_NEIGH_PM51_C0T0, MF_TASK_NEIGH_PM51, MF_TASK_NEIGH_PM26E, MF_TASK_NEIGH_PM26O, diff --git a/src/target/firmware/layer1/l23_api.c b/src/target/firmware/layer1/l23_api.c index 1c4459e6..ae39e634 100644 --- a/src/target/firmware/layer1/l23_api.c +++ b/src/target/firmware/layer1/l23_api.c @@ -228,8 +228,8 @@ static void l1ctl_rx_dm_est_req(struct msgb *msg) printd("L1CTL_DM_EST_REQ (arfcn=%u, chan_nr=0x%02x, tsc=%u)\n", ntohs(est_req->h0.band_arfcn), ul->chan_nr, est_req->tsc); - /* disable neighbour cell measurement */ - mframe_disable(MF_TASK_NEIGH_PM51); + /* disable neighbour cell measurement of C0 TS 0 */ + mframe_disable(MF_TASK_NEIGH_PM51_C0T0); /* configure dedicated channel state */ l1s.dedicated.type = chan_nr2dchan_type(ul->chan_nr); @@ -539,9 +539,9 @@ static void l1ctl_rx_neigh_pm_req(struct msgb *msg) printf("L1CTL_NEIGH_PM_REQ new list with %u entries\n", pm_req->n); l1s.neigh_pm.n = pm_req->n; /* atomic */ - /* on BCCH enable PM on frame 51 */ + /* on C0 enable PM on frame 51 */ if (l1s.dedicated.type == GSM_DCHAN_NONE) - mframe_enable(MF_TASK_NEIGH_PM51); + mframe_enable(MF_TASK_NEIGH_PM51_C0T0); } /* receive a L1CTL_TRAFFIC_REQ from L23 */ diff --git a/src/target/firmware/layer1/mframe_sched.c b/src/target/firmware/layer1/mframe_sched.c index 2367d425..f3a6b433 100644 --- a/src/target/firmware/layer1/mframe_sched.c +++ b/src/target/firmware/layer1/mframe_sched.c @@ -198,8 +198,8 @@ static const struct mframe_sched_item mf_sdcch8_7[] = { { .sched_set = NULL } }; -/* Measurement for MF 51 */ -static const struct mframe_sched_item mf_neigh_pm51[] = { +/* Measurement for MF 51 C0 */ +static const struct mframe_sched_item mf_neigh_pm51_c0t0[] = { { .sched_set = NEIGH_PM , .modulo = 51, .frame_nr = 0 }, { .sched_set = NEIGH_PM , .modulo = 51, .frame_nr = 10 }, { .sched_set = NEIGH_PM , .modulo = 51, .frame_nr = 20 }, @@ -208,6 +208,12 @@ static const struct mframe_sched_item mf_neigh_pm51[] = { { .sched_set = NULL } }; +/* Measurement for MF 51 */ +static const struct mframe_sched_item mf_neigh_pm51[] = { + { .sched_set = NEIGH_PM , .modulo = 51, .frame_nr = 50 }, + { .sched_set = NULL } +}; + /* TCH */ #define TCH tch_sched_set #define TCH_A tch_a_sched_set @@ -326,6 +332,7 @@ static const struct mframe_sched_item *sched_set_for_task[32] = { [MF_TASK_TCH_H_0] = mf_tch_h_0, [MF_TASK_TCH_H_1] = mf_tch_h_1, + [MF_TASK_NEIGH_PM51_C0T0] = mf_neigh_pm51_c0t0, [MF_TASK_NEIGH_PM51] = mf_neigh_pm51, [MF_TASK_NEIGH_PM26E] = mf_neigh_pm26_even, [MF_TASK_NEIGH_PM26O] = mf_neigh_pm26_odd, |