[WCNCR00151602] misc: WFD Disconnect (DBDC)

[Description]
Fixed the DBDC switch bug.
Abort DBDC band different with REQ DBDC band
due to DBDC Switch send before driver abort
and FW not switch done before abort send.
Solution,
Abort with band_auto
FW will auto find the correct REQ DBDC band
even DBDC switch status unsync between driver & FW.
(merge from http://gerrit.mediatek.inc:8080/#/c/762830/2

Change-Id: Ifd2d9c999da3ad42ebf001918f659f1f607c9afd
Feature: misc
Signed-off-by: Th3 Huang <th3.huang@mediatek.com>
CR-Id: WCNCR00151602
diff --git a/include/mgmt/cnm.h b/include/mgmt/cnm.h
index ec4f6fe..7f6f701 100644
--- a/include/mgmt/cnm.h
+++ b/include/mgmt/cnm.h
@@ -163,7 +163,6 @@
 #if CFG_SUPPORT_DBDC
 typedef struct _CNM_DBDC_CAP_T {
 	UINT_8 ucBssIndex;
-	UINT_8 ucDbdcBandIndex;
 	UINT_8 ucNss;
 	UINT_8 ucWmmSetIndex;
 } CNM_DBDC_CAP_T, *P_CNM_DBDC_CAP_T;
diff --git a/mgmt/ais_fsm.c b/mgmt/ais_fsm.c
index cc3a805..fde306b 100644
--- a/mgmt/ais_fsm.c
+++ b/mgmt/ais_fsm.c
@@ -1007,7 +1007,7 @@
 						prBssDesc->eBand, prBssDesc->ucChannelNum,
 						wlanGetSupportNss(prAdapter, prAisBssInfo->ucBssIndex), &rDbdcCap);
 
-					prAisBssInfo->eDBDCBand = rDbdcCap.ucDbdcBandIndex;
+					prAisBssInfo->eDBDCBand = ENUM_BAND_AUTO;
 					prAisBssInfo->ucNss = rDbdcCap.ucNss;
 					prAisBssInfo->ucWmmQueSet = rDbdcCap.ucWmmSetIndex;
 #endif /*CFG_SUPPORT_DBDC*/
@@ -1284,7 +1284,7 @@
 			prMsgChReq->eRfSco = prAisFsmInfo->prTargetBssDesc->eSco;
 			prMsgChReq->eRfBand = prAisFsmInfo->prTargetBssDesc->eBand;
 #if CFG_SUPPORT_DBDC
-			prMsgChReq->eDBDCBand = prAisBssInfo->eDBDCBand;
+			prMsgChReq->eDBDCBand = ENUM_BAND_AUTO;
 #endif /*CFG_SUPPORT_DBDC*/
 			/* To do: check if 80/160MHz bandwidth is needed here */
 			prMsgChReq->eRfChannelWidth = prAisFsmInfo->prTargetBssDesc->eChannelWidth;
@@ -1383,7 +1383,7 @@
 			prMsgChReq->eRfSco = prAisFsmInfo->rChReqInfo.eSco;
 			prMsgChReq->eRfBand = prAisFsmInfo->rChReqInfo.eBand;
 #if CFG_SUPPORT_DBDC
-			prMsgChReq->eDBDCBand = prAdapter->prAisBssInfo->eDBDCBand;
+			prMsgChReq->eDBDCBand = ENUM_BAND_AUTO;
 #endif
 			mboxSendMsg(prAdapter, MBOX_ID_0, (P_MSG_HDR_T) prMsgChReq, MSG_SEND_METHOD_BUF);
 
@@ -3426,7 +3426,7 @@
 		prMsgChAbort->ucBssIndex = prAdapter->prAisBssInfo->ucBssIndex;
 		prMsgChAbort->ucTokenID = prAisFsmInfo->ucSeqNumOfChReq;
 #if CFG_SUPPORT_DBDC
-		prMsgChAbort->eDBDCBand = prAdapter->prAisBssInfo->eDBDCBand;
+		prMsgChAbort->eDBDCBand = ENUM_BAND_AUTO;
 #endif /*CFG_SUPPORT_DBDC*/
 		mboxSendMsg(prAdapter, MBOX_ID_0, (P_MSG_HDR_T) prMsgChAbort, MSG_SEND_METHOD_BUF);
 	}
diff --git a/mgmt/cnm.c b/mgmt/cnm.c
index 55daee3..59931ab 100644
--- a/mgmt/cnm.c
+++ b/mgmt/cnm.c
@@ -1246,16 +1246,11 @@
 			prDbdcCap->ucNss = wlanGetSupportNss(prAdapter, ucBssIndex);
 		else
 			prDbdcCap->ucNss = ucNss;
-		prDbdcCap->ucDbdcBandIndex = ENUM_BAND_0;
 		break;
 
 	case DBDC_MODE_STATIC:
 		/* Static DBDC mode, 1SS only */
 		prDbdcCap->ucNss = 1;
-		if (eRfBand == BAND_5G)
-			prDbdcCap->ucDbdcBandIndex = ENUM_BAND_0;
-		else
-			prDbdcCap->ucDbdcBandIndex = ENUM_BAND_1;
 		break;
 
 	case DBDC_MODE_DYNAMIC:
@@ -1263,7 +1258,6 @@
 			prDbdcCap->ucNss = 1;
 		else
 			prDbdcCap->ucNss = wlanGetSupportNss(prAdapter, ucBssIndex);
-		prDbdcCap->ucDbdcBandIndex = ENUM_BAND_AUTO;
 		break;
 
 	default:
diff --git a/mgmt/p2p_dev_state.c b/mgmt/p2p_dev_state.c
index 06dbc41..0faf994 100644
--- a/mgmt/p2p_dev_state.c
+++ b/mgmt/p2p_dev_state.c
@@ -136,7 +136,7 @@
 			wlanGetSupportNss(prAdapter, prBssInfo->ucBssIndex),
 			&rDbdcCap);
 
-		prBssInfo->eDBDCBand = rDbdcCap.ucDbdcBandIndex;
+		prBssInfo->eDBDCBand = ENUM_BAND_AUTO;
 		prBssInfo->ucNss = rDbdcCap.ucNss;
 		prBssInfo->ucWmmQueSet = rDbdcCap.ucWmmSetIndex;
 #endif /*CFG_SUPPORT_DBDC*/
diff --git a/mgmt/p2p_func.c b/mgmt/p2p_func.c
index 3099641..35580ba 100644
--- a/mgmt/p2p_func.c
+++ b/mgmt/p2p_func.c
@@ -948,7 +948,7 @@
 		prMsgChRelease->ucBssIndex = ucBssIdx;
 		prMsgChRelease->ucTokenID = prChnlReqInfo->ucSeqNumOfChReq++;
 #if CFG_SUPPORT_DBDC
-		prMsgChRelease->eDBDCBand = (prAdapter->aprBssInfo[ucBssIdx])->eDBDCBand;
+		prMsgChRelease->eDBDCBand = ENUM_BAND_AUTO;
 
 		DBGLOG(P2P, INFO,
 			"p2pFuncReleaseCh: P2P abort channel on band %u.\n",
@@ -997,7 +997,7 @@
 		prMsgChReq->ucRfCenterFreqSeg1 = prChnlReqInfo->ucCenterFreqS1;
 		prMsgChReq->ucRfCenterFreqSeg2 = prChnlReqInfo->ucCenterFreqS2;
 #if CFG_SUPPORT_DBDC
-		prMsgChReq->eDBDCBand = (prAdapter->aprBssInfo[ucBssIdx])->eDBDCBand;
+		prMsgChReq->eDBDCBand = ENUM_BAND_AUTO;
 
 		DBGLOG(P2P, INFO,
 		   "p2pFuncAcquireCh: P2P Request channel on band %u.\n",
diff --git a/mgmt/p2p_role_fsm.c b/mgmt/p2p_role_fsm.c
index d6ffe78..1b69269 100644
--- a/mgmt/p2p_role_fsm.c
+++ b/mgmt/p2p_role_fsm.c
@@ -900,7 +900,7 @@
 		   prP2pConnReqInfo->rChannelInfo.ucChannelNum,
 		   rDbdcCap.ucNss);
 
-		prP2pBssInfo->eDBDCBand = rDbdcCap.ucDbdcBandIndex;
+		prP2pBssInfo->eDBDCBand = ENUM_BAND_AUTO;
 		prP2pBssInfo->ucNss = rDbdcCap.ucNss;
 		prP2pBssInfo->ucWmmQueSet = rDbdcCap.ucWmmSetIndex;
 #endif /*CFG_SUPPORT_DBDC*/
@@ -1156,7 +1156,7 @@
 			"p2pRoleFsmRunEventDfsCac: Set channel at CH %u.\n",
 			prP2pConnReqInfo->rChannelInfo.ucChannelNum);
 
-		prP2pBssInfo->eDBDCBand = rDbdcCap.ucDbdcBandIndex;
+		prP2pBssInfo->eDBDCBand = ENUM_BAND_AUTO;
 		prP2pBssInfo->ucNss = rDbdcCap.ucNss;
 		prP2pBssInfo->ucWmmQueSet = rDbdcCap.ucWmmSetIndex;
 #endif /*CFG_SUPPORT_DBDC*/
@@ -1399,7 +1399,7 @@
 			   prChnlReqInfo->ucReqChnlNum,
 			   rDbdcCap.ucNss);
 
-			prP2pBssInfo->eDBDCBand = rDbdcCap.ucDbdcBandIndex;
+			prP2pBssInfo->eDBDCBand = ENUM_BAND_AUTO;
 			prP2pBssInfo->ucNss = rDbdcCap.ucNss;
 			prP2pBssInfo->ucWmmQueSet = rDbdcCap.ucWmmSetIndex;
 #endif
@@ -1897,7 +1897,7 @@
 						prChnlReqInfo->ucReqChnlNum,
 						rDbdcCap.ucNss);
 
-					prP2pBssInfo->eDBDCBand = rDbdcCap.ucDbdcBandIndex;
+					prP2pBssInfo->eDBDCBand = ENUM_BAND_AUTO;
 					prP2pBssInfo->ucNss = rDbdcCap.ucNss;
 					prP2pBssInfo->ucWmmQueSet = rDbdcCap.ucWmmSetIndex;
 #endif