diff options
author | Muhammad Awais Aslam <mawais.aslam985@gmail.com> | 2017-12-19 15:57:20 +0500 |
---|---|---|
committer | Vadim Yanitskiy <axilirator@gmail.com> | 2019-05-10 18:18:35 +0700 |
commit | 8f56258867ed321f8aee59f8cd0fb6a1f36090c9 (patch) | |
tree | 1816ba7e84b323ff391a94c86fc083553249de9c /src/target/firmware/include/layer1/sync.h | |
parent | 0f5f76f65149f82b00ffba40794c59add7bedc88 (diff) |
WIP/HACK: bsic decoding of neighbour cells in dedicated mode and partially success in synchronized handovermawais/ho
Change-Id: Ib01460b796d2107c4599d327e184eb42340999d2
Diffstat (limited to 'src/target/firmware/include/layer1/sync.h')
-rw-r--r-- | src/target/firmware/include/layer1/sync.h | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/src/target/firmware/include/layer1/sync.h b/src/target/firmware/include/layer1/sync.h index 3565ee20..df3c6fdc 100644 --- a/src/target/firmware/include/layer1/sync.h +++ b/src/target/firmware/include/layer1/sync.h @@ -55,6 +55,17 @@ struct l1s_h1 { }; struct l1s_state { + + //MTZ + int new_dm; + uint32_t orig_tpu_offset; + uint32_t tpu_offsets[64]; + uint32_t nb_freq_diff[64]; + uint32_t nb_frame_diff[64]; + int32_t nb_sb_freq_diff[64]; + uint32_t nb_sb_snr[64]; + uint16_t tpu_offsets_arfcn[64]; + struct gsm_time current_time; /* current GSM time */ struct gsm_time next_time; /* GSM time at next TMDMA irq */ @@ -127,6 +138,7 @@ struct l1s_state { GSM_DCHAN_UNKNOWN, } type; + uint8_t chan_nr; uint8_t scn; uint8_t tsc; uint8_t tn; @@ -145,19 +157,37 @@ struct l1s_state { struct l1s_h0 st_h0; struct l1s_h1 st_h1; }; + + uint8_t rx_only; } dedicated; /* neighbour cell power measurement process */ struct { - uint8_t n, second; - uint8_t pos; - uint8_t running; - uint16_t band_arfcn[64]; - uint8_t tn[64]; - uint8_t level[64]; + uint32_t start_fn; /* frame number of measumrement start */ + uint8_t valid; /* we have a complete set of measurements */ + uint8_t rounds; /* current rounds of complete measurements */ + uint8_t pos; /* current neighbor to measure */ + uint8_t running; /* DSP task running */ + uint8_t n; /* number of neighbors to measure */ + uint16_t band_arfcn[64]; /* list of ARFCNs */ + uint8_t tn[64]; /* list of TS offset for each measurement */ + uint16_t level_sum[64]; /* sum while processing rounds */ + uint8_t level[64]; /* latest results */ + uint32_t tpu_offset[64]; } neigh_pm; + + /* neighbor cell SCH sync process */ + struct { + uint8_t flags_bsic[64]; /* flags + bsic */ + uint8_t count; /* counter for sync process */ + uint8_t index; /* cell of current sync process (0..63) */ + uint8_t running; /* DSP task running */ + } neigh_sb; }; +#define NEIGH_PM_FLAG_SCANNED 0x80 +#define NEIGH_PM_FLAG_BSIC 0x40 + extern struct l1s_state l1s; struct l1s_meas_hdr { |