FreeCalypso > hg > freecalypso-sw
annotate gsm-fw/L1/cfile/tch_feature.c @ 1006:6e1fcffd3266
gsm-fw/riviera/rvt channel addition: missed the bit in rvt_task.c
author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
---|---|
date | Sun, 20 Mar 2016 18:58:07 +0000 |
parents | 908566db1538 |
children | 3bfeee466b0a |
rev | line source |
---|---|
1003
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
1 /* |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
2 * This module is a FreeCalypso addition; it contains code implementing |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
3 * our custom voice TCH rerouting feature. |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
4 */ |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
5 |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
6 #include "config.h" |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
7 #include "l1_confg.h" |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
8 #include "l1_types.h" |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
9 #include "sys_types.h" |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
10 #include "l1_trace.h" |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
11 #include "tch_feature.h" |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
12 |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
13 T_RVT_USER_ID tch_reroute_rvt_id; |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
14 BOOL tch_reroute_downlink; |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
15 |
1005
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
16 static void handle_tch_config_reg(T_RVT_BUFFER pkt) |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
17 { |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
18 UWORD8 config; |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
19 T_RVT_BUFFER buf; |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
20 T_RVT_RET rc; |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
21 |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
22 config = pkt[1] & 0x01; |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
23 tch_reroute_downlink = config; |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
24 |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
25 /* send TCH_CONFIG_CONF response */ |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
26 rc = rvt_mem_alloc(tch_reroute_rvt_id, 2, &buf); |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
27 if (rc == RVT_OK) { |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
28 buf[0] = TCH_CONFIG_CONF; |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
29 buf[1] = config; |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
30 rvt_send_trace_no_cpy(buf, tch_reroute_rvt_id, 2, |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
31 RVT_BINARY_FORMAT); |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
32 } |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
33 } |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
34 |
1003
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
35 /* |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
36 * The following function is the callback registered with RVT; it gets |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
37 * called in RVT HISR context. |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
38 */ |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
39 static void tch_rvt_input_callback(T_RVT_BUFFER pkt, UINT16 pktlen) |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
40 { |
1005
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
41 if (pktlen < 1) |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
42 return; |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
43 switch (pkt[0]) { |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
44 case TCH_CONFIG_REQ: |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
45 if (pktlen != 2) |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
46 return; |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
47 handle_tch_config_reg(pkt); |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
48 break; |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
49 case TCH_ULBITS_REQ: |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
50 /* to be filled */ |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
51 break; |
908566db1538
gsm-fw feature tch-reroute: init and config fleshed out
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
1003
diff
changeset
|
52 } |
1003
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
53 } |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
54 |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
55 void feature_tch_reroute_init() |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
56 { |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
57 rvt_register_id("TCH", &tch_reroute_rvt_id, tch_rvt_input_callback); |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
58 tch_reroute_downlink = FALSE; |
9b147d0b2cab
gsm-fw feature tch-reroute: started laying the foundation
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
diff
changeset
|
59 } |