diff options
Diffstat (limited to 'src/target/firmware/layer1/prim_tch.c')
-rw-r--r-- | src/target/firmware/layer1/prim_tch.c | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/src/target/firmware/layer1/prim_tch.c b/src/target/firmware/layer1/prim_tch.c index a8036d2f..808c2d3b 100644 --- a/src/target/firmware/layer1/prim_tch.c +++ b/src/target/firmware/layer1/prim_tch.c @@ -56,6 +56,9 @@ #include <l1ctl_proto.h> +/* FIXME: count of what? use better name */ +static int count11 = 0; + static inline int msb_get_bit(uint8_t *buf, int bn) { int pos_byte = bn >> 3; @@ -213,6 +216,13 @@ static int l1s_tch_resp(__unused uint8_t p1, __unused uint8_t p2, uint16_t p3) meas_id = (meas_id + 1) % FACCH_MEAS_HIST; /* absolute value doesn't matter */ + count11++; + if (count11 == 20){ + count11=0; + //printf("\nMTZ: arfcn in l1s_tch_resp = %d, sc = %d\n", arfcn, l1s.serving_cell.arfcn); + } + //printf("\nMTZ: arfcn in l1s_tch_resp = %d, sc = %d\n", arfcn, l1s.serving_cell.arfcn); + /* Collect measurements */ rx_tch.meas[meas_id].toa_qbit = dsp_api.db_r->a_serv_demod[D_TOA]; rx_tch.meas[meas_id].pm_dbm8 = @@ -258,6 +268,9 @@ static int l1s_tch_resp(__unused uint8_t p1, __unused uint8_t p2, uint16_t p3) /* Allocate msgb */ /* FIXME: we actually want all allocation out of L1S! */ msg = l1ctl_msgb_alloc(L1CTL_DATA_IND); + //MTZ + //printf("\n\n\n---------------------------------\nFACCH\n---------------------------------\n\n\n"); + //printf("\n\n\n---------------------------------\nFACCH\n---------------------------------\n\n\n"); if(!msg) { printf("TCH FACCH: unable to allocate msgb\n"); goto skip_rx_facch; @@ -272,6 +285,8 @@ static int l1s_tch_resp(__unused uint8_t p1, __unused uint8_t p2, uint16_t p3) dl->band_arfcn = htons(arfcn); dl->frame_nr = htonl(rx_time.fn); + printf("\n\nMTZ: FACCH received - chan_nr=%x\n\n", chan_nr); + /* Average SNR & RX level */ n = tch_f_hn ? 8 : 6; for (i=0; i<n; i++) { @@ -429,8 +444,10 @@ static int l1s_tch_cmd(__unused uint8_t p1, __unused uint8_t p2, uint16_t p3) msg = NULL; /* If TX is empty and we're signalling only, use dummy frame */ - if (msg) - data = msg->l3h; + if (msg) { //MTZ + //printf("\n\n\n---------------------------------\nFACCH\n---------------------------------\n\n\n"); + //printf("\n\n\n---------------------------------\nFACCH\n---------------------------------\n\n\n"); + data = msg->l3h;} else if (tch_mode == SIG_ONLY_MODE) data = pu_get_idle_frame(); else @@ -533,8 +550,16 @@ skip_tx_traffic: dsp_task_iq_swap(TCHT_DSP_TASK, arfcn, 0), 0, tsc /* burst_id unused for TCH */ ); + + //printf("\nMTZ: arfcn in l1s_tch_cmd = %d, sc = %d\n", arfcn, l1s.serving_cell.arfcn); + l1s_rx_win_ctrl(arfcn, L1_RXWIN_NB, 0); + /* stop here, if TX is disabled */ + if (l1s.dedicated.rx_only) + return 0; + + dsp_load_tx_task( dsp_task_iq_swap(TCHT_DSP_TASK, arfcn, 1), 0, tsc /* burst_id unused for TCH */ @@ -798,8 +823,14 @@ static int l1s_tch_a_cmd(__unused uint8_t p1, __unused uint8_t p2, uint16_t p3) dsp_task_iq_swap(TCHA_DSP_TASK, arfcn, 0), 0, tsc /* burst_id unused for TCHA */ ); + //printf("\nMTZ: arfcn in l1s_tch_a_cmd = %d, sc=%d\n", arfcn, l1s.serving_cell.arfcn); l1s_rx_win_ctrl(arfcn, L1_RXWIN_NB, 0); + /* stop here, if TX is disabled */ + if (l1s.dedicated.rx_only) + return 0; + + dsp_load_tx_task( dsp_task_iq_swap(TCHA_DSP_TASK, arfcn, 1), 0, tsc /* burst_id unused for TCHA */ |