diff --git a/arch/arm/mach-feroceon-kw2/include/mach/system.h b/arch/arm/mach-feroceon-kw2/include/mach/system.h
index 393cf1b..527509b 100644
--- 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.7.25_RC22"
+#define UPON_SDK_VERSION "uPON_2.7.25_RC24"
 
 #ifdef __BIG_ENDIAN
 #define MV_ARM_32BIT_LE(X) ((((X)&0xff)<<24) |                       \
diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_flow.c b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_flow.c
old mode 100755
new mode 100644
index 7014319..edc1598
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_flow.c
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_flow.c
@@ -1298,8 +1298,10 @@
         p_field += MV_IPV4_PROTO_OFFSET;
         proto = *(UINT8 *)p_field;
 
-        if (IPPROTO_IGMP == proto)
+        if (IPPROTO_IGMP == proto) {
             flow->parse_bm |= CPH_FLOW_PARSE_MC_PROTO;
+            flow->ip_type   = IPPROTO_IGMP;
+	}
     }
     else if (MV_CPH_ETH_TYPE_IPV6 == flow->eth_type) {
         p_ipv6_hdr = (struct ipv6hdr *)(p_field + MV_CPH_ETH_TYPE_LEN);
@@ -1316,6 +1318,7 @@
                     case ICMPV6_MGM_REDUCTION:
                     case ICMPV6_MLD2_REPORT:
                         flow->parse_bm |= CPH_FLOW_PARSE_MC_PROTO;
+			flow->ip_type = IPPROTO_ICMPV6;
                         break;
                     default:
                         break;
@@ -1401,6 +1404,12 @@
             return FALSE;
     }
 
+    if (db_rule->parse_bm & CPH_FLOW_PARSE_MC_PROTO)
+    {
+        if (parse_rule->ip_type != db_rule->ip_type)
+            return FALSE;
+    }
+
     return TRUE;
 }
 
@@ -1434,6 +1443,11 @@
             return FALSE;
     }
 
+	if (packet_rule->parse_bm & CPH_FLOW_PARSE_MC_PROTO) {
+		if ((db_rule->ip_type != MV_CPH_IP_TYPE_ANY) && (db_rule->ip_type != packet_rule->ip_type))
+			return false;
+	}
+
     /* Check MH if needed */
     if ((db_rule->parse_bm & CPH_FLOW_PARSE_MH) &&
         (packet_rule->parse_bm & CPH_FLOW_PARSE_MH) )
@@ -1522,6 +1536,11 @@
             return FALSE;
     }
 
+	if (packet_rule->parse_bm & CPH_FLOW_PARSE_MC_PROTO) {
+		if ((db_rule->ip_type != MV_CPH_IP_TYPE_ANY) && (db_rule->ip_type != packet_rule->ip_type))
+			return false;
+	}
+
     /* Check MH if needed */
     if ((db_rule->parse_bm & CPH_FLOW_PARSE_MH) &&
         (packet_rule->parse_bm & CPH_FLOW_PARSE_MH) )
@@ -1997,7 +2016,7 @@
 
     printk(KERN_INFO "-------------------------------------------------------------------------------------------------------------------------------------------------------\n");
     printk(KERN_INFO "                                |Parse outer       |Parse inner       |Mod outer         |Mod Inner         |Forward\n");
-    printk(KERN_INFO "dir default parse_bm mh   ety    tpid   vid  pbits  tpid   vid  pbits  tpid   vid  pbits  tpid   vid  pbits  port queue hwf_queue gem  count    op_type\n");
+    printk(KERN_INFO "dir default parse_bm mh   ety    tpid   vid  pbits  tpid   vid  pbits  tpid   vid  pbits  tpid   vid  pbits  port queue hwf_queue gem  count    ip_type op_type\n");
     /* Traverse CPH flow rule tale */
     for (idx = 0, rule_idx = 0; (idx < CPH_FLOW_ENTRY_NUM) && (rule_idx < gs_flow_table.rule_num); idx++)
     {
@@ -2009,7 +2028,7 @@
             rule_idx++;
 
             printk(KERN_INFO  
-                   "%2.2s  %3.3s     0x%04x   %-4d 0x%04x 0x%04x %-4d %1d      0x%04x %-4d %1d      0x%04x %-4d %1d      0x%04x %-4d %1d      %1d    %1d     %1d         %-4d %-8d %s\n",
+                   "%2.2s  %3.3s     0x%04x   %-4d 0x%04x 0x%04x %-4d %1d      0x%04x %-4d %1d      0x%04x %-4d %1d      0x%04x %-4d %1d      %1d    %1d     %1d         %-4d %-8d %7d %s\n",
                    cph_app_lookup_dir(p_flow_rule->dir), (p_flow_rule->is_default == TRUE)? "Yes":"No ", 
                    p_flow_rule->parse_bm,             p_flow_rule->mh,                  p_flow_rule->eth_type,
                    p_flow_rule->parse_outer_tci.tpid, p_flow_rule->parse_outer_tci.vid, p_flow_rule->parse_outer_tci.pbits, 
@@ -2017,7 +2036,7 @@
                    p_flow_rule->mod_outer_tci.tpid,   p_flow_rule->mod_outer_tci.vid,   p_flow_rule->mod_outer_tci.pbits,
                    p_flow_rule->mod_inner_tci.tpid,   p_flow_rule->mod_inner_tci.vid,   p_flow_rule->mod_inner_tci.pbits,
                    p_flow_rule->pkt_frwd.trg_port,    p_flow_rule->pkt_frwd.trg_queue,  p_flow_rule->pkt_frwd.trg_hwf_queue, p_flow_rule->pkt_frwd.gem_port, 
-                   p_flow_rule->count,                cph_flow_lookup_op_type(p_flow_rule->op_type));
+                   p_flow_rule->count,                p_flow_rule->ip_type,             cph_flow_lookup_op_type(p_flow_rule->op_type));
         }
     }   
 
diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_flow.h b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_flow.h
old mode 100755
new mode 100644
index 96e9ee2..39f8a05
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_flow.h
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_flow.h
@@ -101,6 +101,8 @@
 #define MV_CPH_DEFAULT_SINGLE_TAG_RULE   (4096+2)/* Default sinlge tagged  rule*/
 #define MV_CPH_DEFAULT_DOUBLE_UNTAG_RULE (4096+3)/* Default double tagged  rule*/
 
+#define MV_CPH_IP_TYPE_ANY               (0)   /* Dummy IP type, do not care IP type*/
+
 /* CPH flow mapping rule definition
 ------------------------------------------------------------------------------*/
 typedef enum
@@ -168,6 +170,7 @@
     CPH_FLOW_TCI_T     parse_outer_tci;
     CPH_FLOW_TCI_T     parse_inner_tci;
     UINT16             eth_type;
+    UINT16             ip_type;
     CPH_VLAN_OP_TYPE_E op_type;
     CPH_FLOW_TCI_T     mod_outer_tci;
     CPH_FLOW_TCI_T     mod_inner_tci;
diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_netdev.c b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_netdev.c
old mode 100755
new mode 100644
index 883620c..2049016
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_netdev.c
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_netdev.c
@@ -630,6 +630,8 @@
     BOOL             l_mh;
     BOOL             state  = FALSE;
     MV_STATUS        rc     = MV_OK;
+    UINT16  		old_vid;
+    UINT8   		old_pbits;
 
     if (MV_PON_PORT_ID != port)
         return 0;
@@ -654,31 +656,46 @@
         /* Get CPH data flow rule */
         flow_rule.is_default = FALSE;
         rc = cph_flow_get_rule(&flow_rule);
-        if (rc != MV_OK)
-        {
-            /* Handle multicat packets as unicast one */
-            if (flow_rule.parse_bm & CPH_FLOW_PARSE_MC_PROTO) {
-                flow_rule.parse_bm &= ~CPH_FLOW_PARSE_MC_PROTO;
-                rc = cph_flow_get_rule_by_vid(&flow_rule);
-                if (rc != MV_OK)
-                {
-                    rc = cph_flow_get_rule(&flow_rule);
+        if (rc != MV_OK) {
+		if (flow_rule.parse_bm & CPH_FLOW_PARSE_MC_PROTO) {
+			/*search */
+			flow_rule.is_default = TRUE;
+			old_vid = flow_rule.parse_outer_tci.vid;
+			old_pbits = flow_rule.parse_outer_tci.pbits;
+			flow_rule.parse_outer_tci.vid   = MV_CPH_VID_NOT_CARE_VALUE;
+			flow_rule.parse_outer_tci.pbits = MV_CPH_PBITS_NOT_CARE_VALUE;
+			rc = cph_flow_get_rule(&flow_rule);
 
-                    if (rc != MV_OK)
-                    {
-                        flow_rule.is_default = TRUE;
-                        rc = cph_flow_get_rule(&flow_rule);
-                        if (rc != MV_OK)
-                        {
-                            MV_CPH_PRINT(CPH_DEBUG_LEVEL, "%s():fail to call cph_flow_get_rule, rc<%d> \n", __FUNCTION__, rc);
-                            return 0;
-                        }
-                    }
-                }
-            }
+			/* Handle multicat packets as unicast one */
+			if (rc != MV_OK)
+			{
+				flow_rule.parse_outer_tci.vid   = old_vid;
+				flow_rule.parse_outer_tci.pbits = old_pbits;
+				flow_rule.is_default = FALSE;
+				flow_rule.parse_bm &= ~CPH_FLOW_PARSE_MC_PROTO;
+				rc = cph_flow_get_rule_by_vid(&flow_rule);
+				if (rc != MV_OK)
+					rc = cph_flow_get_rule(&flow_rule);
+
+				if (rc != MV_OK)
+				{
+					flow_rule.is_default = TRUE;
+					flow_rule.parse_outer_tci.vid   = MV_CPH_VID_NOT_CARE_VALUE;
+					flow_rule.parse_outer_tci.pbits = MV_CPH_PBITS_NOT_CARE_VALUE;
+					rc = cph_flow_get_rule(&flow_rule);
+					if (rc != MV_OK)
+					{
+						MV_CPH_PRINT(CPH_DEBUG_LEVEL, "%s():fail to call cph_flow_get_rule, rc<%d> \n", __FUNCTION__, rc);
+						return 0;
+					}
+				}
+			}
+		}
             else {
 
-                flow_rule.is_default = TRUE;
+		flow_rule.is_default = TRUE;
+		flow_rule.parse_outer_tci.vid   = MV_CPH_VID_NOT_CARE_VALUE;
+		flow_rule.parse_outer_tci.pbits = MV_CPH_PBITS_NOT_CARE_VALUE;
                 rc = cph_flow_get_rule(&flow_rule);
                 if (rc != MV_OK)
                 {
diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_tpm/plat/tpm_switch_mgr.c b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_tpm/plat/tpm_switch_mgr.c
old mode 100755
new mode 100644
index 0ba9472..46cf9ca
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_tpm/plat/tpm_switch_mgr.c
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_tpm/plat/tpm_switch_mgr.c
@@ -83,6 +83,9 @@
 
 uint32_t trace_sw_dbg_flag = 0;
 
+static tpm_swport_pm_1_t g_mc_tpm_swport_pm_1;
+static tpm_swport_pm_3_all_t g_mc_tpm_swport_pm_3;
+
 #define IF_ERROR(ret)\
     if (ret != TPM_DB_OK) {\
         printk(KERN_ERR "ERROR: (%s) call not allowed, switch not initialized\n", __FUNCTION__);\
@@ -7582,6 +7585,57 @@
             printk(KERN_ERR "ERROR: (%s:%d) tpm_sw_pm_3_from_gmac failed\n", __FUNCTION__, __LINE__);
             return ERR_GENERAL;
         }
+
+	g_mc_tpm_swport_pm_1.fcsErrors                       += tpm_swport_pm_1->fcsErrors;
+        g_mc_tpm_swport_pm_1.excessiveCollisionCounter       += tpm_swport_pm_1->excessiveCollisionCounter;
+        g_mc_tpm_swport_pm_1.lateCollisionCounter            += tpm_swport_pm_1->lateCollisionCounter;
+        g_mc_tpm_swport_pm_1.frameTooLongs                   += tpm_swport_pm_1->frameTooLongs;
+        g_mc_tpm_swport_pm_1.bufferOverflowsOnReceive        += tpm_swport_pm_1->bufferOverflowsOnReceive;
+        g_mc_tpm_swport_pm_1.bufferOverflowsOnTransmit       += tpm_swport_pm_1->bufferOverflowsOnTransmit;
+        g_mc_tpm_swport_pm_1.singleCollisionFrameCounter     += tpm_swport_pm_1->singleCollisionFrameCounter;
+        g_mc_tpm_swport_pm_1.multipleCollisionsFrameCounter  += tpm_swport_pm_1->multipleCollisionsFrameCounter;
+        g_mc_tpm_swport_pm_1.sqeCounter                      += tpm_swport_pm_1->sqeCounter;
+        g_mc_tpm_swport_pm_1.deferredTransmissionCounter     += tpm_swport_pm_1->deferredTransmissionCounter;
+        g_mc_tpm_swport_pm_1.internalMacTransmitErrorCounter += tpm_swport_pm_1->internalMacTransmitErrorCounter;
+        g_mc_tpm_swport_pm_1.carrierSenseErrorCounter        += tpm_swport_pm_1->carrierSenseErrorCounter;
+        g_mc_tpm_swport_pm_1.alignmentErrorCounter           += tpm_swport_pm_1->alignmentErrorCounter;
+        g_mc_tpm_swport_pm_1.internalMacReceiveErrorCounter  += tpm_swport_pm_1->internalMacReceiveErrorCounter;
+
+	g_mc_tpm_swport_pm_3.dropEvents		+= tpm_swport_pm_3.dropEvents;
+        g_mc_tpm_swport_pm_3.InGoodOctetsLo	+= tpm_swport_pm_3.InGoodOctetsLo;
+        g_mc_tpm_swport_pm_3.InGoodOctetsHi	+= tpm_swport_pm_3.InGoodOctetsHi;
+        g_mc_tpm_swport_pm_3.InBadOctets	+= tpm_swport_pm_3.InBadOctets;
+        g_mc_tpm_swport_pm_3.OutFCSErr		+= tpm_swport_pm_3.OutFCSErr;
+        g_mc_tpm_swport_pm_3.InUnicasts		+= tpm_swport_pm_3.InUnicasts;
+        g_mc_tpm_swport_pm_3.Deferred		+= tpm_swport_pm_3.Deferred;
+        g_mc_tpm_swport_pm_3.InBroadcasts	+= tpm_swport_pm_3.InBroadcasts;
+        g_mc_tpm_swport_pm_3.InMulticasts	+= tpm_swport_pm_3.InMulticasts;
+        g_mc_tpm_swport_pm_3.Octets64		+= tpm_swport_pm_3.Octets64;
+        g_mc_tpm_swport_pm_3.Octets127		+= tpm_swport_pm_3.Octets127;
+        g_mc_tpm_swport_pm_3.Octets255		+= tpm_swport_pm_3.Octets255;
+        g_mc_tpm_swport_pm_3.Octets511		+= tpm_swport_pm_3.Octets511;
+        g_mc_tpm_swport_pm_3.Octets1023		+= tpm_swport_pm_3.Octets1023;
+        g_mc_tpm_swport_pm_3.OctetsMax		+= tpm_swport_pm_3.OctetsMax;
+        g_mc_tpm_swport_pm_3.OutOctetsLo	+= tpm_swport_pm_3.OutOctetsLo;
+        g_mc_tpm_swport_pm_3.OutOctetsHi	+= tpm_swport_pm_3.OutOctetsHi;
+        g_mc_tpm_swport_pm_3.OutUnicasts	+= tpm_swport_pm_3.OutUnicasts;
+        g_mc_tpm_swport_pm_3.Excessive		+= tpm_swport_pm_3.Excessive;
+        g_mc_tpm_swport_pm_3.OutMulticasts	+= tpm_swport_pm_3.OutMulticasts;
+        g_mc_tpm_swport_pm_3.OutBroadcasts	+= tpm_swport_pm_3.OutBroadcasts;
+        g_mc_tpm_swport_pm_3.Single		+= tpm_swport_pm_3.Single;
+        g_mc_tpm_swport_pm_3.OutPause		+= tpm_swport_pm_3.OutPause;
+        g_mc_tpm_swport_pm_3.InPause		+= tpm_swport_pm_3.InPause;
+        g_mc_tpm_swport_pm_3.Multiple		+= tpm_swport_pm_3.Multiple;
+        g_mc_tpm_swport_pm_3.Undersize		+= tpm_swport_pm_3.Undersize;
+        g_mc_tpm_swport_pm_3.Fragments		+= tpm_swport_pm_3.Fragments;
+        g_mc_tpm_swport_pm_3.Oversize		+= tpm_swport_pm_3.Oversize;
+        g_mc_tpm_swport_pm_3.Jabber		+= tpm_swport_pm_3.Jabber;
+        g_mc_tpm_swport_pm_3.InMACRcvErr	+= tpm_swport_pm_3.InMACRcvErr;
+        g_mc_tpm_swport_pm_3.InFCSErr		+= tpm_swport_pm_3.InFCSErr;
+        g_mc_tpm_swport_pm_3.Collisions		+= tpm_swport_pm_3.Collisions;
+        g_mc_tpm_swport_pm_3.Late		+= tpm_swport_pm_3.Late;
+
+	memcpy(tpm_swport_pm_1, &g_mc_tpm_swport_pm_1, sizeof(g_mc_tpm_swport_pm_1));
     }
 
     if (trace_sw_dbg_flag)
@@ -7721,6 +7775,57 @@
             printk(KERN_ERR "ERROR: (%s:%d) tpm_sw_pm_3_from_gmac failed\n", __FUNCTION__, __LINE__);
             return ERR_GENERAL;
         }
+
+	g_mc_tpm_swport_pm_1.fcsErrors                       += tpm_swport_pm_1.fcsErrors;
+        g_mc_tpm_swport_pm_1.excessiveCollisionCounter       += tpm_swport_pm_1.excessiveCollisionCounter;
+        g_mc_tpm_swport_pm_1.lateCollisionCounter            += tpm_swport_pm_1.lateCollisionCounter;
+        g_mc_tpm_swport_pm_1.frameTooLongs                   += tpm_swport_pm_1.frameTooLongs;
+        g_mc_tpm_swport_pm_1.bufferOverflowsOnReceive        += tpm_swport_pm_1.bufferOverflowsOnReceive;
+        g_mc_tpm_swport_pm_1.bufferOverflowsOnTransmit       += tpm_swport_pm_1.bufferOverflowsOnTransmit;
+        g_mc_tpm_swport_pm_1.singleCollisionFrameCounter     += tpm_swport_pm_1.singleCollisionFrameCounter;
+        g_mc_tpm_swport_pm_1.multipleCollisionsFrameCounter  += tpm_swport_pm_1.multipleCollisionsFrameCounter;
+        g_mc_tpm_swport_pm_1.sqeCounter                      += tpm_swport_pm_1.sqeCounter;
+        g_mc_tpm_swport_pm_1.deferredTransmissionCounter     += tpm_swport_pm_1.deferredTransmissionCounter;
+        g_mc_tpm_swport_pm_1.internalMacTransmitErrorCounter += tpm_swport_pm_1.internalMacTransmitErrorCounter;
+        g_mc_tpm_swport_pm_1.carrierSenseErrorCounter        += tpm_swport_pm_1.carrierSenseErrorCounter;
+        g_mc_tpm_swport_pm_1.alignmentErrorCounter           += tpm_swport_pm_1.alignmentErrorCounter;
+        g_mc_tpm_swport_pm_1.internalMacReceiveErrorCounter  += tpm_swport_pm_1.internalMacReceiveErrorCounter;
+
+	g_mc_tpm_swport_pm_3.dropEvents		+= tpm_swport_pm_3->dropEvents;
+        g_mc_tpm_swport_pm_3.InGoodOctetsLo	+= tpm_swport_pm_3->InGoodOctetsLo;
+        g_mc_tpm_swport_pm_3.InGoodOctetsHi	+= tpm_swport_pm_3->InGoodOctetsHi;
+        g_mc_tpm_swport_pm_3.InBadOctets	+= tpm_swport_pm_3->InBadOctets;
+        g_mc_tpm_swport_pm_3.OutFCSErr		+= tpm_swport_pm_3->OutFCSErr;
+        g_mc_tpm_swport_pm_3.InUnicasts		+= tpm_swport_pm_3->InUnicasts;
+        g_mc_tpm_swport_pm_3.Deferred		+= tpm_swport_pm_3->Deferred;
+        g_mc_tpm_swport_pm_3.InBroadcasts	+= tpm_swport_pm_3->InBroadcasts;
+        g_mc_tpm_swport_pm_3.InMulticasts	+= tpm_swport_pm_3->InMulticasts;
+        g_mc_tpm_swport_pm_3.Octets64		+= tpm_swport_pm_3->Octets64;
+        g_mc_tpm_swport_pm_3.Octets127		+= tpm_swport_pm_3->Octets127;
+        g_mc_tpm_swport_pm_3.Octets255		+= tpm_swport_pm_3->Octets255;
+        g_mc_tpm_swport_pm_3.Octets511		+= tpm_swport_pm_3->Octets511;
+        g_mc_tpm_swport_pm_3.Octets1023		+= tpm_swport_pm_3->Octets1023;
+        g_mc_tpm_swport_pm_3.OctetsMax		+= tpm_swport_pm_3->OctetsMax;
+        g_mc_tpm_swport_pm_3.OutOctetsLo	+= tpm_swport_pm_3->OutOctetsLo;
+        g_mc_tpm_swport_pm_3.OutOctetsHi	+= tpm_swport_pm_3->OutOctetsHi;
+        g_mc_tpm_swport_pm_3.OutUnicasts	+= tpm_swport_pm_3->OutUnicasts;
+        g_mc_tpm_swport_pm_3.Excessive		+= tpm_swport_pm_3->Excessive;
+        g_mc_tpm_swport_pm_3.OutMulticasts	+= tpm_swport_pm_3->OutMulticasts;
+        g_mc_tpm_swport_pm_3.OutBroadcasts	+= tpm_swport_pm_3->OutBroadcasts;
+        g_mc_tpm_swport_pm_3.Single		+= tpm_swport_pm_3->Single;
+        g_mc_tpm_swport_pm_3.OutPause		+= tpm_swport_pm_3->OutPause;
+        g_mc_tpm_swport_pm_3.InPause		+= tpm_swport_pm_3->InPause;
+        g_mc_tpm_swport_pm_3.Multiple		+= tpm_swport_pm_3->Multiple;
+        g_mc_tpm_swport_pm_3.Undersize		+= tpm_swport_pm_3->Undersize;
+        g_mc_tpm_swport_pm_3.Fragments		+= tpm_swport_pm_3->Fragments;
+        g_mc_tpm_swport_pm_3.Oversize		+= tpm_swport_pm_3->Oversize;
+        g_mc_tpm_swport_pm_3.Jabber		+= tpm_swport_pm_3->Jabber;
+        g_mc_tpm_swport_pm_3.InMACRcvErr	+= tpm_swport_pm_3->InMACRcvErr;
+        g_mc_tpm_swport_pm_3.InFCSErr		+= tpm_swport_pm_3->InFCSErr;
+        g_mc_tpm_swport_pm_3.Collisions		+= tpm_swport_pm_3->Collisions;
+        g_mc_tpm_swport_pm_3.Late		+= tpm_swport_pm_3->Late;
+
+	memcpy(tpm_swport_pm_3, &g_mc_tpm_swport_pm_3, sizeof(g_mc_tpm_swport_pm_3));
     }
 
     if (trace_sw_dbg_flag)
