From f4a957f7cbdd1c6593ba0ff62e7ac294c37751d8 Mon Sep 17 00:00:00 2001
From: Florian Kaltenberger <florian.kaltenberger@eurecom.fr>
Date: Thu, 11 Dec 2014 10:56:47 +0000
Subject: [PATCH] fix for compilation with EXMIMO=1 and Rel10=1

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@6245 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
 openair1/PHY/INIT/lte_init.c            | 40 ++++++++++++++-----------
 openair1/SCHED/phy_procedures_lte_eNb.c |  6 ++--
 openair1/SCHED/phy_procedures_lte_ue.c  |  2 ++
 3 files changed, 27 insertions(+), 21 deletions(-)

diff --git a/openair1/PHY/INIT/lte_init.c b/openair1/PHY/INIT/lte_init.c
index 86b6ba9902..e6ec127f1c 100644
--- a/openair1/PHY/INIT/lte_init.c
+++ b/openair1/PHY/INIT/lte_init.c
@@ -37,6 +37,7 @@
 //#include "pci_commands.h"
 #endif //CBMIMO1
 */
+#include "openair0_lib.h"
 #include "defs.h"
 #include "SCHED/defs.h"
 #include "PHY/extern.h"
@@ -49,6 +50,10 @@
 #include "UTIL/LOG/vcd_signal_dumper.h"
 //#define DEBUG_PHY
 
+#ifdef Rel10
+extern openair0_rf_map rf_map[MAX_NUM_CCs];
+#endif
+
 extern uint16_t prach_root_sequence_map0_3[838];
 extern uint16_t prach_root_sequence_map4[138];
 uint8_t dmrs1_tab[8] = {0,2,3,4,6,8,9,10};
@@ -646,24 +651,23 @@ void phy_config_dedicated_scell_eNB(uint8_t Mod_id,
 
 #ifdef EXMIMO
 #ifdef DRIVER2013
-  exmimo_config_t *p_exmimo_config = openair0_exmimo_pci[card].exmimo_config_ptr;
+  exmimo_config_t *p_exmimo_config = openair0_exmimo_pci[rf_map[CC_id].card].exmimo_config_ptr;
 #endif
 #endif
 
   if ((dl_CarrierFreq_r10>=36000) && (dl_CarrierFreq_r10<=36199)) {
     carrier_freq_local = 1900000000 + (dl_CarrierFreq_r10-36000)*100000; //band 33 from 3GPP 36.101 v 10.9 Table 5.7.3-1
-#warning "fixme: update the phy frame counter "
     LOG_I(PHY,"[eNB %d] Frame %d: Configured SCell %d to frequency %d (ARFCN %d) for UE %d\n",Mod_id,/*phy_vars_eNB->frame*/0,CC_id,carrier_freq_local,dl_CarrierFreq_r10,UE_id);
 #ifdef EXMIMO
 #ifdef DRIVER2013
-    carrier_freq[CC_id] = carrier_freq_local;
-    openair_daq_vars.freq_offset = -6540;
-    p_exmimo_config->rf.rf_freq_rx[CC_id] = carrier_freq[CC_id]+openair_daq_vars.freq_offset2;
-    p_exmimo_config->rf.rf_freq_tx[CC_id] = carrier_freq[CC_id]+openair_daq_vars.freq_offset2;
-    p_exmimo_config->rf.tx_gain[CC_id][0] = 25;
-    p_exmimo_config->rf.rf_vcocal[CC_id] = 910;
-    p_exmimo_config->rf.rf_local[CC_id] = 8255063; //this should be taken form calibration file
-    p_exmimo_config->rf.rffe_band_mode[CC_id] = B19G_TDD;
+    //carrier_freq[CC_id] = carrier_freq_local;
+    //openair_daq_vars.freq_offset = -6540;
+    p_exmimo_config->rf.rf_freq_rx[rf_map[CC_id].chain] = carrier_freq_local;//+openair_daq_vars.freq_offset2;
+    p_exmimo_config->rf.rf_freq_tx[rf_map[CC_id].chain] = carrier_freq_local;//+openair_daq_vars.freq_offset2;
+    p_exmimo_config->rf.tx_gain[rf_map[CC_id].chain][0] = 25;
+    p_exmimo_config->rf.rf_vcocal[rf_map[CC_id].chain] = 910;
+    p_exmimo_config->rf.rf_local[rf_map[CC_id].chain] = 8255063; //this should be taken form calibration file
+    p_exmimo_config->rf.rffe_band_mode[rf_map[CC_id].chain] = B19G_TDD;
 #endif
 #endif
   }
@@ -673,14 +677,14 @@ void phy_config_dedicated_scell_eNB(uint8_t Mod_id,
     LOG_I(PHY,"[eNB %d] Frame %d: Configured SCell %d to frequency %d (ARFCN %d) for UE %d\n",Mod_id,/*phy_vars_eNB->frame*/0,CC_id,carrier_freq_local,dl_CarrierFreq_r10,UE_id);
 #ifdef EXMIMO
 #ifdef DRIVER2013
-    carrier_freq[CC_id] = carrier_freq_local;
-    openair_daq_vars.freq_offset = -2000;
-    p_exmimo_config->rf.rf_freq_rx[CC_id] = carrier_freq[CC_id]+openair_daq_vars.freq_offset2;
-    p_exmimo_config->rf.rf_freq_tx[CC_id] = carrier_freq[CC_id]+openair_daq_vars.freq_offset2;
-    p_exmimo_config->rf.tx_gain[CC_id][0] = 10;
-    p_exmimo_config->rf.rf_vcocal[CC_id] = 2015;
-    p_exmimo_config->rf.rf_local[CC_id] =  8254992; //this should be taken form calibration file
-    p_exmimo_config->rf.rffe_band_mode[CC_id] = DD_TDD;
+    //carrier_freq[CC_id] = carrier_freq_local;
+    //openair_daq_vars.freq_offset = -2000;
+    p_exmimo_config->rf.rf_freq_rx[rf_map[CC_id].chain] = carrier_freq_local;//+openair_daq_vars.freq_offset2;
+    p_exmimo_config->rf.rf_freq_tx[rf_map[CC_id].chain] = carrier_freq_local;//+openair_daq_vars.freq_offset2;
+    p_exmimo_config->rf.tx_gain[rf_map[CC_id].chain][0] = 10;
+    p_exmimo_config->rf.rf_vcocal[rf_map[CC_id].chain] = 2015;
+    p_exmimo_config->rf.rf_local[rf_map[CC_id].chain] =  8254992; //this should be taken form calibration file
+    p_exmimo_config->rf.rffe_band_mode[rf_map[CC_id].chain] = DD_TDD;
 #endif
 #endif
   }
diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c
index 920faf5873..7f60037882 100755
--- a/openair1/SCHED/phy_procedures_lte_eNb.c
+++ b/openair1/SCHED/phy_procedures_lte_eNb.c
@@ -219,7 +219,7 @@ int get_ue_active_harq_pid(uint8_t Mod_id,uint8_t CC_id,uint16_t rnti,int frame,
   //  int subframe = PHY_vars_eNB_g[Mod_id][CC_id]->proc[sched_subframe].subframe_tx;
 
   if (UE_id==-1) {
-    LOG_E(PHY,"Cannot find UE with rnti %x\n",rnti);
+    LOG_D(PHY,"Cannot find UE with rnti %x (Mod_id %d, CC_id %d)\n",rnti, Mod_id, CC_id);
     *round=0;
     return(-1);
   }
@@ -3095,8 +3095,8 @@ void phy_procedures_eNB_RX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
 	  // If we've dropped the UE, go back to PRACH mode for this UE
 	  //#if !defined(EXMIMO_IOT)
 	  if (phy_vars_eNB->eNB_UE_stats[i].ulsch_consecutive_errors == ULSCH_max_consecutive_errors) {
-	    LOG_I(PHY,"[eNB %d] frame %d, subframe %d, UE %d: ULSCH consecutive error count reached %u, removing UE\n",
-		  phy_vars_eNB->Mod_id,frame,subframe, i, phy_vars_eNB->eNB_UE_stats[i].ulsch_consecutive_errors);
+	    LOG_I(PHY,"[eNB %d, CC %d] frame %d, subframe %d, UE %d: ULSCH consecutive error count reached %u, removing UE\n",
+		  phy_vars_eNB->Mod_id,phy_vars_eNB->CC_id,frame,subframe, i, phy_vars_eNB->eNB_UE_stats[i].ulsch_consecutive_errors);
 
 	    //	    mac_xface->macphy_exit("Consecutive error count reached");
 
diff --git a/openair1/SCHED/phy_procedures_lte_ue.c b/openair1/SCHED/phy_procedures_lte_ue.c
index 2ddbab1a49..b8e7f6c884 100755
--- a/openair1/SCHED/phy_procedures_lte_ue.c
+++ b/openair1/SCHED/phy_procedures_lte_ue.c
@@ -3176,10 +3176,12 @@ int lte_ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
 			       0,0);
 	}
 	else { // abstraction
+#ifdef PHY_ABSTRACTION
 	  ret = dlsch_decoding_emul(phy_vars_ue,
 				    subframe_rx,
 				    5, // PMCH
 				    eNB_id);
+#endif
 	}
 	if (mcch_active == 1)
 	  phy_vars_ue->dlsch_mcch_trials[sync_area][0]++;
-- 
2.26.2