From 1cbb2c5caa169c26e8d99942be60f1ea5841ac68 Mon Sep 17 00:00:00 2001
From: Xiwen JIANG <xiwen.jiang@eureocm.fr>
Date: Thu, 18 Aug 2016 19:08:51 +0200
Subject: [PATCH] memory allocation for calibration coefficients and dlsch ue
 spec bf weight

---
 openair1/PHY/LTE_TRANSPORT/dlsch_coding.c | 20 +++++++++++++++++++-
 openair1/SIMULATION/LTE_PHY/dlsim.c       |  5 +----
 targets/SIMU/USER/init_lte.c              | 12 ------------
 3 files changed, 20 insertions(+), 17 deletions(-)

diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
index 48498a4873..9d7f5597cf 100644
--- a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
+++ b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
@@ -123,7 +123,8 @@ LTE_eNB_DLSCH_t *new_eNB_dlsch(unsigned char Kmimo,unsigned char Mdlharq,uint32_
 {
 
   LTE_eNB_DLSCH_t *dlsch;
-  unsigned char exit_flag = 0,i,j,r,aa;
+  unsigned char exit_flag = 0,i,j,r,aa,layer;
+  int re;
   unsigned char bw_scaling =1;
   uint8_t nb_antennas_tx = frame_parms->nb_antennas_tx;
 
@@ -154,6 +155,23 @@ LTE_eNB_DLSCH_t *new_eNB_dlsch(unsigned char Kmimo,unsigned char Mdlharq,uint32_
     dlsch->Mlimit = 4;
     dlsch->Nsoft = Nsoft;
 
+    for (layer=0; layer<4; layer++) {
+      dlsch->ue_spec_bf_weights[layer] = (int32_t**)malloc16(frame_parms->nb_antennas_tx*sizeof(int32_t*));
+  
+       for (aa=0; aa<frame_parms->nb_antennas_tx; aa++) {
+         dlsch->ue_spec_bf_weights[layer][aa] = (int32_t *)malloc16(OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES*sizeof(int32_t));
+         for (re=0;re<OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES; re++) {
+           dlsch->ue_spec_bf_weights[layer][aa][re] = 0x00007fff;
+         }
+       }
+     }
+
+     dlsch->calib_dl_ch_estimates = (int32_t**)malloc16(frame_parms->nb_antennas_tx*sizeof(int32_t*));
+     for (aa=0; aa<frame_parms->nb_antennas_tx; aa++) {
+       dlsch->calib_dl_ch_estimates[aa] = (int32_t *)malloc16(OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES*sizeof(int32_t));
+       
+     }
+
     for (i=0; i<10; i++)
       dlsch->harq_ids[i] = Mdlharq;
 
diff --git a/openair1/SIMULATION/LTE_PHY/dlsim.c b/openair1/SIMULATION/LTE_PHY/dlsim.c
index 1a34e59f5a..294dbf3b44 100644
--- a/openair1/SIMULATION/LTE_PHY/dlsim.c
+++ b/openair1/SIMULATION/LTE_PHY/dlsim.c
@@ -934,13 +934,10 @@ int main(int argc, char **argv)
       } else {
          // this initilisation may should be moved to another place
         for (j=0; j<4; j++) {                                                            
-          PHY_vars_eNB->dlsch_eNB[k][i]->ue_spec_bf_weights[j] = (int32_t **)malloc16(n_tx_phy*sizeof(int32_t*));       
- 
           for (aa=0; aa<n_tx_phy; aa++) {                                          
-            PHY_vars_eNB->dlsch_eNB[k][i]->ue_spec_bf_weights[j][aa] = (int32_t *)malloc16(OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES*sizeof(int32_t));
             ue_spec_bf_weights = PHY_vars_eNB->dlsch_eNB[k][i]->ue_spec_bf_weights[j][aa];
 
-            for (re=0;re<frame_parms->ofdm_symbol_size;re++) {
+            for (re=0;re<OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES;re++) {
               if (n_tx_phy==1 || n_tx_phy==2)
                 ue_spec_bf_weights[re] = 0x00007fff;
               else if (n_tx_phy==4 || n_tx_phy==8)
diff --git a/targets/SIMU/USER/init_lte.c b/targets/SIMU/USER/init_lte.c
index 512187a52b..4a71b0aad9 100644
--- a/targets/SIMU/USER/init_lte.c
+++ b/targets/SIMU/USER/init_lte.c
@@ -79,18 +79,6 @@ PHY_VARS_eNB* init_lte_eNB(LTE_DL_FRAME_PARMS *frame_parms,
       } else {
         LOG_D(PHY,"dlsch_eNB[%d][%d] => %p\n",i,j,PHY_vars_eNB->dlsch_eNB[i][j]);
         PHY_vars_eNB->dlsch_eNB[i][j]->rnti=0;
-
-        for (layer=0; layer<4; layer++) {
-          PHY_vars_eNB->dlsch_eNB[i][j]->ue_spec_bf_weights[layer] = (int32_t **)malloc16(frame_parms->nb_antennas_tx*sizeof(int32_t*));
-
-          for (aa=0; aa<frame_parms->nb_antennas_tx; aa++) {
-            PHY_vars_eNB->dlsch_eNB[i][j]->ue_spec_bf_weights[layer][aa] = (int32_t *)malloc16(OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES*sizeof(int32_t));
-            for (re=0;re<OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES; re++) {
-              PHY_vars_eNB->dlsch_eNB[i][j]->ue_spec_bf_weights[layer][aa][re] = 0x00007fff;
-            }
-          }
-        } 
-
       }
     }
 
-- 
GitLab