summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/include/layer1
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2010-03-27 18:40:21 +0800
committerHarald Welte <laforge@gnumonks.org>2010-03-27 18:42:43 +0800
commit1e4d22cb5f66352e23ef05212035bd29bfb7d6e1 (patch)
treea037679bfe868ff7675433e771216216942ef68c /src/target/firmware/include/layer1
parent413b10e33ea9c86555e87809816fc1fbeb7f1959 (diff)
Implement L23-triggered L1 power measurement scan
Now layer23 can ask L1 to scan an entire range of ARFCN's and do power measurements. This is the first step in the cell (re)selection process.
Diffstat (limited to 'src/target/firmware/include/layer1')
-rw-r--r--src/target/firmware/include/layer1/l23_api.h1
-rw-r--r--src/target/firmware/include/layer1/sync.h13
2 files changed, 14 insertions, 0 deletions
diff --git a/src/target/firmware/include/layer1/l23_api.h b/src/target/firmware/include/layer1/l23_api.h
index 69d4203a..66efce5d 100644
--- a/src/target/firmware/include/layer1/l23_api.h
+++ b/src/target/firmware/include/layer1/l23_api.h
@@ -7,6 +7,7 @@
void l1a_l23api_init(void);
void l1_queue_for_l2(struct msgb *msg);
+struct msgb *l1ctl_msgb_alloc(uint8_t msg_type);
struct msgb *l1_create_l2_msg(int msg_type, uint32_t fn, uint16_t snr, uint16_t arfcn);
#endif /* _L1_L23_API_H */
diff --git a/src/target/firmware/include/layer1/sync.h b/src/target/firmware/include/layer1/sync.h
index 6bdb57ac..f13d5a97 100644
--- a/src/target/firmware/include/layer1/sync.h
+++ b/src/target/firmware/include/layer1/sync.h
@@ -37,6 +37,19 @@ struct l1s_state {
uint32_t mf_tasks;
struct {
+ /* power measurement l1 task */
+ unsigned int mode;
+ union {
+ struct {
+ uint16_t arfcn_start;
+ uint16_t arfcn_next;
+ uint16_t arfcn_end;
+ } range;
+ };
+ struct msgb *msg;
+ } pm;
+
+ struct {
uint8_t ra;
} rach;
};