diff --git a/include/nic_cmd_event.h b/include/nic_cmd_event.h
index 6dd2f1d..a9e0cc7 100644
--- a/include/nic_cmd_event.h
+++ b/include/nic_cmd_event.h
@@ -1577,12 +1577,17 @@
 } CMD_BT_OVER_WIFI, *P_CMD_BT_OVER_WIFI;
 
 #if (CFG_SUPPORT_DFS_MASTER == 1)
+typedef enum _ENUM_REG_DOMAIN_T {
+	REG_DEFAULT = 0,
+	REG_JP_53,
+	REG_JP_56
+} ENUM_REG_DOMAIN_T, *P_ENUM_REG_DOMAIN_T;
+
 typedef struct _CMD_RDD_ON_OFF_CTRL_T {
 	UINT_8 ucDfsCtrl;
 	UINT_8 ucRddIdx;
-	UINT_16 u2CountryCode;
 	UINT_8 ucRddInSel;
-	UINT_8 ucReserve[3];
+	UINT_8 ucRegDomain;
 } CMD_RDD_ON_OFF_CTRL_T, *P_CMD_RDD_ON_OFF_CTRL_T;
 #endif
 
@@ -2263,6 +2268,34 @@
 	UINT_8 aucReserved2[8];
 } EVENT_CH_PRIVILEGE_T, *P_EVENT_CH_PRIVILEGE_T;
 
+typedef struct _LONG_PULSE_BUFFER_T {
+	UINT_32 u4LongStartTime;
+	UINT_16 u2LongPulseWidth;
+} LONG_PULSE_BUFFER_T, *PLONG_PULSE_BUFFER_T;
+
+typedef struct _PERIODIC_PULSE_BUFFER_T {
+	UINT_32 u4PeriodicStartTime;
+	UINT_16 u2PeriodicPulseWidth;
+	INT_16 i2PeriodicPulsePower;
+} PERIODIC_PULSE_BUFFER_T, *PPERIODIC_PULSE_BUFFER_T;
+
+typedef struct _EVENT_RDD_REPORT_T {
+	UINT_8 ucRadarReportMode; /*0: Only report radar detected;   1:  Add parameter reports*/
+	UINT_8 ucRddIdx;
+	UINT_8 ucLongDetected;
+	UINT_8 ucPeriodicDetected;
+	UINT_8 ucLPBNum;
+	UINT_8 ucPPBNum;
+	UINT_8 ucLPBPeriodValid;
+	UINT_8 ucLPBWidthValid;
+	UINT_8 ucPRICountM1;
+	UINT_8 ucPRICountM1TH;
+	UINT_8 ucPRICountM2;
+	UINT_8 ucPRICountM2TH;
+	LONG_PULSE_BUFFER_T arLpbContent[32];
+	PERIODIC_PULSE_BUFFER_T arPpbContent[32];
+} EVENT_RDD_REPORT_T, *P_EVENT_RDD_REPORT_T;
+
 typedef struct _EVENT_BSS_BEACON_TIMEOUT_T {
 	UINT_8 ucBssIndex;
 	UINT_8 ucReasonCode;
diff --git a/mgmt/p2p_func.c b/mgmt/p2p_func.c
index 5d5c76a..3eff14d 100644
--- a/mgmt/p2p_func.c
+++ b/mgmt/p2p_func.c
@@ -990,15 +990,23 @@
 VOID p2pFuncStartRdd(IN P_ADAPTER_T prAdapter, IN UINT_8 ucBssIdx)
 {
 	P_CMD_RDD_ON_OFF_CTRL_T prCmdRddOnOffCtrl;
+	P_P2P_ROLE_FSM_INFO_T prP2pRoleFsmInfo = (P_P2P_ROLE_FSM_INFO_T) NULL;
 	UINT_8 ucCountryChar[2];
+	UINT_16 u2CountryCode;
+	UINT_8 ucReqChnlNum;
 
 	DEBUGFUNC("p2pFuncStartRdd()");
 
 	do {
 		ASSERT_BREAK((prAdapter != NULL));
 
+		prP2pRoleFsmInfo = P2P_ROLE_INDEX_2_ROLE_FSM_INFO(prAdapter,
+				prAdapter->aprBssInfo[ucBssIdx]->u4PrivateData);
+
+		ucReqChnlNum = prP2pRoleFsmInfo->rChnlReqInfo.ucReqChnlNum;
+
 		prCmdRddOnOffCtrl = (P_CMD_RDD_ON_OFF_CTRL_T) cnmMemAlloc(prAdapter, RAM_TYPE_MSG,
-					sizeof(P_CMD_RDD_ON_OFF_CTRL_T));
+					sizeof(*prCmdRddOnOffCtrl));
 
 		prCmdRddOnOffCtrl->ucDfsCtrl = RDD_START;
 
@@ -1006,8 +1014,17 @@
 
 		ucCountryChar[0] = (UINT_8) prAdapter->rWifiVar.rConnSettings.u2CountryCode;
 		ucCountryChar[1] = (UINT_8) (prAdapter->rWifiVar.rConnSettings.u2CountryCode >> 8);
-		prCmdRddOnOffCtrl->u2CountryCode = (((UINT_16) ucCountryChar[0]) << 8) | ((UINT_16) ucCountryChar[1]);
-		DBGLOG(P2P, INFO, "Country code =  %x\n", prCmdRddOnOffCtrl->u2CountryCode);
+		u2CountryCode = (((UINT_16) ucCountryChar[0]) << 8) | ((UINT_16) ucCountryChar[1]);
+		DBGLOG(P2P, INFO, "Country code =  %x\n", u2CountryCode);
+
+		if (u2CountryCode == COUNTRY_CODE_JP) {
+			if (ucReqChnlNum >= 52 && ucReqChnlNum <= 64)
+				prCmdRddOnOffCtrl->ucRegDomain = REG_JP_53;
+			else if (ucReqChnlNum >= 100 && ucReqChnlNum <= 140)
+				prCmdRddOnOffCtrl->ucRegDomain = REG_JP_56;
+		} else {
+			prCmdRddOnOffCtrl->ucRegDomain = REG_DEFAULT;
+		}
 
 		if (prCmdRddOnOffCtrl->ucRddIdx)
 			prCmdRddOnOffCtrl->ucRddInSel = RDD_IN_SEL_1;
@@ -1080,6 +1097,18 @@
 						prGlueInfo->prP2PInfo[prP2pRoleFsmInfo->ucRoleIndex]->chandef);
 		DBGLOG(P2P, INFO, "p2pFuncDfsSwitchCh: Update to OS Done\n");
 
+		if (prGlueInfo->prP2PInfo[prP2pRoleFsmInfo->ucRoleIndex]->chandef->chan)
+			cnmMemFree(prGlueInfo->prAdapter,
+				prGlueInfo->prP2PInfo[prP2pRoleFsmInfo->ucRoleIndex]->chandef->chan);
+
+		prGlueInfo->prP2PInfo[prP2pRoleFsmInfo->ucRoleIndex]->chandef->chan = NULL;
+
+		if (prGlueInfo->prP2PInfo[prP2pRoleFsmInfo->ucRoleIndex]->chandef)
+			cnmMemFree(prGlueInfo->prAdapter,
+				prGlueInfo->prP2PInfo[prP2pRoleFsmInfo->ucRoleIndex]->chandef);
+
+		prGlueInfo->prP2PInfo[prP2pRoleFsmInfo->ucRoleIndex]->chandef = NULL;
+
 	} while (FALSE);
 }				/* p2pFuncDfsSwitchCh */
 #endif
diff --git a/os/linux/gl_init.c b/os/linux/gl_init.c
index 9c6bff5..af4f6f1 100644
--- a/os/linux/gl_init.c
+++ b/os/linux/gl_init.c
@@ -216,26 +216,24 @@
 	.max_power          = 30,                       \
 }
 static struct ieee80211_channel mtk_5ghz_channels[] = {
-	CHAN5G(34, 0), CHAN5G(36, 0),
-	CHAN5G(38, 0), CHAN5G(40, 0),
-	CHAN5G(42, 0), CHAN5G(44, 0),
-	CHAN5G(46, 0), CHAN5G(48, 0),
-	CHAN5G(52, 0), CHAN5G(56, 0),
-	CHAN5G(60, 0), CHAN5G(64, 0),
-	CHAN5G(100, 0), CHAN5G(104, 0),
-	CHAN5G(108, 0), CHAN5G(112, 0),
-	CHAN5G(116, 0), CHAN5G(120, 0),
-	CHAN5G(124, 0), CHAN5G(128, 0),
-	CHAN5G(132, 0), CHAN5G(136, 0),
-	CHAN5G(140, 0), CHAN5G(149, 0),
-	CHAN5G(153, 0), CHAN5G(157, 0),
-	CHAN5G(161, 0), CHAN5G(165, 0),
-	CHAN5G(169, 0), CHAN5G(173, 0),
-	CHAN5G(184, 0), CHAN5G(188, 0),
-	CHAN5G(192, 0), CHAN5G(196, 0),
-	CHAN5G(200, 0), CHAN5G(204, 0),
-	CHAN5G(208, 0), CHAN5G(212, 0),
-	CHAN5G(216, 0),
+	CHAN5G(34, 0), CHAN5G(36, 0),  /* Remove CH38, 42, 46 */
+	CHAN5G(40, 0), CHAN5G(44, 0),
+	CHAN5G(48, 0), CHAN5G(52, 0),
+	CHAN5G(56, 0), CHAN5G(60, 0),
+	CHAN5G(64, 0), CHAN5G(100, 0),
+	CHAN5G(104, 0), CHAN5G(108, 0),
+	CHAN5G(112, 0), CHAN5G(116, 0),
+	CHAN5G(120, 0), CHAN5G(124, 0),
+	CHAN5G(128, 0),	CHAN5G(132, 0),
+	CHAN5G(136, 0),	CHAN5G(140, 0),
+	CHAN5G(149, 0),	CHAN5G(153, 0),
+	CHAN5G(157, 0),	CHAN5G(161, 0),
+	CHAN5G(165, 0),	CHAN5G(169, 0),
+	CHAN5G(173, 0), CHAN5G(184, 0),
+	CHAN5G(188, 0),	CHAN5G(192, 0),
+	CHAN5G(196, 0),	CHAN5G(200, 0),
+	CHAN5G(204, 0),	CHAN5G(208, 0),
+	CHAN5G(212, 0),	CHAN5G(216, 0),
 };
 
 #define RATETAB_ENT(_rate, _rateid, _flags) \
diff --git a/os/linux/gl_p2p_kal.c b/os/linux/gl_p2p_kal.c
index f2b5cdd..e132ca7 100644
--- a/os/linux/gl_p2p_kal.c
+++ b/os/linux/gl_p2p_kal.c
@@ -1307,9 +1307,13 @@
 		if (prGlueInfo->prP2PInfo[ucRoleIndex]->chandef->chan)
 			cnmMemFree(prGlueInfo->prAdapter, prGlueInfo->prP2PInfo[ucRoleIndex]->chandef->chan);
 
+		prGlueInfo->prP2PInfo[ucRoleIndex]->chandef->chan = NULL;
+
 		if (prGlueInfo->prP2PInfo[ucRoleIndex]->chandef)
 			cnmMemFree(prGlueInfo->prAdapter, prGlueInfo->prP2PInfo[ucRoleIndex]->chandef);
 
+		prGlueInfo->prP2PInfo[ucRoleIndex]->chandef = NULL;
+
 	} while (FALSE);
 
 }				/* kalP2PRddDetectUpdate */
@@ -1332,13 +1336,6 @@
 				prGlueInfo->prP2PInfo[ucRoleIndex]->chandef, NL80211_RADAR_CAC_FINISHED, GFP_KERNEL);
 		DBGLOG(INIT, INFO, "kalP2PCacFinishedUpdate: Update to OS Done\n");
 
-		if (prGlueInfo->prP2PInfo[ucRoleIndex]->chandef->chan)
-			cnmMemFree(prGlueInfo->prAdapter, prGlueInfo->prP2PInfo[ucRoleIndex]->chandef->chan);
-
-		if (prGlueInfo->prP2PInfo[ucRoleIndex]->chandef)
-			cnmMemFree(prGlueInfo->prAdapter, prGlueInfo->prP2PInfo[ucRoleIndex]->chandef);
-
-
 	} while (FALSE);
 
 }				/* kalP2PRddDetectUpdate */
