[WCNCR00148136] softap: add dfs test cmd
[Description]
Add dfs test cmd
Change-Id: I3a93066c37b6210bfc7dc84e90e1248cbc36528d
Feature: softap
Signed-off-by: Chun Lee <chun.lee@mediatek.com>
CR-Id: WCNCR00148136
diff --git a/common/wlan_oid.c b/common/wlan_oid.c
index 95f3a6e..ee11d4a 100644
--- a/common/wlan_oid.c
+++ b/common/wlan_oid.c
@@ -12029,6 +12029,65 @@
return rWlanStatus;
}
+
+/*----------------------------------------------------------------------------*/
+/*!
+* \brief This routine is called to set rdd report.
+*
+* \param[in] pvAdapter Pointer to the Adapter structure.
+* \param[out] pvQueryBuf A pointer to the buffer that holds the result of
+* the query.
+* \param[in] u4QueryBufLen The length of the query buffer.
+* \param[out] pu4QueryInfoLen If the call is successful, returns the number of
+* bytes written into the query buffer. If the call
+* failed due to invalid length of the query buffer,
+* returns the amount of storage needed.
+*
+* \retval WLAN_STATUS_SUCCESS
+* \retval WLAN_STATUS_INVALID_LENGTH
+*/
+/*----------------------------------------------------------------------------*/
+WLAN_STATUS
+wlanoidQuerySetRadarDetectMode(IN P_ADAPTER_T prAdapter, IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen,
+ OUT PUINT_32 pu4SetInfoLen)
+{
+ P_PARAM_CUSTOM_SET_RADAR_DETECT_MODE_T prSetRadarDetectMode;
+ P_CMD_RDD_ON_OFF_CTRL_T prCmdRddOnOffCtrl;
+ WLAN_STATUS rWlanStatus = WLAN_STATUS_SUCCESS;
+
+ DEBUGFUNC("wlanoidQuerySetRadarDetectMode");
+
+ ASSERT(prAdapter);
+ ASSERT(pu4SetInfoLen);
+
+ *pu4SetInfoLen = sizeof(P_PARAM_CUSTOM_SET_RADAR_DETECT_MODE_T);
+
+ ASSERT(pvSetBuffer);
+
+ prSetRadarDetectMode = (P_PARAM_CUSTOM_SET_RADAR_DETECT_MODE_T) pvSetBuffer;
+
+ prCmdRddOnOffCtrl = (P_CMD_RDD_ON_OFF_CTRL_T) cnmMemAlloc(prAdapter, RAM_TYPE_MSG,
+ sizeof(P_CMD_RDD_ON_OFF_CTRL_T));
+
+ prCmdRddOnOffCtrl->ucDfsCtrl = RDD_DET_MODE;
+
+ prCmdRddOnOffCtrl->ucRadarDetectMode = prSetRadarDetectMode->ucRadarDetectMode;
+
+ DBGLOG(INIT, INFO, "MT6632 : wlanoidQuerySetRadarDetectMode - DFS ctrl: %.d, Radar Detect Mode: %d\n",
+ prCmdRddOnOffCtrl->ucDfsCtrl, prCmdRddOnOffCtrl->ucRadarDetectMode);
+
+ rWlanStatus = wlanSendSetQueryCmd(prAdapter,
+ CMD_ID_RDD_ON_OFF_CTRL,
+ TRUE, /* fgSetQuery Bit: True->write False->read*/
+ FALSE, /* fgNeedResp */
+ TRUE, /* fgIsOid*/
+ nicCmdEventSetCommon, /* REF: wlanoidSetDbdcEnable */
+ nicOidCmdTimeoutCommon,
+ sizeof(CMD_RDD_ON_OFF_CTRL_T),
+ (PUINT_8) (prCmdRddOnOffCtrl), pvSetBuffer, u4SetBufferLen);
+
+ return rWlanStatus;
+}
#endif
/*----------------------------------------------------------------------------*/
diff --git a/include/mgmt/p2p_func.h b/include/mgmt/p2p_func.h
index bf86db1..09eedca 100644
--- a/include/mgmt/p2p_func.h
+++ b/include/mgmt/p2p_func.h
@@ -162,6 +162,10 @@
PUINT_8 p2pFuncJpW53RadarType(VOID);
PUINT_8 p2pFuncJpW56RadarType(VOID);
+
+VOID p2pFuncSetRadarDetectMode(IN UINT_8 ucRadarDetectMode);
+
+UINT_8 p2pFuncGetRadarDetectMode(VOID);
#endif
VOID p2pFuncSetChannel(IN P_ADAPTER_T prAdapter, IN UINT_8 ucRoleIdx, IN P_RF_CHANNEL_INFO_T prRfChannelInfo);
diff --git a/include/mgmt/p2p_role.h b/include/mgmt/p2p_role.h
index 696d581..e528daa 100644
--- a/include/mgmt/p2p_role.h
+++ b/include/mgmt/p2p_role.h
@@ -191,7 +191,7 @@
UINT_8 ucPRICountM1TH;
UINT_8 ucPRICountM2;
UINT_8 ucPRICountM2TH;
- UINT_32 u4PRI1st;
+ UINT_32 u4PRI1stUs;
LONG_PULSE_BUFFER_T arLpbContent[32];
PERIODIC_PULSE_BUFFER_T arPpbContent[32];
} P2P_RADAR_INFO_T, *P_P2P_RADAR_INFO_T;
diff --git a/include/nic_cmd_event.h b/include/nic_cmd_event.h
index f000b6a..6197a17 100644
--- a/include/nic_cmd_event.h
+++ b/include/nic_cmd_event.h
@@ -1593,6 +1593,7 @@
UINT_8 ucRddIdx;
UINT_8 ucRddInSel;
UINT_8 ucRegDomain;
+ UINT_8 ucRadarDetectMode;
} CMD_RDD_ON_OFF_CTRL_T, *P_CMD_RDD_ON_OFF_CTRL_T;
#endif
@@ -2317,7 +2318,7 @@
UINT_8 ucPRICountM1TH;
UINT_8 ucPRICountM2;
UINT_8 ucPRICountM2TH;
- UINT_32 u4PRI1st;
+ UINT_32 u4PRI1stUs;
LONG_PULSE_BUFFER_T arLpbContent[32];
PERIODIC_PULSE_BUFFER_T arPpbContent[32];
} EVENT_RDD_REPORT_T, *P_EVENT_RDD_REPORT_T;
diff --git a/include/wlan_oid.h b/include/wlan_oid.h
index fe25815..6e1a232 100644
--- a/include/wlan_oid.h
+++ b/include/wlan_oid.h
@@ -723,6 +723,10 @@
typedef struct _PARAM_CUSTOM_SET_RDD_REPORT_T {
UINT_8 ucDbdcIdx; /* 0:Band 0, 1: Band1 */
} PARAM_CUSTOM_SET_RDD_REPORT_T, *P_PARAM_CUSTOM_SET_RDD_REPORT_T;
+
+typedef struct _PARAM_CUSTOM_SET_RADAR_DETECT_MODE_T {
+ UINT_8 ucRadarDetectMode; /* 0:Switch channel, 1: Don't switch channel */
+} PARAM_CUSTOM_SET_RADAR_DETECT_MODE_T, *P_PARAM_CUSTOM_SET_RADAR_DETECT_MODE_T;
#endif
typedef struct _PARAM_CUSTOM_ACCESS_RX_STAT {
@@ -2749,6 +2753,10 @@
WLAN_STATUS
wlanoidQuerySetRddReport(IN P_ADAPTER_T prAdapter,
IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
+
+WLAN_STATUS
+wlanoidQuerySetRadarDetectMode(IN P_ADAPTER_T prAdapter,
+ IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
#endif
#if CFG_AUTO_CHANNEL_SEL_SUPPORT
diff --git a/mgmt/cnm.c b/mgmt/cnm.c
index 7206015..55daee3 100644
--- a/mgmt/cnm.c
+++ b/mgmt/cnm.c
@@ -435,6 +435,8 @@
}
}
+ p2pFuncRadarInfoInit();
+
g_rP2pRadarInfo.ucRadarReportMode = prEventBody->ucRadarReportMode;
g_rP2pRadarInfo.ucRddIdx = prEventBody->ucRddIdx;
g_rP2pRadarInfo.ucLongDetected = prEventBody->ucLongDetected;
@@ -447,7 +449,7 @@
g_rP2pRadarInfo.ucPRICountM1TH = prEventBody->ucPRICountM1TH;
g_rP2pRadarInfo.ucPRICountM2 = prEventBody->ucPRICountM2;
g_rP2pRadarInfo.ucPRICountM2TH = prEventBody->ucPRICountM2TH;
- g_rP2pRadarInfo.u4PRI1st = prEventBody->u4PRI1st;
+ g_rP2pRadarInfo.u4PRI1stUs = prEventBody->u4PRI1stUs;
kalMemCopy(&g_rP2pRadarInfo.arLpbContent[0], &prEventBody->arLpbContent[0],
prEventBody->ucLPBNum*sizeof(LONG_PULSE_BUFFER_T));
kalMemCopy(&g_rP2pRadarInfo.arPpbContent[0], &prEventBody->arPpbContent[0],
diff --git a/mgmt/p2p_func.c b/mgmt/p2p_func.c
index e5a109c..3099641 100644
--- a/mgmt/p2p_func.c
+++ b/mgmt/p2p_func.c
@@ -81,6 +81,7 @@
#if (CFG_SUPPORT_DFS_MASTER == 1)
BOOLEAN g_fgManualCac = FALSE;
UINT_32 g_u4ManualCacTime;
+UINT_8 g_ucRadarDetectMode;
P2P_RADAR_INFO_T g_rP2pRadarInfo;
PUINT_8 apucW53RadarType[3] = {
(PUINT_8) DISP_STRING("Unknown Type"),
@@ -1183,7 +1184,10 @@
VOID p2pFuncRadarInfoInit(VOID)
{
- UINT_8 ucCnt;
+
+ kalMemZero(&g_rP2pRadarInfo, sizeof(g_rP2pRadarInfo));
+
+/* UINT_8 ucCnt;
g_rP2pRadarInfo.ucRadarReportMode = 0;
g_rP2pRadarInfo.ucRddIdx = 0;
@@ -1197,7 +1201,7 @@
g_rP2pRadarInfo.ucPRICountM1TH = 0;
g_rP2pRadarInfo.ucPRICountM2 = 0;
g_rP2pRadarInfo.ucPRICountM2TH = 0;
- g_rP2pRadarInfo.u4PRI1st = 0;
+ g_rP2pRadarInfo.u4PRI1stUs = 0;
for (ucCnt = 0; ucCnt < 32; ucCnt++) {
g_rP2pRadarInfo.arPpbContent[ucCnt].u4PeriodicStartTime = 0;
@@ -1207,6 +1211,7 @@
g_rP2pRadarInfo.arLpbContent[ucCnt].u4LongStartTime = 0;
g_rP2pRadarInfo.arLpbContent[ucCnt].u2LongPulseWidth = 0;
}
+*/
}
@@ -1250,24 +1255,24 @@
DBGLOG(P2P, INFO, "start time pulse width PRI\n");
if (g_rP2pRadarInfo.ucPeriodicDetected) {
- DBGLOG(P2P, INFO, "%d %d -\n"
+ DBGLOG(P2P, INFO, "%-10d %-11d -\n"
, g_rP2pRadarInfo.arPpbContent[ucCnt].u4PeriodicStartTime
, g_rP2pRadarInfo.arPpbContent[ucCnt].u2PeriodicPulseWidth);
for (ucCnt = 1; ucCnt < g_rP2pRadarInfo.ucPPBNum; ucCnt++) {
- DBGLOG(P2P, INFO, "%d %d %d\n"
+ DBGLOG(P2P, INFO, "%-10d %-11d %d\n"
, g_rP2pRadarInfo.arPpbContent[ucCnt].u4PeriodicStartTime
, g_rP2pRadarInfo.arPpbContent[ucCnt].u2PeriodicPulseWidth
, (g_rP2pRadarInfo.arPpbContent[ucCnt].u4PeriodicStartTime
- g_rP2pRadarInfo.arPpbContent[ucCnt-1].u4PeriodicStartTime) * 2 / 5);
}
} else if (g_rP2pRadarInfo.ucLongDetected) {
- DBGLOG(P2P, INFO, "%d %d -\n"
+ DBGLOG(P2P, INFO, "%-10d %-11d -\n"
, g_rP2pRadarInfo.arLpbContent[ucCnt].u4LongStartTime
, g_rP2pRadarInfo.arLpbContent[ucCnt].u2LongPulseWidth);
for (ucCnt = 1; ucCnt < g_rP2pRadarInfo.ucLPBNum; ucCnt++) {
- DBGLOG(P2P, INFO, "%d %d %d\n"
+ DBGLOG(P2P, INFO, "%-10d %-11d %d\n"
, g_rP2pRadarInfo.arLpbContent[ucCnt].u4LongStartTime
, g_rP2pRadarInfo.arLpbContent[ucCnt].u2LongPulseWidth
, (g_rP2pRadarInfo.arLpbContent[ucCnt].u4LongStartTime
@@ -1282,15 +1287,15 @@
UINT_32 u4Type1Diff;
UINT_32 u4Type2Diff;
- if (g_rP2pRadarInfo.u4PRI1st >= 1428)
- u4Type1Diff = g_rP2pRadarInfo.u4PRI1st - 1428;
+ if (g_rP2pRadarInfo.u4PRI1stUs >= 1428)
+ u4Type1Diff = g_rP2pRadarInfo.u4PRI1stUs - 1428;
else
- u4Type1Diff = 1428 - g_rP2pRadarInfo.u4PRI1st;
+ u4Type1Diff = 1428 - g_rP2pRadarInfo.u4PRI1stUs;
- if (g_rP2pRadarInfo.u4PRI1st >= 3846)
- u4Type2Diff = g_rP2pRadarInfo.u4PRI1st - 3846;
+ if (g_rP2pRadarInfo.u4PRI1stUs >= 3846)
+ u4Type2Diff = g_rP2pRadarInfo.u4PRI1stUs - 3846;
else
- u4Type2Diff = 3846 - g_rP2pRadarInfo.u4PRI1st;
+ u4Type2Diff = 3846 - g_rP2pRadarInfo.u4PRI1stUs;
if (u4Type1Diff < u4Type2Diff)
return apucW53RadarType[1];
@@ -1306,20 +1311,20 @@
if (g_rP2pRadarInfo.ucLongDetected)
return apucW56RadarType[7];
- if (g_rP2pRadarInfo.u4PRI1st >= 3980 && g_rP2pRadarInfo.u4PRI1st <= 4020)
+ if (g_rP2pRadarInfo.u4PRI1stUs >= 3980 && g_rP2pRadarInfo.u4PRI1stUs <= 4020)
return apucW56RadarType[3];
- if (g_rP2pRadarInfo.u4PRI1st >= 1368 && g_rP2pRadarInfo.u4PRI1st <= 1448) {
+ if (g_rP2pRadarInfo.u4PRI1stUs >= 1368 && g_rP2pRadarInfo.u4PRI1stUs <= 1448) {
- if (g_rP2pRadarInfo.u4PRI1st >= 1388)
- u4Type1Diff = g_rP2pRadarInfo.u4PRI1st - 1388;
+ if (g_rP2pRadarInfo.u4PRI1stUs >= 1388)
+ u4Type1Diff = g_rP2pRadarInfo.u4PRI1stUs - 1388;
else
- u4Type1Diff = 1388 - g_rP2pRadarInfo.u4PRI1st;
+ u4Type1Diff = 1388 - g_rP2pRadarInfo.u4PRI1stUs;
- if (g_rP2pRadarInfo.u4PRI1st >= 1428)
- u4Type2Diff = g_rP2pRadarInfo.u4PRI1st - 1428;
+ if (g_rP2pRadarInfo.u4PRI1stUs >= 1428)
+ u4Type2Diff = g_rP2pRadarInfo.u4PRI1stUs - 1428;
else
- u4Type2Diff = 1428 - g_rP2pRadarInfo.u4PRI1st;
+ u4Type2Diff = 1428 - g_rP2pRadarInfo.u4PRI1stUs;
if (u4Type1Diff < u4Type2Diff)
return apucW56RadarType[1];
@@ -1328,15 +1333,15 @@
}
- if (g_rP2pRadarInfo.u4PRI1st >= 130 && g_rP2pRadarInfo.u4PRI1st < 200)
+ if (g_rP2pRadarInfo.u4PRI1stUs >= 130 && g_rP2pRadarInfo.u4PRI1stUs < 200)
return apucW56RadarType[4];
- if (g_rP2pRadarInfo.u4PRI1st >= 200 && g_rP2pRadarInfo.u4PRI1st <= 520) {
+ if (g_rP2pRadarInfo.u4PRI1stUs >= 200 && g_rP2pRadarInfo.u4PRI1stUs <= 520) {
- if (g_rP2pRadarInfo.u4PRI1st <= 230)
+ if (g_rP2pRadarInfo.u4PRI1stUs <= 230)
return apucW56RadarType[9];
- if (g_rP2pRadarInfo.u4PRI1st >= 323 && g_rP2pRadarInfo.u4PRI1st <= 343)
+ if (g_rP2pRadarInfo.u4PRI1stUs >= 323 && g_rP2pRadarInfo.u4PRI1stUs <= 343)
return apucW56RadarType[10];
return apucW56RadarType[11];
@@ -1344,6 +1349,18 @@
return apucW56RadarType[0];
}
+
+VOID p2pFuncSetRadarDetectMode(IN UINT_8 ucRadarDetectMode)
+{
+ g_ucRadarDetectMode = ucRadarDetectMode;
+
+ DBGLOG(P2P, INFO, "p2pFuncSetRadarDetectMode: g_ucRadarDetectMode: %d\n", g_ucRadarDetectMode);
+}
+
+UINT_8 p2pFuncGetRadarDetectMode(VOID)
+{
+ return g_ucRadarDetectMode;
+}
#endif
#if 0
diff --git a/mgmt/p2p_role_fsm.c b/mgmt/p2p_role_fsm.c
index 2c50709..d6ffe78 100644
--- a/mgmt/p2p_role_fsm.c
+++ b/mgmt/p2p_role_fsm.c
@@ -1215,10 +1215,14 @@
prP2pRoleFsmInfo->eCurrentState != P2P_ROLE_STATE_IDLE)
ASSERT(FALSE);
+ if (p2pFuncGetRadarDetectMode())
+ DBGLOG(P2P, INFO, "p2pRoleFsmRunEventRadarDet: Ignore radar event\n");
+ else {
if (prP2pRoleFsmInfo->eCurrentState == P2P_ROLE_STATE_DFS_CAC)
p2pRoleFsmStateTransition(prAdapter, prP2pRoleFsmInfo, P2P_ROLE_STATE_IDLE);
kalP2PRddDetectUpdate(prAdapter->prGlueInfo, prP2pRoleFsmInfo->ucRoleIndex);
+ }
p2pFuncShowRadarInfo(prAdapter, prMsgP2pRddDetMsg->ucBssIndex);
diff --git a/os/linux/gl_ate_agent.c b/os/linux/gl_ate_agent.c
index 4cf6dc2..2bbbee2 100644
--- a/os/linux/gl_ate_agent.c
+++ b/os/linux/gl_ate_agent.c
@@ -175,6 +175,7 @@
#if (CFG_SUPPORT_DFS_MASTER == 1)
{"RDDReport", SetRddReport},
{"ByPassCac", SetByPassCac},
+ {"RadarDetectMode", SetRadarDetectMode},
#endif
{NULL,}
@@ -2089,6 +2090,49 @@
return i4Status;
}
+/*----------------------------------------------------------------------------*/
+/*!
+* \brief This routine is called to Set Radar Detect Mode.
+*
+* \param[in] prNetDev Pointer to the Net Device
+* \param[in] prInBuf A pointer to the command string buffer
+* \param[out] None
+*
+* \retval 0 On success.
+* \retval -EINVAL If invalid argument.
+*/
+/*----------------------------------------------------------------------------*/
+int SetRadarDetectMode(struct net_device *prNetDev, UINT_8 *prInBuf)
+{
+ INT_32 i4Status;
+ INT_32 rv;
+ int radarDetectMode;
+ UINT_8 ucRadarDetectMode;
+
+ DBGLOG(REQ, INFO, "MT6632 : ATE_AGENT iwpriv Set Radar Detect Mode, buf: %s\n", prInBuf);
+
+ rv = kstrtoint(prInBuf, 0, &radarDetectMode);
+
+ DBGLOG(REQ, INFO, "MT6632 : ATE_AGENT iwpriv Set Radar Detect Mode, prInBuf: %s\n", prInBuf);
+ DBGLOG(INIT, ERROR, "MT6632 : ATE_AGENT iwpriv Set Radar Detect Mode : %d\n", radarDetectMode);
+
+ ucRadarDetectMode = (UINT_8) radarDetectMode;
+
+ if (ucRadarDetectMode > 1) {
+ DBGLOG(REQ, ERROR, "Radar Detect Mode > 1, Invalid data\n");
+ return WLAN_STATUS_INVALID_DATA;
+ }
+
+ p2pFuncSetRadarDetectMode(ucRadarDetectMode);
+
+ if (rv == 0)
+ i4Status = MT_ATESetRadarDetectMode(prNetDev, ucRadarDetectMode);
+ else
+ return -EINVAL;
+
+ return i4Status;
+}
+
#endif
/*----------------------------------------------------------------------------*/
diff --git a/os/linux/gl_hook_api.c b/os/linux/gl_hook_api.c
index 393dd0d..3d20778 100644
--- a/os/linux/gl_hook_api.c
+++ b/os/linux/gl_hook_api.c
@@ -2610,6 +2610,45 @@
return i4Status;
}
+
+/*----------------------------------------------------------------------------*/
+/*!
+* \brief Hook API for Set Radar Detect Mode.
+*
+* \param[in] prNetDev Pointer to the Net Device
+* \param[in] ucRadarDetectMode Radar Detect Mode
+* \param[out] None
+*
+* \retval 0 On success.
+* \retval -EFAULT If kalIoctl return nonzero.
+* \retval -EINVAL If invalid argument.
+*/
+/*----------------------------------------------------------------------------*/
+INT_32 MT_ATESetRadarDetectMode(struct net_device *prNetDev, UINT_8 ucRadarDetectMode)
+{
+ UINT_32 u4BufLen = 0;
+ PARAM_CUSTOM_SET_RADAR_DETECT_MODE_T rSetRadarDetectMode;
+ P_GLUE_INFO_T prGlueInfo = NULL;
+ WLAN_STATUS i4Status = WLAN_STATUS_SUCCESS;
+
+ prGlueInfo = *((P_GLUE_INFO_T *) netdev_priv(prNetDev));
+ kalMemSet(&rSetRadarDetectMode, 0, sizeof(PARAM_CUSTOM_SET_RADAR_DETECT_MODE_T));
+
+ /* Set Rdd Report */
+ DBGLOG(INIT, INFO, "MT6632 : QA_AGENT Set Radar Detect Mode: %d\n", ucRadarDetectMode);
+ rSetRadarDetectMode.ucRadarDetectMode = ucRadarDetectMode;
+
+ i4Status = kalIoctl(prGlueInfo,
+ wlanoidQuerySetRadarDetectMode,
+ &rSetRadarDetectMode,
+ sizeof(PARAM_CUSTOM_SET_RADAR_DETECT_MODE_T), FALSE, FALSE, TRUE, &u4BufLen);
+
+ if (i4Status != WLAN_STATUS_SUCCESS)
+ return -EFAULT;
+
+ return i4Status;
+}
+
#endif
#if CFG_SUPPORT_TX_BF
diff --git a/os/linux/include/gl_ate_agent.h b/os/linux/include/gl_ate_agent.h
index c1403df..c61d8f4 100644
--- a/os/linux/include/gl_ate_agent.h
+++ b/os/linux/include/gl_ate_agent.h
@@ -190,6 +190,7 @@
#if (CFG_SUPPORT_DFS_MASTER == 1)
int SetRddReport(struct net_device *prNetDev, UINT_8 *prInBuf);
int SetByPassCac(struct net_device *prNetDev, UINT_8 *prInBuf);
+int SetRadarDetectMode(struct net_device *prNetDev, UINT_8 *prInBuf);
#endif
diff --git a/os/linux/include/gl_hook_api.h b/os/linux/include/gl_hook_api.h
index b3387d9..9c14f72 100644
--- a/os/linux/include/gl_hook_api.h
+++ b/os/linux/include/gl_hook_api.h
@@ -148,6 +148,7 @@
INT_32 MT_ATESetTxTargetPower(struct net_device *prNetDev, UINT_8 ucTxTargetPower);
#if (CFG_SUPPORT_DFS_MASTER == 1)
INT_32 MT_ATESetRddReport(struct net_device *prNetDev, UINT_8 ucDbdcIdx);
+INT_32 MT_ATESetRadarDetectMode(struct net_device *prNetDev, UINT_8 ucRadarDetectMode);
#endif