changeset 60:0894f542a30c

l1_cmplx.c: l1s_ctrl_snb_dl() reconstructed
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Sun, 27 Mar 2016 16:54:55 +0000
parents 250c8bc322c7
children e4e3d406d4f3
files chipsetsw/layer1/cfile/l1_cmplx.c
diffstat 1 files changed, 46 insertions(+), 49 deletions(-) [+]
line wrap: on
line diff
--- a/chipsetsw/layer1/cfile/l1_cmplx.c	Sun Mar 27 07:30:36 2016 +0000
+++ b/chipsetsw/layer1/cfile/l1_cmplx.c	Sun Mar 27 16:54:55 2016 +0000
@@ -2440,17 +2440,19 @@
   UWORD8          tsc;
   T_INPUT_LEVEL  *IL_info_ptr;
   UWORD32         dsp_task;
-  //static  BOOL    change_synchro;
+  static  BOOL    change_synchro;
   UWORD8          adc_active = INACTIVE;
 #if (L1_FF_MULTIBAND == 1)
   UWORD16 operative_radio_freq;
 #endif /*L1_FF_MULTIBAND*/
   
 #if L1_GPRS
+  static  BOOL    algo_change_synchro_active = FALSE;
   static  BOOL    BCCHS_in_transfert = FALSE;
-  static  BOOL    change_synchro;//OMAPS90550-new
-#endif
+#endif
+#if 0	/* FreeCalypso match TCS211 */
   UWORD8 input_level = 0; //omaps00090550
+#endif
 #if (RF_FAM == 61)
   UWORD16 dco_algo_ctl_nb = 0;
   UWORD8 if_ctl = 0;
@@ -2506,53 +2508,53 @@
 
       // Set CIPHERING reduced frame number.
 #if (AMR == 1)
-#if (FF_L1_TCH_VOCODER_CONTROL == 1)
+  #if (FF_L1_TCH_VOCODER_CONTROL == 1)
       l1ddsp_load_tch_param(&(l1s.next_time),
         SIG_ONLY_MODE,
         l1a_l1s_com.dedic_set.aset->achan_ptr->desc_ptr->channel_type,
-                              #if !FF_L1_IT_DSP_DTX
-        0, 0, 0, 0, 0, 0);
-#else
-                                0, 0, 0, 0, 0, 0, 0);
-                              #endif
+        #if !FF_L1_IT_DSP_DTX
+          0, 0, 0, 0, 0, 0);
         #else
+          0, 0, 0, 0, 0, 0, 0);
+        #endif
+  #else
       l1ddsp_load_tch_param(&(l1s.next_time),
         SIG_ONLY_MODE,
         l1a_l1s_com.dedic_set.aset->achan_ptr->desc_ptr->channel_type,
-                              #if !FF_L1_IT_DSP_DTX
-        0, 0, 0, 0);
-                              #else
-                                0, 0, 0, 0, 0);
-#endif
+        #if !FF_L1_IT_DSP_DTX
+          0, 0, 0, 0);
+        #else
+          0, 0, 0, 0, 0);
         #endif
+  #endif
 #else
-#if (FF_L1_TCH_VOCODER_CONTROL == 1)
+  #if (FF_L1_TCH_VOCODER_CONTROL == 1)
       l1ddsp_load_tch_param(&(l1s.next_time),
         SIG_ONLY_MODE,
         l1a_l1s_com.dedic_set.aset->achan_ptr->desc_ptr->channel_type,
-                              #if !FF_L1_IT_DSP_DTX
-        0, 0, 0, 0, 0);
-#else
-                                0, 0, 0, 0, 0, 0);
-                              #endif
+        #if !FF_L1_IT_DSP_DTX
+          0, 0, 0, 0, 0);
         #else
+          0, 0, 0, 0, 0, 0);
+        #endif
+  #else
       l1ddsp_load_tch_param(&(l1s.next_time),
         SIG_ONLY_MODE,
         l1a_l1s_com.dedic_set.aset->achan_ptr->desc_ptr->channel_type,
-                              #if !FF_L1_IT_DSP_DTX
-        0, 0, 0);
-                              #else
-                                0, 0, 0, 0);
-#endif
-#endif
-#endif
-      lna_off = IL_info_ptr->lna_off;
+        #if !FF_L1_IT_DSP_DTX
+          0, 0, 0);
+        #else
+          0, 0, 0, 0);
+        #endif
+  #endif
+#endif
       // for SDCCH we use DPAGC algorithm.
 #if DPAGC_MAX_FLAG
       agc = Cust_get_agc_from_IL(rx_radio_freq, IL_info_ptr->input_level >> 1, MAX_ID);
 #else
       agc = Cust_get_agc_from_IL(rx_radio_freq, IL_info_ptr->input_level >> 1, AV_ID);
 #endif
+      lna_off = IL_info_ptr->lna_off;
 
 
 
@@ -2569,7 +2571,16 @@
 
       // for PCH/E_PCH/Serving BCCH and All CCCH we use
       // PAGC algorithm.
-#if (L1_FF_MULTIBAND == 0)
+#if 1	/* FreeCalypso match TCS211 */
+
+      agc     = Cust_get_agc_from_IL(rx_radio_freq, l1a_l1s_com.last_input_level[rx_radio_freq - l1_config.std.radio_freq_index_offset].input_level >> 1, MAX_ID);
+      lna_off = l1a_l1s_com.last_input_level[rx_radio_freq - l1_config.std.radio_freq_index_offset].lna_off;
+
+      // Store input_level and lna_off fields used for current CTRL in order to be able
+      // to build IL from pm in READ phase.
+      l1a_l1s_com.Scell_used_IL = l1a_l1s_com.last_input_level[rx_radio_freq - l1_config.std.radio_freq_index_offset];
+
+#elif (L1_FF_MULTIBAND == 0)
 
       input_level = l1a_l1s_com.last_input_level[rx_radio_freq - l1_config.std.radio_freq_index_offset].input_level ;
       lna_off = l1a_l1s_com.last_input_level[rx_radio_freq - l1_config.std.radio_freq_index_offset].lna_off;
@@ -2615,7 +2626,7 @@
           ,&saic_flag
       #endif
           );
-   #endif  //L!SAIC != 0
+   #endif  //L1_SAIC != 0
 
     // ADC measurement
     // ***************
@@ -2748,20 +2759,10 @@
       if (burst_id == BURST_1)
         l1s.forbid_meas = TASK_ROM_MFTAB[task].size;
 
-       /*
-	* FreeCalypso Frankenstein: the following code can't be compiled
-	* using TCS211 L1 data structure definitions, as l1s structure
-	* field algo_change_synchro_active is newly added in the LoCosto
-	* version.  We are adding a preprocessor conditional which we'll
-	* enable when we regain the ability to modify data structure
-	* definitions.
-	*/
-
-    #if HAVE_ALGO_CHG_SYNC_ACT_FIELD
       if (new_offset >= 4)
-        l1s.algo_change_synchro_active = TRUE;
-
-      if (l1s.algo_change_synchro_active)
+        algo_change_synchro_active = TRUE;
+
+      if (algo_change_synchro_active)
       {
         // compute TPU offset for "current timeslot + 4 timeslot"
         new_synchro = l1s.tpu_offset + (4 * TN_WIDTH);
@@ -2774,7 +2775,6 @@
       }
       //no synchro change required, but new offset is computed
       else
-    #endif
       {
         new_synchro = l1s.tpu_offset;
         new_offset = (new_offset * TN_WIDTH) + new_synchro;
@@ -2921,9 +2921,7 @@
          (l1a_l1s_com.l1s_en_task[PDTCH]  == TASK_ENABLED) ||
          (l1a_l1s_com.l1s_en_task[SINGLE] == TASK_ENABLED)))
     {
-      /* FreeCalypso Frankenstein - see above */
-      #if HAVE_ALGO_CHG_SYNC_ACT_FIELD
-        if((burst_id == BURST_4) && l1s.algo_change_synchro_active)
+        if((burst_id == BURST_4) && algo_change_synchro_active)
         {
 
             // Slide synchro back to mach current serving timeslot.
@@ -2938,13 +2936,12 @@
             l1s.tpu_ctrl_reg |= CTRL_SYCB;
             l1s.dsp_ctrl_reg |= CTRL_SYNC;
             l1s.ctrl_synch_before = FALSE;
-            l1s.algo_change_synchro_active = FALSE;
+            algo_change_synchro_active = FALSE;
 
             #if (TRACE_TYPE == 1) || (TRACE_TYPE == 4)
               trace_fct(CST_L1S_ADJUST_TIME, (UWORD32)(-1));//OMAPS00090550
             #endif
         }
-      #endif
     }
 
     // in case of EBCCHS and NBCCHS in packet transfer a change synchro is performed