Merge remote-tracking branch 'remotes/gfiber-internal/vendor_drops' into rc76merge
diff --git a/arch/arm/mach-feroceon-kw2/include/mach/system.h b/arch/arm/mach-feroceon-kw2/include/mach/system.h
index 8133fe0..313c6e8 100755
--- a/arch/arm/mach-feroceon-kw2/include/mach/system.h
+++ b/arch/arm/mach-feroceon-kw2/include/mach/system.h
@@ -31,7 +31,7 @@
 	cpu_do_idle();
 }
 
-#define UPON_SDK_VERSION "uPON_2.6.25_RC74"
+#define UPON_SDK_VERSION "uPON_2.6.25_RC76"
 
 #ifdef __BIG_ENDIAN
 #define MV_ARM_32BIT_LE(X) ((((X)&0xff)<<24) |                       \
diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/epon/eponOnuApi.c b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/epon/eponOnuApi.c
index 3fad804..9ea7d59 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/epon/eponOnuApi.c
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/epon/eponOnuApi.c
@@ -808,7 +808,7 @@
 

 MV_STATUS mvEponApi2kSupportedSet(MV_U32 pkt2kSupported)

 {

-    MV_STATUS status;

+    MV_STATUS status = 0;

     MV_U32    devId;

 

     devId = mvCtrlModelGet();

diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuAlloc.c b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuAlloc.c
index 5442fac..22c34d8 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuAlloc.c
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuAlloc.c
@@ -162,10 +162,10 @@
 **
 **  OUTPUTS:     MV_U32 *entry
 **
-**  RETURNS:     MV_TRUE or MV_FALSE
+**  RETURNS:     MV_OK or MV_ERROR
 **
 *******************************************************************************/
-MV_BOOL onuGponAllocIdMacAllocExistCheck(MV_U32 allocId, MV_U32 *entry, MV_U32 *tcont)
+MV_STATUS onuGponAllocIdMacAllocExistCheck(MV_U32 allocId, MV_U32 *entry, MV_U32 *tcont)
 {
 	MV_U32  iEntry;
 	MV_U32  macAllocId;
@@ -178,15 +178,50 @@
 		if ((status == MV_OK) && (macAllocId == allocId) && (valid == MV_TRUE)) {
 			*entry = iEntry;
 			*tcont = tcontNum;
-			return (MV_TRUE);
+			return (MV_OK);
 		}
 	}
 
-	return (MV_FALSE);
+	return (MV_ERROR);
 }
 
 /*******************************************************************************
 **
+**  onuGponAllocIdMacAllocCheck
+**  ____________________________________________________________________________
+**
+**  DESCRIPTION: The function checks if BW Map entry is valid and return T-Cont
+**               and Alloc Number
+**
+**  PARAMETERS:  none
+**
+**  OUTPUTS:     MV_U32 *allocId
+**      	 MV_U32 *tcont
+**
+**  RETURNS:     MV_OK or MV_ERROR
+**
+*******************************************************************************/
+MV_STATUS onuGponAllocIdMacAllocCheck(MV_U32 index, MV_U32 *allocId, MV_U32 *tcont)
+{
+	MV_U32  macAllocId;
+	MV_U32  tcontNum;
+	MV_BOOL valid;
+	MV_STATUS status;
+
+       status = mvOnuGponMacRxBwMapGet(index, &macAllocId, &valid, &tcontNum);
+       if ((status == MV_OK) && (valid == MV_TRUE))
+       {
+	       *allocId = macAllocId;
+	       *tcont   = tcontNum;
+	       return (MV_OK);
+       }
+
+       return (MV_ERROR);
+}
+
+
+/*******************************************************************************
+**
 **  onuGponAllocIdMacAllocFreeEntryGet
 **  ____________________________________________________________________________
 **
@@ -196,10 +231,10 @@
 **
 **  OUTPUTS:     MV_U32 *entry
 **
-**  RETURNS:     MV_TRUE or MV_FALSE
+**  RETURNS:     MV_OK or MV_ERROR
 **
 *******************************************************************************/
-MV_BOOL onuGponAllocIdMacAllocFreeEntryGet(MV_U32 *entry)
+MV_STATUS onuGponAllocIdMacAllocFreeEntryGet(MV_U32 *entry)
 {
 	MV_U32  iEntry;
 	MV_U32  macAllocId;
@@ -211,11 +246,11 @@
 		status = mvOnuGponMacRxBwMapGet(iEntry, &macAllocId, &valid, &tcontNum);
 		if ((status == MV_OK) && (valid == MV_FALSE)) {
 			*entry = iEntry;
-			return (MV_TRUE);
+			return (MV_OK);
 		}
 	}
 
-	return (MV_FALSE);
+	return (MV_ERROR);
 }
 
 /*******************************************************************************
@@ -237,10 +272,9 @@
 {
 	MV_STATUS status = MV_OK;
 	MV_U32    entry;
-	MV_BOOL   exist;
 
-	exist = onuGponAllocIdMacAllocFreeEntryGet(&entry);
-	if (exist == MV_FALSE)
+	status = onuGponAllocIdMacAllocFreeEntryGet(&entry);
+	if (status != MV_OK)
 		return (MV_ERROR);
 
 	status = mvOnuGponMacRxBwMapSet(entry, allocId, tcontId, MV_TRUE);
@@ -273,7 +307,6 @@
 MV_STATUS onuGponAllocIdMacConnect(MV_U32 allocId, MV_U32 tcontNum)
 {
 	MV_STATUS status;
-	MV_BOOL   exist;
 	MV_U32    entry;
 	MV_U32    tcont;
 	MV_U32    newIdleTcontEntry;
@@ -288,8 +321,8 @@
 #endif /* MV_GPON_DEBUG_PRINT */
 
 	/* validate that requested alloc-Id is configured in HW and is valid */
-	exist = onuGponAllocIdMacAllocExistCheck(allocId, &entry, &tcont);
-	if (exist != MV_TRUE) {
+	status = onuGponAllocIdMacAllocExistCheck(allocId, &entry, &tcont);
+	if (status != MV_OK) {
 		mvPonPrint(PON_PRINT_ERROR, PON_ALLOC_MODULE,
 					"ERROR: (%s:%d) onuGponAllocIdMacConnect, alloc Id(%d) entry(%d)\n",
 					__FILE_DESC__, __LINE__, allocId, entry);
@@ -301,8 +334,8 @@
 		** should be changed to another Idle T-Cont */
 
 		/* Check for a free (idle) entry in the Tcont DB table */
-		exist = onuGponDbBwTcontFreeGet(allocId, &freeTcontEntry);
-		if (exist != MV_TRUE) {
+		status = onuGponDbBwTcontFreeGet(allocId, &freeTcontEntry);
+		if (status != MV_OK) {
 #ifdef MV_GPON_DEBUG_PRINT
 			mvPonPrint(PON_PRINT_DEBUG, PON_ALLOC_MODULE,
 						"DEBUG: (%s:%d) onuGponAllocIdMacConnect, alloc Id(%d) freeTcontEntry(%d)\n",
@@ -318,8 +351,8 @@
 				onuGponDbBwIdleAllocGet(newIdleTcontEntry, &entryAllocId);
 				if (entryAllocId != PON_ONU_ALLOC_NOT_EXIST) {
 					/* Check if this idle Alloc ID exists in the HW table */
-					exist = onuGponAllocIdMacAllocExistCheck(entryAllocId, &bwMapEntry, &tcont);
-					if (exist == MV_TRUE) {
+					status = onuGponAllocIdMacAllocExistCheck(entryAllocId, &bwMapEntry, &tcont);
+					if (status == MV_OK) {
 						/* re-assign this Alloc ID to the new idle Tcont in HW */
 						status = mvOnuGponMacRxBwMapSet(bwMapEntry, entryAllocId, onuIdleAllocTcont, MV_TRUE);
 						if (status != MV_OK) {
@@ -345,19 +378,11 @@
 
 #ifdef MV_GPON_DEBUG_PRINT
 	mvPonPrint(PON_PRINT_DEBUG, PON_ALLOC_MODULE,
-              "DEBUG: (%s:%d) AllocIdMacConnect, tpm_active_tcont, Tcont(%d)\n",
-              __FILE_DESC__, __LINE__, tcontNum);
+		   "DEBUG: (%s:%d) TCONT (%d) active, Connect\n",
+		   __FILE_DESC__, __LINE__, tcontNum);
 #endif /* MV_GPON_DEBUG_PRINT */
 
-	printk("TCONT (%d) active, Connect\n", tcontNum);
-	status = onuGponWqTcontActivate(tcontNum);
-	if (status != MV_OK)
-	{
-		mvPonPrint(PON_PRINT_ERROR, PON_ALLOC_MODULE,
-			   "ERROR: (%s:%d) onuGponAllocIdMacAdd, failed to schedule T-Cont(%d) activate in WQ\n",
-			   __FILE_DESC__, __LINE__, tcontNum);
-		return (status);
-	}
+	onuGponWqTcontActivate(tcontNum);
 
 	return (status);
 }
@@ -379,7 +404,6 @@
 *******************************************************************************/
 MV_STATUS onuGponAllocIdMacReconnect(MV_U32 allocId, MV_U32 tcontNum)
 {
-	MV_BOOL   exist;
 	MV_STATUS status = MV_OK;
 	MV_U32    entry;
 	MV_U32    onuId;
@@ -393,12 +417,12 @@
 #endif /* MV_GPON_DEBUG_PRINT */
 
 	/* Get free entry */
-	exist = onuGponAllocIdMacAllocExistCheck(allocId, &entry, &tcont);
-	if (exist != MV_TRUE)
-		return (MV_ERROR);
+	status = onuGponAllocIdMacAllocExistCheck(allocId, &entry, &tcont);
+	if (status == MV_OK)
+		return(status);
 
-	exist = onuGponDbBwTcontFreeGet(allocId, &tcontFreeNum);
-	if (exist != MV_TRUE)
+	status = onuGponDbBwTcontFreeGet(allocId, &tcontFreeNum);
+	if (status != MV_OK)
 		onuIdleAllocTcont = tcontFreeNum;
 
 	/* Check if default Alloc Id */
@@ -411,15 +435,6 @@
                       __FILE_DESC__, __LINE__, tcontNum);
 #endif /* MV_GPON_DEBUG_PRINT */
 
-	       // printk("TCONT (%d) flush, Reconnect\n", tcontNum);
-	       // status = onuGponWqTcontFlush(tcontNum);
-	       // if (status != MV_OK)
-	       //{
-	       // 	mvPonPrint(PON_PRINT_ERROR, PON_ALLOC_MODULE,
-	       // 		   "ERROR: (%s:%d) onuGponAllocIdMacReconnect, failed to schedule T-Cont(%d) flush in WQ\n",
-	       // 		   __FILE_DESC__, __LINE__, tcontNum);
-	       //}
-
 		/* Set Alloc Id to T-Cont in the GMAC hardware */
 		status = mvOnuGponMacRxBwMapSet(entry, allocId, onuIdleAllocTcont, MV_TRUE);
 	}
@@ -427,6 +442,51 @@
 	return (status);
 }
 
+
+/*******************************************************************************
+**
+**  onuGponAllocIdMacReActivate
+**  ____________________________________________________________________________
+**
+**  DESCRIPTION: The function reactivate onu tcont incase the tcont is not
+**               clear and set by mng
+**
+**  PARAMETERS:  None
+**
+**  OUTPUTS:     None
+**
+**  RETURNS:     MV_OK or error
+**
+*******************************************************************************/
+MV_STATUS onuGponAllocIdMacReActivate(void)
+{
+	MV_STATUS status;
+	MV_U32    entry;
+	MV_U32	  allocId;
+	MV_U32    tcont;
+
+#ifdef MV_GPON_DEBUG_PRINT
+	mvPonPrint(PON_PRINT_DEBUG, PON_ALLOC_MODULE,
+              "DEBUG: (%s:%d) onuGponAllocIdMacReActivate\n", __FILE_DESC__, __LINE__);
+#endif /* MV_GPON_DEBUG_PRINT */
+
+	for (entry = 0; entry < ONU_GPON_MAX_NUM_OF_T_CONTS; entry++)
+	{
+		status = onuGponAllocIdMacAllocCheck(entry, &allocId, &tcont);
+		if (status == MV_OK)
+		{
+			mvPonPrint(PON_PRINT_DEBUG, PON_ALLOC_MODULE,
+				   "DEBUG: (%s:%d) TCONT (%d) active, Connect\n",
+				   __FILE_DESC__, __LINE__, tcont);
+
+			onuGponWqTcontActivate(tcont);
+		}
+	}
+
+
+	return (MV_OK);
+}
+
 /*******************************************************************************
 **
 **  onuGponAllocIdMacDisconnect
@@ -446,7 +506,6 @@
 	MV_U32  onuId;
 	MV_U32  entry;
 	MV_U32  tcont;
-	MV_BOOL exist;
 	MV_STATUS status = MV_OK;
 
 #ifdef MV_GPON_DEBUG_PRINT
@@ -456,28 +515,21 @@
 #endif /* MV_GPON_DEBUG_PRINT */
 
 	/* Check if already exist */
-	exist = onuGponAllocIdMacAllocExistCheck(allocId, &entry, &tcont);
-	if (exist == MV_FALSE)
-		return (MV_ERROR);
+	status = onuGponAllocIdMacAllocExistCheck(allocId, &entry, &tcont);
+	if (status != MV_OK)
+		return(MV_ERROR);
 
 	/* Check if default Alloc Id */
 	onuId = onuGponDbOnuIdGet();
 	if (allocId != onuId)
 	{
 #ifdef MV_GPON_DEBUG_PRINT
-	        mvPonPrint(PON_PRINT_DEBUG, PON_ALLOC_MODULE,
-                      "DEBUG: (%s:%d) tpm_deactive_tcont, Tcont(%d)\n",
-                      __FILE_DESC__, __LINE__, tcont);
+		mvPonPrint(PON_PRINT_DEBUG, PON_ALLOC_MODULE,
+			   "DEBUG: (%s:%d) TCONT (%d) flush, Disconnect\n",
+			   __FILE_DESC__, __LINE__, tcont);
 #endif /* MV_GPON_DEBUG_PRINT */
 
-		printk("TCONT (%d) flush, Disconnect\n", tcont);
-		status = onuGponWqTcontFlush(tcont);
-		if (status != MV_OK)
-		{
-			mvPonPrint(PON_PRINT_ERROR, PON_ALLOC_MODULE,
-				   "ERROR: (%s:%d) onuGponAllocIdMacDisconnect, failed to schedule T-Cont(%d) flush in WQ\n",
-				   __FILE_DESC__, __LINE__, tcont);
-		}
+		onuGponWqTcontFlush(tcont);
 
 		status = mvOnuGponMacRxBwMapSet(entry, 0, 0, MV_FALSE);
 		if (status != MV_OK)
@@ -560,7 +612,7 @@
 	/* check if Alloc-Id exist in the alloc Id DB table */
 	allocIdExist = onuGponDbBwAllocExist(allocId);
 	if (allocIdExist == MV_TRUE)
-		return (MV_OK);
+		return (MV_NO_CHANGE/*MV_OK*/);
 
 	/* set the Alloc-Id exist to the database */
 	status = onuGponDbBwAllocInsert(allocId, &entry);
@@ -714,21 +766,15 @@
 *******************************************************************************/
 MV_STATUS onuGponAllocIdFreeAllBuffers(void)
 {
-    MV_STATUS status;
+    MV_STATUS status = MV_OK;
     MV_U32    tcontNum = 0xFF;
+
 #ifdef MV_GPON_DEBUG_PRINT
     mvPonPrint(PON_PRINT_DEBUG, PON_ALLOC_MODULE,
-               "DEBUG: (%s:%d) release All T-Conts buffers, tpm_deactive_tcont\n", __FILE_DESC__, __LINE__);
+	       "DEBUG: (%s:%d) FreeAllBuffers\n", __FILE_DESC__, __LINE__);
 #endif /* MV_GPON_DEBUG_PRINT */
 
-    printk("TCONT flush, FreeAllBuffers\n");
-    status = onuGponWqTcontFlush(tcontNum);
-    if (status != MV_OK)
-    {
-            mvPonPrint(PON_PRINT_ERROR, PON_ALLOC_MODULE,
-        	       "ERROR: (%s:%d) onuGponAllocIdFreeAllBuffers, failed to schedule All T-Cont flush in WQ\n",
-        	       __FILE_DESC__, __LINE__, tcontNum);
-    }
+    onuGponWqTcontFlush(tcontNum);
 
     return(status);
 }
@@ -961,14 +1007,14 @@
 *******************************************************************************/
 MV_STATUS onuGponAllocIdTcontClearAll(void)
 {
-	MV_U32  iEntry;
-	MV_BOOL exist;
-	MV_STATUS status;
+	MV_U32    iEntry;
+	MV_BOOL   exist;
+	MV_STATUS status = MV_OK;
 	MV_U32    tcontNum = 0xFF;
 
 #ifdef MV_GPON_DEBUG_PRINT
 	mvPonPrint(PON_PRINT_DEBUG, PON_ALLOC_MODULE,
-				"DEBUG: (%s:%d) Clear All Alloc-Ids from T-TCONTs\n", __FILE_DESC__, __LINE__);
+		   "DEBUG: (%s:%d) TCONT flush, Clear All\n", __FILE_DESC__, __LINE__);
 #endif /* MV_GPON_DEBUG_PRINT */
 
 	for (iEntry = 0 ; iEntry < ONU_GPON_MAX_NUM_OF_T_CONTS ; iEntry++) {
@@ -978,15 +1024,7 @@
 			onuGponAllocIdTcontClear(iEntry);
 	}
 
-	printk("TCONT flush, Clear All\n");
-	status = onuGponWqTcontFlush(tcontNum);
-	if (status != MV_OK)
-	{
-	 	mvPonPrint(PON_PRINT_ERROR, PON_ALLOC_MODULE,
-	 		   "ERROR: (%s:%d) onuGponAllocIdTcontClearAll, failed to schedule All T-Cont flush in WQ\n",
-	 		   __FILE_DESC__, __LINE__);
-	}
-
+	onuGponWqTcontFlush(tcontNum);
 
 	return (MV_OK);
 }
diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuAlloc.h b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuAlloc.h
index 14d2f5c..5ca2db5 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuAlloc.h
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuAlloc.h
@@ -105,6 +105,7 @@
 MV_STATUS onuGponAllocIdDeAssignAll(void);

 MV_STATUS onuGponAllocIdFreeAllBuffers(void);

 MV_STATUS onuGponAllocIdTcontClearAll(void);

+MV_STATUS onuGponAllocIdMacReActivate(void);

 MV_U32    onuGponIdleAllocIdTcontGet(void);

 

 /* Macros

diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuDb.c b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuDb.c
index 391bc35..52c6ddc 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuDb.c
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuDb.c
@@ -3254,10 +3254,10 @@
 **
 **  OUTPUTS:     None
 **
-**  RETURNS:     MV_TRUE if there is a free entry, MV_FALSE otherwise
+**  RETURNS:     MV_OK if there is a free entry, MV_ERROR otherwise
 **
 *******************************************************************************/
-MV_BOOL onuGponDbBwTcontFreeGet(MV_U32 allocId, MV_U32 *tcontNum)
+MV_STATUS onuGponDbBwTcontFreeGet(MV_U32 allocId, MV_U32 *tcontNum)
 {
 	MV_BOOL exist;
 	MV_U32  dbAllocId;
@@ -3270,7 +3270,7 @@
 		onuGponDbBwTcontGet(iTcont, &exist, &dbAllocId, &dbValid);
 		if ((exist == MV_TRUE) && (dbValid == MV_FALSE)) {
 			*tcontNum = iTcont;
-			return(MV_TRUE);
+			return(MV_OK);
 		}
 
 		if (dbAllocId == allocId)
@@ -3279,7 +3279,7 @@
 
 	*tcontNum = tempTcont;
 
-	return(MV_FALSE);
+	return(MV_ERROR);
 }
 
 /*******************************************************************************
diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuDb.h b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuDb.h
index 535b6ea..59deb72 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuDb.h
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuDb.h
@@ -392,7 +392,7 @@
 MV_STATUS onuGponDbBwTcontClear(MV_U32 tcontNum);
 MV_STATUS onuGponDbBwTcontAlloc(MV_U32 tcontNum, MV_U32 allocId);
 MV_STATUS onuGponDbBwTcontConnectCheck(MV_U32 allocId, MV_U32 *tcontNum, MV_BOOL *valid);
-MV_BOOL   onuGponDbBwTcontFreeGet(MV_U32 allocId, MV_U32 *tcontNum);
+MV_STATUS onuGponDbBwTcontFreeGet(MV_U32 allocId, MV_U32 *tcontNum);
 
 MV_STATUS onuGponDbBwMapCntDumpSet(MV_U32 enable);
 MV_BOOL   onuGponDbBwMapCntDumpGet(void);
diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuIsr.h b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuIsr.h
index 11ee96b..49f5c92 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuIsr.h
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuIsr.h
@@ -113,8 +113,7 @@
                                                

 #define ON_GPON_MAX_ALARMS                      (3)

 

-#define ONU_GPON_INT_ALARMS                     (ONU_GPON_LOF_ALARM_MASK |\

-                                                 ONU_GPON_LCDG_ALARM_MASK)

+#define ONU_GPON_INT_ALARMS                     (ONU_GPON_LOF_ALARM_MASK)

 

 #define ONU_GPON_PARITY_ERROR                   (ONU_GPON_RAM_TEST_GRX_PARITY_ERR_MASK  |\

                                                  ONU_GPON_RAM_TEST_GEM_PARITY_ERR_MASK  |\

diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuMngr.c b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuMngr.c
index 139e964..ec1957c 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuMngr.c
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuMngr.c
@@ -364,7 +364,7 @@
   MV_U32          onuState;

   GPONFUNCPTR     ptrFunc;

   S_OnuGponGenTbl *onuGponGenTbl_p = &(onuGponDb_s.onuGponGenTbl_s);

-  MV_U32          *msgData_p = msgData;

+  MV_U32          *msgData_p = (MV_U32*)msgData;

 

   /* get onu Id */

   appOnuId = onuGponDbOnuIdGet();

@@ -388,11 +388,11 @@
       }

       else

       {

+	onuGponSyncLog(ONU_GPON_LOG_MSG, onuId, msgId, 0);

+	onuGponSyncLog(ONU_GPON_LOG_MSG_CONTENT, *(msgData_p), *(msgData_p + 1), *(msgData_p + 2));

         (*ptrFunc)(onuId, msgId, msgData);

       }           

 

-      onuGponSyncLog(ONU_GPON_LOG_MSG, onuId, msgId, 0);

-      onuGponSyncLog(ONU_GPON_LOG_MSG_CONTENT, *(msgData_p), *(msgData_p + 1), *(msgData_p + 2));

     }

     /* handle invalid messages */

     else

diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuMngrStateMachine.c b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuMngrStateMachine.c
index f645b34..2686826 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuMngrStateMachine.c
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuMngrStateMachine.c
@@ -84,6 +84,12 @@
 ------------------------------------------------------------------------------*/
 #define __FILE_DESC__ "mv_pon/core/gpon/gponOnuStateMachine.c"
 
+#define INDICATION_BIT_MAP_NONE                 (0x00000000)
+#define INDICATION_BIT_MAP_FIBER_EVENT          (0x00000001)
+#define INDICATION_BIT_MAP_FORCE_TCONT_CLEAR    (0x00000002)
+#define INDICATION_BIT_MAP_FORCE_TCONT_RECONFIG (0x00000004)
+#define INDICATION_BIT_MAP_RESERVED             (0x00000008)
+
 /* Global Variables
 ------------------------------------------------------------------------------*/
 extern spinlock_t onuPonIrqLock;
@@ -101,9 +107,9 @@
 /* Local Functions
 ------------------------------------------------------------------------------*/
 MV_STATUS onuGponPonMngrUpdateState(MV_U32 newState);
-MV_STATUS onuGponPonMngClearOnuInfo(void);
-MV_STATUS onuGponPonMngClearOnuBuffers(void);
-MV_STATUS onuGponPonMngClearOnuTconts(void);
+MV_STATUS onuGponPonMngClearOnuInfo(MV_U32 indicationBitMap);
+MV_STATUS onuGponPonMngClearOnuTconts(MV_U32 indicationBitMap);
+MV_STATUS onuGponPonMngClearOnuBuffers(MV_U32 indicationBitMap);
 MV_STATUS onuGponPonMngClearOnuPorts(void);
 MV_STATUS onuGponPonMngClearOnuId(void);
 MV_STATUS onuGponPonMngClearOnuDelay(void);
@@ -247,9 +253,9 @@
 **  RETURNS:     MV_OK or error
 **
 *******************************************************************************/
-MV_STATUS onuGponPonMngClearOnuBuffers(void)
+MV_STATUS onuGponPonMngClearOnuBuffers(MV_U32 indicationBitMap)
 {
-   MV_STATUS rcode;
+   MV_STATUS rcode = MV_OK;
 
    rcode = onuGponAllocIdFreeAllBuffers();
    if (rcode != MV_OK)
@@ -258,6 +264,19 @@
    	     "ERROR: (%s:%d) onuGponPonMngClearOnuBuffers\n", __FILE_DESC__, __LINE__);
    }
 
+
+   if ((onuGponDbTcontResetGet() != MV_TRUE) &&
+       (indicationBitMap & INDICATION_BIT_MAP_FIBER_EVENT))
+   {
+	 rcode = onuGponAllocIdMacReActivate();
+	 if (rcode != MV_OK)
+	 {
+	   mvPonPrint(PON_PRINT_ERROR, PON_SM_MODULE,
+		      "ERROR: (%s:%d) onuGponPonMngClearOnuTconts\n", __FILE_DESC__, __LINE__);
+	   return(rcode);
+	 }
+   }
+
    return(MV_OK);
 }
 
@@ -276,7 +295,7 @@
 **  RETURNS:     MV_OK or error
 **
 *******************************************************************************/
-MV_STATUS onuGponPonMngClearOnuInfo(void)
+MV_STATUS onuGponPonMngClearOnuInfo(MV_U32 indicationBitMap)
 {
   MV_STATUS rcode;
 
@@ -284,29 +303,32 @@
   if (rcode != MV_OK)
   {
     mvPonPrint(PON_PRINT_ERROR, PON_SM_MODULE,
-               "ERROR: (%s:%d) onuGponPonMngClearOnuPorts\n", __FILE_DESC__, __LINE__);    return(rcode);
+               "ERROR: (%s:%d) onuGponPonMngClearOnuPorts\n", __FILE_DESC__, __LINE__);
+    return(rcode);
   }
 
-  rcode = onuGponPonMngClearOnuTconts();
+  rcode = onuGponPonMngClearOnuTconts(indicationBitMap);
   if (rcode != MV_OK)
   {
     mvPonPrint(PON_PRINT_ERROR, PON_SM_MODULE,
-               "ERROR: (%s:%d) onuGponPonMngClearOnuTconts\n", __FILE_DESC__, __LINE__);    return(rcode);
+               "ERROR: (%s:%d) onuGponPonMngClearOnuTconts\n", __FILE_DESC__, __LINE__);
+    return(rcode);
   }
 
-  rcode = onuGponPonMngClearOnuBuffers();
+  rcode = onuGponPonMngClearOnuBuffers(indicationBitMap);
   if (rcode != MV_OK)
   {
     mvPonPrint(PON_PRINT_ERROR, PON_SM_MODULE,
                "ERROR: (%s:%d) onuGponPonMngClearOnuBuffers\n", __FILE_DESC__, __LINE__);
-    return;
+    return(rcode);
   }
 
   rcode = onuGponPonMngClearOnuId();
   if (rcode != MV_OK)
   {
     mvPonPrint(PON_PRINT_ERROR, PON_SM_MODULE,
-               "ERROR: (%s:%d) onuGponPonMngClearOnuId\n", __FILE_DESC__, __LINE__);    return(rcode);
+               "ERROR: (%s:%d) onuGponPonMngClearOnuId\n", __FILE_DESC__, __LINE__);
+    return(rcode);
   }
 
   rcode = onuGponPonMngClearOnuDelay();
@@ -387,18 +409,20 @@
 **  RETURNS:     MV_OK or error
 **
 *******************************************************************************/
-MV_STATUS onuGponPonMngClearOnuTconts(void)
+MV_STATUS onuGponPonMngClearOnuTconts(MV_U32 indicationBitMap)
 {
   MV_STATUS rcode = MV_OK;
 
-  if (onuGponDbTcontResetGet()==MV_TRUE) {
-      rcode = onuGponAllocIdDeAssignAll();
-      if (rcode != MV_OK)
-      {
-        mvPonPrint(PON_PRINT_ERROR, PON_SM_MODULE,
-                   "ERROR: (%s:%d) onuGponAllocIdDeAssignAll\n", __FILE_DESC__, __LINE__);
-        return(rcode);
-      }
+  if ((onuGponDbTcontResetGet() == MV_TRUE) ||
+      (indicationBitMap & INDICATION_BIT_MAP_FORCE_TCONT_CLEAR))
+  {
+	rcode = onuGponAllocIdDeAssignAll();
+	if (rcode != MV_OK)
+	{
+	  mvPonPrint(PON_PRINT_ERROR, PON_SM_MODULE,
+		     "ERROR: (%s:%d) onuGponPonMngClearOnuTconts\n", __FILE_DESC__, __LINE__);
+	  return(rcode);
+	}
   }
 
   return(MV_OK);
@@ -988,14 +1012,21 @@
 
     /* set Default allocId according to the onuId */
     rcode = onuGponAllocIdAssign(msgOnuId, 0);
-    if (rcode != MV_OK)
+    if ((rcode != MV_OK) && (rcode != MV_NO_CHANGE))
     {
-      mvPonPrint(PON_PRINT_ERROR, PON_SM_MODULE,
-                 "ERROR: (%s:%d) onuGponAllocIdAssign\n", __FILE_DESC__, __LINE__);
-      return;
+	    mvPonPrint(PON_PRINT_ERROR, PON_SM_MODULE,
+		       "ERROR: (%s:%d) onuGponAllocIdAssign\n", __FILE_DESC__, __LINE__);
+		       return;
     }
-
-    onuGponAllocIdMacAdd(msgOnuId, PON_ONU_DEFAULT_ALLOC_TCONT);
+    else if ((rcode != MV_OK) && (rcode == MV_NO_CHANGE))
+    {
+	    mvPonPrint(PON_PRINT_ERROR, PON_SM_MODULE,
+		       "ERROR: (%s:%d) onuGponAllocIdAssign, Alloc Id exist\n", __FILE_DESC__, __LINE__);
+    }
+    else /* MV_OK */
+    {
+	    onuGponAllocIdMacAdd(msgOnuId, PON_ONU_DEFAULT_ALLOC_TCONT);
+    }
 
     /* Set delay received from OLT */
     equalizationDelayTemp = onuGponDbEqualizationDelayGet();
@@ -1263,12 +1294,12 @@
 		 __FILE_DESC__, __LINE__, currFinalDelay);
 
       /* Check if can change the TX Final Delay only */
-      if (changeDelay + currFinalDelay > GPON_TX_FINAL_DELAY_MAX)
+      if (changeDelay + currFinalDelay <= GPON_TX_FINAL_DELAY_MAX)
       {
         finalDelay = currFinalDelay + changeDelay;
 
 	mvPonPrint(PON_PRINT_DEBUG, PON_SM_STATE_MODULE,
-		   "Range Debug Info: (%s:%d), State O5, Change delay + current Final delay > MAX Final delay(0x3F), updated final delay, finalDelay = currFinalDelay + changeDelay, (0x%x)\n",
+		   "Range Debug Info: (%s:%d), State O5, Change delay + current Final delay <= MAX Final delay(0x3F), updated final delay, finalDelay = currFinalDelay + changeDelay, (0x%x)\n",
 		   __FILE_DESC__, __LINE__, finalDelay);
       }
       else
@@ -1279,7 +1310,7 @@
 #endif /* MV_GPON_DEBUG_PRINT */
 
 	mvPonPrint(PON_PRINT_DEBUG, PON_SM_STATE_MODULE,
-		   "Range Debug Info: (%s:%d), State O5, Change delay + Final delay < MAX Final delay = 0x3F, updated equalization delay\n",
+		   "Range Debug Info: (%s:%d), State O5, Change delay + Final delay > MAX Final delay = 0x3F, updated equalization delay\n",
 		   __FILE_DESC__, __LINE__);
 
         /* calc delay */
@@ -1372,7 +1403,7 @@
 
   /* clear onu information */
   /* ===================== */
-  rcode = onuGponPonMngClearOnuInfo();
+  rcode = onuGponPonMngClearOnuInfo(INDICATION_BIT_MAP_FORCE_TCONT_CLEAR);
   if (rcode != MV_OK)
   {
     mvPonPrint(PON_PRINT_ERROR, PON_SM_MODULE,
@@ -1468,7 +1499,7 @@
 
 		/* clear onu information */
 		/* ===================== */
-		rcode = onuGponPonMngClearOnuInfo();
+		rcode = onuGponPonMngClearOnuInfo(INDICATION_BIT_MAP_FORCE_TCONT_CLEAR);
 		if (rcode != MV_OK) {
 			mvPonPrint(PON_PRINT_ERROR, PON_SM_MODULE,
 					   "ERROR: (%s:%d) DISABLE: onuGponPonMngClearOnuInfo\n", __FILE_DESC__, __LINE__);
@@ -1840,7 +1871,7 @@
     if (newAllocStatus == MV_TRUE)
     {
       status = onuGponAllocIdAssign(allocId, 1);
-      if (status != MV_OK)
+      if ((status != MV_OK) && (status != MV_NO_CHANGE))
       {
         mvPonPrint(PON_PRINT_ERROR, PON_SM_MODULE,
                    "ERROR: (%s:%d) onuGponAllocIdAssign onuId(%d), allocId(%d)\n", __FILE_DESC__, __LINE__, onuId, allocId);
@@ -2631,7 +2662,7 @@
 
   /* clear onu information */
   /* ===================== */
-  rcode = onuGponPonMngClearOnuInfo();
+  rcode = onuGponPonMngClearOnuInfo(INDICATION_BIT_MAP_FIBER_EVENT);
   if (rcode != MV_OK)
   {
     mvPonPrint(PON_PRINT_ERROR, PON_SM_MODULE,
@@ -2704,7 +2735,7 @@
 
   /* clear onu information */
   /* ===================== */
-  rcode = onuGponPonMngClearOnuInfo();
+  rcode = onuGponPonMngClearOnuInfo(INDICATION_BIT_MAP_FIBER_EVENT);
   if (rcode != MV_OK)
   {
     mvPonPrint(PON_PRINT_ERROR, PON_SM_MODULE,
@@ -2888,7 +2919,7 @@
 
     /* clear onu information */
     /* ===================== */
-    rcode = onuGponPonMngClearOnuInfo();
+    rcode = onuGponPonMngClearOnuInfo(INDICATION_BIT_MAP_FIBER_EVENT);
     if (rcode != MV_OK)
     {
       mvPonPrint(PON_PRINT_ERROR, PON_SM_MODULE,
diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuSrvc.c b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuSrvc.c
index 044f589..5b3c454 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuSrvc.c
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuSrvc.c
@@ -1221,7 +1221,7 @@
             break;

 

         case ONU_GPON_LOG_MSG_CONTENT:

-            printk("[%03d] PLOAM message, data=0x%08x%08x%08x\n", printEntry,

+            printk("[%03d] PLOAM message, data=0x%08x%08x%08x [030201000706050411100908]\n", printEntry,

                     onuGponLogDb[printEntry].dataVal1,

                     onuGponLogDb[printEntry].dataVal2,

                     onuGponLogDb[printEntry].dataVal3);

@@ -1232,6 +1232,7 @@
                     onuGponLogDb[printEntry].state,

                     onuGponLogDb[printEntry].time,

                     onuGponLogDb[printEntry].dataVal1);

+            printk("==========================================================\n");

             break;

 

         case ONU_GPON_LOG_INTERRUPT_XVR_SD:

@@ -1255,7 +1256,7 @@
             break;

 

         case ONU_GPON_LOG_INTERRUPT_SERDES_STOP:

-            printk("[%03d] Interrupt, state=%d, time=%08x\n", printEntry,

+            printk("[%03d] SERDES Stop, state=%d, time=%08x\n", printEntry,

                     onuGponLogDb[printEntry].state,

                     onuGponLogDb[printEntry].time);

             break;

@@ -1266,6 +1267,14 @@
                     onuGponLogDb[printEntry].time);

             break;

 

+        case ONU_GPON_LOG_FREE_TEXT:

+            printk("[%03d] Free, time=%08x %d %d %d\n", printEntry,

+                   onuGponLogDb[printEntry].time,

+		   onuGponLogDb[printEntry].dataVal1,

+		   onuGponLogDb[printEntry].dataVal2,

+		   onuGponLogDb[printEntry].dataVal3);

+            break;

+

         default:

             printk("[%03d] Other\r\n", printEntry);

             break;

@@ -1301,15 +1310,10 @@
 *******************************************************************************/

 MV_STATUS onuGponWqTcontFlush(MV_U32 tcont)

 {

-    MV_STATUS rcode;

-

     if (tcont != 0xFF)

-	rcode = queue_work(gponTcontFlushWq.ponWq, (struct work_struct *)&gponTcontCleanWork[tcont]);

+	queue_work(gponTcontFlushWq.ponWq, (struct work_struct *)&gponTcontCleanWork[tcont]);

     else

-        rcode = queue_work(gponTcontFlushWq.ponWq, (struct work_struct *)&gponTcontCleanAllWork);

-

-    if(rcode == 0)

-	return(MV_ERROR);

+        queue_work(gponTcontFlushWq.ponWq, (struct work_struct *)&gponTcontCleanAllWork);

 

     return(MV_OK);

 }

@@ -1331,11 +1335,7 @@
 *******************************************************************************/

 MV_STATUS onuGponWqTcontActivate(MV_U32 tcont)

 {

-    MV_STATUS rcode;

-

-    rcode = queue_work(gponTcontFlushWq.ponWq, (struct work_struct *)&gponTcontActiveWork[tcont]);

-    if(rcode == 0)

-        return(MV_ERROR);

+    queue_work(gponTcontFlushWq.ponWq, (struct work_struct *)&gponTcontActiveWork[tcont]);

 

     return(MV_OK);

 }

@@ -1371,14 +1371,17 @@
     {

 	if (onuGponTcontFlushState[tcont] == TCONT_FLUSH_RUNNING_STATE)

 	{

-	   onuGponTcontFlushState[tcont] = TCONT_FLUSH_BLOCKING_STATE;

-	   tpm_deactive_tcont(tcont);

-	   printk("TCONT (%d) CLEAN_EVENT\n", tcont);

-	   onuGponTcontFlushState[tcont] = TCONT_FLUSH_READY_STATE;

+		mvPonPrint(PON_PRINT_DEBUG, PON_ALLOC_MODULE,

+			   "DEBUG: (%s:%d) TCONT (%d) CLEAN_EVENT\n", __FILE_DESC__, __LINE__, tcont);

+		onuGponTcontFlushState[tcont] = TCONT_FLUSH_BLOCKING_STATE;

+		tpm_deactive_tcont(tcont);

+		onuGponTcontFlushState[tcont] = TCONT_FLUSH_READY_STATE;

 	}

 	else

 	{

-	   printk("Received TCONT_CLEAN_EVENT while in T-CONT(%d) state(%s)\n", tcont, stateText[onuGponTcontFlushState[tcont]]);

+		mvPonPrint(PON_PRINT_DEBUG, PON_ALLOC_MODULE,

+			   "DEBUG: (%s:%d) Received TCONT_CLEAN_EVENT while in T-CONT(%d) state(%s)\n",

+			   __FILE_DESC__, __LINE__, tcont, stateText[onuGponTcontFlushState[tcont]]);

 	}

     }

 

@@ -1390,14 +1393,17 @@
 	{

 	    if (onuGponTcontFlushState[tcont] == TCONT_FLUSH_RUNNING_STATE)

 	    {

-	       onuGponTcontFlushState[tcont] = TCONT_FLUSH_BLOCKING_STATE;

-	       tpm_deactive_tcont(tcont);

-	       printk("TCONT (%d) CLEAN_EVENT\n", tcont);

-	       onuGponTcontFlushState[tcont] = TCONT_FLUSH_READY_STATE;

+		    mvPonPrint(PON_PRINT_DEBUG, PON_ALLOC_MODULE,

+			       "DEBUG: (%s:%d) TCONT (%d) CLEAN_EVENT\n", __FILE_DESC__, __LINE__, tcont);

+		    onuGponTcontFlushState[tcont] = TCONT_FLUSH_BLOCKING_STATE;

+		    tpm_deactive_tcont(tcont);

+		    onuGponTcontFlushState[tcont] = TCONT_FLUSH_READY_STATE;

 	    }

 	    else

 	    {

-	       printk("Received TCONT_CLEAN_EVENT while in T-CONT(%d) state(%s)\n", tcont, stateText[onuGponTcontFlushState[tcont]]);

+		    mvPonPrint(PON_PRINT_DEBUG, PON_ALLOC_MODULE,

+			       "DEBUG: (%s:%d) Received TCONT_CLEAN_EVENT while in T-CONT(%d) state(%s)\n",

+			       __FILE_DESC__, __LINE__, tcont, stateText[onuGponTcontFlushState[tcont]]);

 	    }

 	}

     }

@@ -1408,13 +1414,16 @@
     {

        if (onuGponTcontFlushState[tcont] == TCONT_FLUSH_READY_STATE)

        {

-          onuGponTcontFlushState[tcont] = TCONT_FLUSH_RUNNING_STATE;

-          tpm_active_tcont(tcont);

-          printk("TCONT (%d) ACTIVE_EVENT\n", tcont);

+	       mvPonPrint(PON_PRINT_DEBUG, PON_ALLOC_MODULE,

+	            "DEBUG: (%s:%d) TCONT (%d) ACTIVE_EVENT\n", __FILE_DESC__, __LINE__, tcont);

+	       onuGponTcontFlushState[tcont] = TCONT_FLUSH_RUNNING_STATE;

+	       tpm_active_tcont(tcont);

        }

        else

        {

-           printk("Received TCONT_ACTIVE_EVENT while in T-CONT state(%s)\n", stateText[onuGponTcontFlushState[tcont]]);

+	       mvPonPrint(PON_PRINT_DEBUG, PON_ALLOC_MODULE,

+			  "DEBUG: (%s:%d) Received TCONT_ACTIVE_EVENT while in T-CONT state(%s)\n",

+			  __FILE_DESC__, __LINE__, stateText[onuGponTcontFlushState[tcont]]);

        }

     }

 

diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuSrvc.h b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuSrvc.h
index ed08b2d..5d84b13 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuSrvc.h
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/core/gpon/gponOnuSrvc.h
@@ -89,6 +89,7 @@
 #define ONU_GPON_LOG_STATE			(6)

 #define ONU_GPON_LOG_MSG			(7)

 #define ONU_GPON_LOG_MSG_CONTENT		(8)

+#define ONU_GPON_LOG_FREE_TEXT			(9)

 

 #define ONU_GPON_LOG_SIZE                       (512)

 

diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/perf/epon/eponOnuLnxKsMI.c b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/perf/epon/eponOnuLnxKsMI.c
index e5baf82..cb527e0 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/perf/epon/eponOnuLnxKsMI.c
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/perf/epon/eponOnuLnxKsMI.c
@@ -89,6 +89,8 @@
 
 /* Local Variables
 ------------------------------------------------------------------------------*/
+static   S_EponIoctlTdmQueue ioctlTdmQueue;
+static   S_EponIoctlDba      ioctlDba;
 
 /* Export Functions
 ------------------------------------------------------------------------------*/
@@ -648,10 +650,8 @@
   S_EponIoctlFec      ioctlFec;
   S_EponIoctlEnc      ioctlEnc;
   S_EponIoctlOamTx    ioctlTxOam;
-  S_EponIoctlDba      ioctlDba;
   S_EponIoctlHoldOver ioctlHoldover;
   S_EponIoctlSilence  ioctlSilence;
-  S_EponIoctlTdmQueue ioctlTdmQueue;
   MV_U32              ioctlState;
   MV_U32              ioctlAlarm;
   S_EponIoctlRogueOnu ioctlRogueOnu;
@@ -925,7 +925,7 @@
 
         spin_lock_irqsave(&onuPonIrqLock, flags);
         
-        onuEponDbP2PForceModeSet(ioctlState);
+        status = onuEponDbP2PForceModeSet(ioctlState);
         
         spin_unlock_irqrestore(&onuPonIrqLock, flags);
 
diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/perf/epon/eponOnuLnxKsUI.c b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/perf/epon/eponOnuLnxKsUI.c
index ce98eb1..a49d831 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/perf/epon/eponOnuLnxKsUI.c
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/perf/epon/eponOnuLnxKsUI.c
@@ -101,6 +101,7 @@
 /* Local Variables
 ------------------------------------------------------------------------------*/
 MV_BOOL infoEponCntReadClearInd = MV_TRUE;
+static S_EponIoctlDba ioctlDba;
 
 /* Export Functions
 ------------------------------------------------------------------------------*/
@@ -1088,7 +1089,6 @@
   MV_U32         idx;
   MV_U32         qsetidx;
   MV_U32         numOfQueues = 0;
-  S_EponIoctlDba ioctlDba;
 
   memset (&ioctlDba, 0, sizeof(S_EponIoctlDba));
 
diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/plat/gpon/gponOnuLnxKsOs.c b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/plat/gpon/gponOnuLnxKsOs.c
index 86b921c..acd659e 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/plat/gpon/gponOnuLnxKsOs.c
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/plat/gpon/gponOnuLnxKsOs.c
@@ -154,8 +154,6 @@
     INIT_WORK((struct work_struct *) &gponTcontCleanAllWork, onuGponWqTcontFunc);

     gponTcontCleanAllWork.action = TCONT_CLEAN_ALL_EVENT;

 

-    printk("STARTING PON WORK QUEUE!!!!!\n");

-

     return(MV_OK);

   }

 

diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/plat/ponOnuLnxKsOs.h b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/plat/ponOnuLnxKsOs.h
index e5b3293..5205e1c 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/plat/ponOnuLnxKsOs.h
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_pon/plat/ponOnuLnxKsOs.h
@@ -187,7 +187,7 @@
 #define ONU_PON_TIMER_SILENCE_INTERVAL       (60000) /* 60 sec */

 #define ONU_PON_TIMER_TX_MOD_INTERVAL        (1)   /* 1 msec */

 #define ONU_PON_TIMER_EVENT_MISS_INTERVAL    (10)   /* 10 msec */

-#define ONU_PON_TIMER_TX_PWR_INTERVAL        (1000)  /* 1 sec */

+#define ONU_PON_TIMER_TX_PWR_INTERVAL        (6000)  /* 1   sec  */

 

 #define ONU_PON_TIMER_ACTIVE                 (1)

 #define ONU_PON_TIMER_NOT_ACTIVE             (0)

diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_tpm/core/tpm_pkt_proc_logic.c b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_tpm/core/tpm_pkt_proc_logic.c
index 3098a69..fd0a827 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_tpm/core/tpm_pkt_proc_logic.c
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_tpm/core/tpm_pkt_proc_logic.c
@@ -17825,7 +17825,7 @@
 
 	//TPM_OS_INFO(TPM_PNCL_MOD, "port = %d txp = %d enable = %d\n", port, txp, enable);
 
-	printk("TPM T-Cont API, port(%d), txp(%d) enable(%d)\n", port, txp, enable);
+    printk(KERN_DEBUG "TPM T-Cont API, port(%d), txp(%d) enable(%d)\n", port, txp, enable);
 
 	tx_mod = port + txp;
 
@@ -17855,7 +17855,7 @@
 
 			/* enable/disable hwf */
 			if (enable == true)
-				printk("HWF T-Cont active, port(%d), txp(%d), que(%d)\n", port, txp, q_num);
+                printk(KERN_DEBUG "HWF T-Cont active, port(%d), txp(%d), que(%d)\n", port, txp, q_num);
 
 			mvNetaHwfTxqEnable((queue_owner - 1), port, txp, q_num, enable);
 
@@ -17864,7 +17864,7 @@
 			if ((!enable) && (curr_state))
 			{
 				//TPM_OS_INFO(TPM_PNCL_MOD, "Call mv_eth_txq_clean - current state: %d, enable %d\n", curr_state, enable);
-				printk("HWF T-Cont stop/clean, port(%d), txp(%d), que(%d)\n", port, txp, q_num);
+                printk(KERN_DEBUG "HWF T-Cont stop/clean, port(%d), txp(%d), que(%d)\n", port, txp, q_num);
 				mv_eth_txq_clean(port, txp, q_num);
 			}
 		}
@@ -17874,13 +17874,13 @@
 		{
 			if (!enable)
 			{
-				printk("SWF T-Cont stop/clean, port(%d), txp(%d), que(%d)\n", port, txp, q_num);
+                printk(KERN_DEBUG "SWF T-Cont stop/clean, port(%d), txp(%d), que(%d)\n", port, txp, q_num);
 				mv_cust_set_tcont_state(txp, false);
 				mv_eth_txq_clean(port, txp, q_num);
 			}
 			else
 			{
-				printk("SWF T-Cont active, port(%d), txp(%d), que(%d)\n", port, txp, q_num);
+                printk(KERN_DEBUG "SWF T-Cont active, port(%d), txp(%d), que(%d)\n", port, txp, q_num);
 				mv_cust_set_tcont_state(txp, true);
 			}
 		}