From 92e9820966bf6cea79325ad1c7e59c9dc95cdca3 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Fri, 31 Jul 2020 21:43:23 +0700 Subject: firmware/layer1: refactor multi-frame task mask composition Change-Id: I91780146d066c45c42b037c22cb49fd8a96e832b --- src/target/firmware/layer1/l23_api.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/target/firmware/layer1/l23_api.c b/src/target/firmware/layer1/l23_api.c index 62c21f67..e9ce0324 100644 --- a/src/target/firmware/layer1/l23_api.c +++ b/src/target/firmware/layer1/l23_api.c @@ -79,8 +79,8 @@ static uint32_t chan_nr2mf_task_mask(uint8_t chan_nr, uint8_t neigh_mode) uint8_t lch_idx; enum mframe_task master_task = 0; enum mframe_task second_task = 0; - uint32_t neigh_task = 0; enum mf_type multiframe = 0; + uint32_t task_mask = 0x00; if (cbits == 0x01) { lch_idx = 0; @@ -121,22 +121,27 @@ static uint32_t chan_nr2mf_task_mask(uint8_t chan_nr, uint8_t neigh_mode) master_task = MF_TASK_BCCH_CCCH; #endif } + + /* Primary and secondary tasks */ + task_mask |= (1 << master_task) | (1 << second_task); + switch (neigh_mode) { case NEIGH_MODE_PM: switch (multiframe) { case MF51: - neigh_task = (1 << MF_TASK_NEIGH_PM51); + task_mask |= (1 << MF_TASK_NEIGH_PM51); break; case MF26EVEN: - neigh_task = (1 << MF_TASK_NEIGH_PM26E); + task_mask |= (1 << MF_TASK_NEIGH_PM26E); break; case MF26ODD: - neigh_task = (1 << MF_TASK_NEIGH_PM26O); + task_mask |= (1 << MF_TASK_NEIGH_PM26O); break; } break; } - return (1 << master_task) | (1 << second_task) | neigh_task; + + return task_mask; } static int chan_nr2dchan_type(uint8_t chan_nr) -- cgit v1.2.3