changeset 303:5408ac162f16

l1p_cmpl.c: l1ps_read_nb_dl() reconstructed
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 02 Oct 2017 07:49:35 +0000 (2017-10-02)
parents cffa1b8dbf2c
children e3db5c73c86d
files chipsetsw/layer1/p_cfile/l1p_cmpl.c
diffstat 1 files changed, 26 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/chipsetsw/layer1/p_cfile/l1p_cmpl.c	Mon Oct 02 07:08:58 2017 +0000
+++ b/chipsetsw/layer1/p_cfile/l1p_cmpl.c	Mon Oct 02 07:49:35 2017 +0000
@@ -2596,24 +2596,23 @@
       if (l1a_l1s_com.dsp_scheduler_mode == GSM_SCHEDULER)
       {
         toa   = l1s_dsp_com.dsp_db_r_ptr->a_serv_demod[D_TOA]   & 0xffff;
-        pm    = (l1s_dsp_com.dsp_db_r_ptr->a_serv_demod[D_PM]   & 0xffff);
+        pm    = (l1s_dsp_com.dsp_db_r_ptr->a_serv_demod[D_PM]   & 0xffff) >> 5;
         angle = l1s_dsp_com.dsp_db_r_ptr->a_serv_demod[D_ANGLE] & 0xffff;
         snr   = l1s_dsp_com.dsp_db_r_ptr->a_serv_demod[D_SNR]   & 0xffff;
       }
       else
       {
         toa   =  l1ps_dsp_com.pdsp_db_r_ptr->a_burst_toa_gprs[0]   & 0xffff;
-        pm    = (l1ps_dsp_com.pdsp_db_r_ptr->a_burst_pm_gprs[0]    & 0xffff);
+        pm    = (l1ps_dsp_com.pdsp_db_r_ptr->a_burst_pm_gprs[0]    & 0xffff)>>5;
         angle =  l1ps_dsp_com.pdsp_db_r_ptr->a_burst_angle_gprs[0] & 0xffff;
         snr   =  l1ps_dsp_com.pdsp_db_r_ptr->a_burst_snr_gprs[0]   & 0xffff;
       }
 
       #if (TRACE_TYPE!=0) && (TRACE_TYPE!=5)
-        trace_fct(CST_L1PS_READ_NB_DL, 1); //OMAPS00090550
+        trace_fct(CST_L1PS_READ_NB_DL, -1);
       #endif
 
       l1_check_pm_error(pm,task);
-      pm = pm >> 5;
 
       // Update AGC: Call PAGC algorithm
       l1a_l1s_com.Scell_IL_for_rxlev = l1pctl_pagc_read((UWORD8)pm, l1pa_l1ps_com.p_idle_param.radio_freq_dd);
@@ -2656,16 +2655,32 @@
             if(l1s.toa_snr_mask == 0)
           #endif
           {
-            UWORD32 snr_temp;
-            snr_temp = (l1a_l1s_com.Scell_IL_for_rxlev < IL_FOR_RXLEV_SNR) ? snr: 0;
             #if (TOA_ALGO == 2)
+              UWORD32 snr_temp;
+              snr_temp = (l1a_l1s_com.Scell_IL_for_rxlev < IL_FOR_RXLEV_SNR) ? snr: 0;
               l1s.toa_var.toa_shift = l1ctl_toa(TOA_RUN, l1a_l1s_com.mode, snr_temp, toa);
             #else
-              l1s.toa_shift = l1ctl_toa(TOA_RUN, l1a_l1s_com.mode, snr_temp, toa, &l1s.toa_update, &l1s.toa_period_count
-#if (FF_L1_FAST_DECODING == 1)
-              ,0
-#endif
-	      );
+              /* FreeCalypso TCS211 reconstruction */
+              if (l1a_l1s_com.Scell_IL_for_rxlev < IL_FOR_RXLEV_SNR)
+              {
+                l1s.toa_shift = l1ctl_toa(TOA_RUN, l1a_l1s_com.mode, snr, toa,
+                                          &l1s.toa_update,
+                                          &l1s.toa_period_count
+                                       #if (FF_L1_FAST_DECODING == 1)
+                                          ,0
+                                       #endif
+                                );
+              }
+              else
+              {
+                l1s.toa_shift = l1ctl_toa(TOA_RUN, l1a_l1s_com.mode, 0, toa,
+                                          &l1s.toa_update,
+                                          &l1s.toa_period_count
+                                       #if (FF_L1_FAST_DECODING == 1)
+                                          ,0
+                                       #endif
+                                );
+              }
             #endif
           }
         #endif