Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 74779295 authored by Glen Lee's avatar Glen Lee Committed by Greg Kroah-Hartman
Browse files

staging: wilc1000: remove define CONNECT_DIRECT



The driver use CONNECT_DIRECT define as always. No need to provide as feature.
This patch removes ifdef/ifndef CONNECT_DIRECT line and it's related codes
inside ifndef CONNECT_DIRECT.

Signed-off-by: default avatarGlen Lee <glen.lee@atmel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 438b293e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ ccflags-y += -DSTA_FIRMWARE=\"atmel/wilc1000_fw.bin\" \
		-DP2P_CONCURRENCY_FIRMWARE=\"atmel/wilc1000_p2p_fw.bin\"

ccflags-y += -I$(src)/ -D__CHECK_ENDIAN__ -DWILC_ASIC_A0 \
		-DPLL_WORKAROUND -DCONNECT_DIRECT  -DAGING_ALG \
		-DPLL_WORKAROUND -DAGING_ALG \
		-Wno-unused-function -DWILC_DEBUGFS
#ccflags-y += -DTCP_ACK_FILTER

+0 −68
Original line number Diff line number Diff line
@@ -587,74 +587,6 @@ s32 DeallocateAssocRespInfo(tstrConnectRespInfo *pstrConnectRespInfo)
	return s32Error;
}

#ifndef CONNECT_DIRECT
s32 ParseSurveyResults(u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZE],
			       wid_site_survey_reslts_s **ppstrSurveyResults,
			       u32 *pu32SurveyResultsCount)
{
	s32 s32Error = 0;
	wid_site_survey_reslts_s *pstrSurveyResults = NULL;
	u32 u32SurveyResultsCount = 0;
	u32 u32SurveyBytesLength = 0;
	u8 *pu8BufferPtr;
	u32 u32RcvdSurveyResultsNum = 2;
	u8 u8ReadSurveyResFragNum;
	u32 i;
	u32 j;

	for (i = 0; i < u32RcvdSurveyResultsNum; i++) {
		u32SurveyBytesLength = ppu8RcvdSiteSurveyResults[i][0];


		for (j = 0; j < u32SurveyBytesLength; j += SURVEY_RESULT_LENGTH) {
			u32SurveyResultsCount++;
		}
	}

	pstrSurveyResults = kcalloc(u32SurveyResultsCount,
				    sizeof(wid_site_survey_reslts_s), GFP_KERNEL);
	if (!pstrSurveyResults)
		return -ENOMEM;

	u32SurveyResultsCount = 0;

	for (i = 0; i < u32RcvdSurveyResultsNum; i++) {
		pu8BufferPtr = ppu8RcvdSiteSurveyResults[i];

		u32SurveyBytesLength = pu8BufferPtr[0];

		/* TODO: mostafa: pu8BufferPtr[1] contains the fragment num */
		u8ReadSurveyResFragNum = pu8BufferPtr[1];

		pu8BufferPtr += 2;

		for (j = 0; j < u32SurveyBytesLength; j += SURVEY_RESULT_LENGTH) {
			memcpy(&pstrSurveyResults[u32SurveyResultsCount], pu8BufferPtr, SURVEY_RESULT_LENGTH);
			pu8BufferPtr += SURVEY_RESULT_LENGTH;
			u32SurveyResultsCount++;
		}
	}

ERRORHANDLER:
	*ppstrSurveyResults = pstrSurveyResults;
	*pu32SurveyResultsCount = u32SurveyResultsCount;

	return s32Error;
}


s32 DeallocateSurveyResults(wid_site_survey_reslts_s *pstrSurveyResults)
{
	s32 s32Error = 0;

	if (pstrSurveyResults != NULL) {
		kfree(pstrSurveyResults);
	}

	return s32Error;
}
#endif

/**
 *  @brief              sends certain Configuration Packet based on the input WIDs pstrWIDs
 *  using driver config layer
+0 −20
Original line number Diff line number Diff line
@@ -130,19 +130,6 @@ typedef struct {
	size_t ie_len;
} tstrDisconnectNotifInfo;

#ifndef CONNECT_DIRECT
typedef struct wid_site_survey_reslts {
	char SSID[MAX_SSID_LEN];
	u8 BssType;
	u8 Channel;
	u8 SecurityStatus;
	u8 BSSID[6];
	char RxPower;
	u8 Reserved;

} wid_site_survey_reslts_s;
#endif

s32 send_config_pkt(u8 u8Mode, tstrWID *pstrWIDs,
		    u32 u32WIDsCount, bool bRespRequired, u32 drvHandler);
s32 parse_network_info(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo);
@@ -152,13 +139,6 @@ s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen,
		       tstrConnectRespInfo **ppstrConnectRespInfo);
s32 DeallocateAssocRespInfo(tstrConnectRespInfo *pstrConnectRespInfo);

#ifndef CONNECT_DIRECT
s32 ParseSurveyResults(u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZE],
		       wid_site_survey_reslts_s **ppstrSurveyResults,
		       u32 *pu32SurveyResultsCount);
s32 DeallocateSurveyResults(wid_site_survey_reslts_s *pstrSurveyResults);
#endif

void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length);
void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length);
void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length);
+0 −233
Original line number Diff line number Diff line
@@ -459,13 +459,11 @@ struct host_if_msg {
	tstrWILC_WFIDrv *drvHandler;
};

#ifdef CONNECT_DIRECT
typedef struct _tstrWidJoinReqExt {
	char SSID[MAX_SSID_LEN];
	u8 u8channel;
	u8 BSSID[6];
} tstrWidJoinReqExt;
#endif

/*Struct containg joinParam of each AP*/
typedef struct _tstrJoinBssParam {
@@ -534,10 +532,6 @@ struct timer_list g_hPeriodicRSSI;

u8 gau8MulticastMacAddrList[WILC_MULTICAST_TABLE_SIZE][ETH_ALEN];

#ifndef CONNECT_DIRECT
static u8 gapu8RcvdSurveyResults[2][MAX_SURVEY_RESULT_FRAG_SIZE];
#endif

static u8 gapu8RcvdAssocResp[MAX_ASSOC_RESP_FRAME_SIZE];

bool gbScanWhileConnected = false;
@@ -1510,174 +1504,11 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler,
	tstrWID strWIDList[8];
	u32 u32WidsCount = 0, dummyval = 0;
	/* char passphrase[] = "12345678"; */
	#ifndef CONNECT_DIRECT
	s32 s32Err = 0;
	u32 i;
	u8 u8bssDscListIndex;
	wid_site_survey_reslts_s *pstrSurveyResults = NULL;
	#else
	u8 *pu8CurrByte = NULL;
	tstrJoinBssParam *ptstrJoinBssParam;
	#endif

	PRINT_D(GENERIC_DBG, "Handling connect request\n");

	#ifndef CONNECT_DIRECT
	memset(gapu8RcvdSurveyResults, 0, sizeof(gapu8RcvdSurveyResults));


	PRINT_D(HOSTINF_DBG, "Getting site survey results\n");
	s32Err = host_int_get_site_survey_results(pstrWFIDrv,
						  gapu8RcvdSurveyResults,
						  MAX_SURVEY_RESULT_FRAG_SIZE);
	if (s32Err) {
		PRINT_ER("Failed to get site survey results\n");
		s32Error = -EFAULT;
		goto ERRORHANDLER;
	}
	s32Err = ParseSurveyResults(gapu8RcvdSurveyResults, &pstrSurveyResults,
				    &pstrWFIDrv->u32SurveyResultsCount);


	if (s32Err == 0) {
		/* use the parsed info in pstrSurveyResults, then deallocate it */
		PRINT_D(HOSTINF_DBG, "Copying site survey results in global structure, then deallocate\n");
		for (i = 0; i < pstrWFIDrv->u32SurveyResultsCount; i++)	{
			memcpy(&pstrWFIDrv->astrSurveyResults[i], &pstrSurveyResults[i],
				    sizeof(wid_site_survey_reslts_s));
		}

		DeallocateSurveyResults(pstrSurveyResults);
	} else {
		PRINT_ER("ParseSurveyResults() Error\n");
		s32Error = -EFAULT;
		goto ERRORHANDLER;
	}


	for (i = 0; i < pstrWFIDrv->u32SurveyResultsCount; i++)	{
		if (memcmp(pstrWFIDrv->astrSurveyResults[i].SSID,
				pstrHostIFconnectAttr->pu8ssid,
				pstrHostIFconnectAttr->ssidLen) == 0) {
			PRINT_INFO(HOSTINF_DBG, "Network with required SSID is found %s\n", pstrHostIFconnectAttr->pu8ssid);
			if (pstrHostIFconnectAttr->pu8bssid == NULL) {
				/* BSSID is not passed from the user, so decision of matching
				 * is done by SSID only */
				PRINT_INFO(HOSTINF_DBG, "BSSID is not passed from the user\n");
				break;
			} else {
				/* BSSID is also passed from the user, so decision of matching
				 * should consider also this passed BSSID */

				if (memcmp(pstrWFIDrv->astrSurveyResults[i].BSSID,
						pstrHostIFconnectAttr->pu8bssid,
						6) == 0) {
					PRINT_INFO(HOSTINF_DBG, "BSSID is passed from the user and matched\n");
					break;
				}
			}
		}
	}

	if (i < pstrWFIDrv->u32SurveyResultsCount) {
		u8bssDscListIndex = i;

		PRINT_INFO(HOSTINF_DBG, "Connecting to network of Bss Idx%d and SSID %s and channel%d\n",
			   u8bssDscListIndex, pstrWFIDrv->astrSurveyResults[u8bssDscListIndex].SSID,
			   pstrWFIDrv->astrSurveyResults[u8bssDscListIndex].Channel);

		PRINT_INFO(HOSTINF_DBG, "Saving connection parameters in global structure\n");

		if (pstrHostIFconnectAttr->pu8bssid != NULL) {
			pstrWFIDrv->strWILC_UsrConnReq.pu8bssid = kmalloc(6, GFP_KERNEL);
			memcpy(pstrWFIDrv->strWILC_UsrConnReq.pu8bssid, pstrHostIFconnectAttr->pu8bssid, 6);
		}

		pstrWFIDrv->strWILC_UsrConnReq.ssidLen = pstrHostIFconnectAttr->ssidLen;
		if (pstrHostIFconnectAttr->pu8ssid != NULL) {
			pstrWFIDrv->strWILC_UsrConnReq.pu8ssid = kmalloc(pstrHostIFconnectAttr->ssidLen + 1, GFP_KERNEL);
			memcpy(pstrWFIDrv->strWILC_UsrConnReq.pu8ssid, pstrHostIFconnectAttr->pu8ssid,
				    pstrHostIFconnectAttr->ssidLen);
			pstrWFIDrv->strWILC_UsrConnReq.pu8ssid[pstrHostIFconnectAttr->ssidLen] = '\0';
		}

		pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen = pstrHostIFconnectAttr->IEsLen;
		if (pstrHostIFconnectAttr->pu8IEs != NULL) {
			pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs = kmalloc(pstrHostIFconnectAttr->IEsLen, GFP_KERNEL);
			memcpy(pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs, pstrHostIFconnectAttr->pu8IEs,
				    pstrHostIFconnectAttr->IEsLen);
		}

		pstrWFIDrv->strWILC_UsrConnReq.u8security = pstrHostIFconnectAttr->u8security;
		pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type = pstrHostIFconnectAttr->tenuAuth_type;
		pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult = pstrHostIFconnectAttr->pfConnectResult;
		pstrWFIDrv->strWILC_UsrConnReq.u32UserConnectPvoid = pstrHostIFconnectAttr->pvUserArg;


		/* if((gWFiDrvHandle->strWILC_UsrConnReq.pu8ConnReqIEs != NULL) && */
		/* (gWFiDrvHandle->strWILC_UsrConnReq.ConnReqIEsLen != 0)) */
		{
			/* IEs to be inserted in Association Request */
			strWIDList[u32WidsCount].u16WIDid = WID_INFO_ELEMENT_ASSOCIATE;
			strWIDList[u32WidsCount].enuWIDtype = WID_BIN_DATA;
			strWIDList[u32WidsCount].ps8WidVal = pstrWFIDrv->strWILC_UsrConnReq.pu8ConnReqIEs;
			strWIDList[u32WidsCount].s32ValueSize = pstrWFIDrv->strWILC_UsrConnReq.ConnReqIEsLen;
			u32WidsCount++;
		}
		strWIDList[u32WidsCount].u16WIDid = (u16)WID_11I_MODE;
		strWIDList[u32WidsCount].enuWIDtype = WID_CHAR;
		strWIDList[u32WidsCount].s32ValueSize = sizeof(char);
		strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&(pstrWFIDrv->strWILC_UsrConnReq.u8security));
		u32WidsCount++;

		PRINT_INFO(HOSTINF_DBG, "Encrypt Mode = %x\n", pstrWFIDrv->strWILC_UsrConnReq.u8security);

		strWIDList[u32WidsCount].u16WIDid = (u16)WID_AUTH_TYPE;
		strWIDList[u32WidsCount].enuWIDtype = WID_CHAR;
		strWIDList[u32WidsCount].s32ValueSize = sizeof(char);
		strWIDList[u32WidsCount].ps8WidVal = (s8 *)(&pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type);
		u32WidsCount++;

		PRINT_INFO(HOSTINF_DBG, "Authentication Type = %x\n", pstrWFIDrv->strWILC_UsrConnReq.tenuAuth_type);
		/*
		 * strWIDList[u32WidsCount].u16WIDid = (u16)WID_11I_PSK;
		 * strWIDList[u32WidsCount].enuWIDtype = WID_STR;
		 * strWIDList[u32WidsCount].s32ValueSize = sizeof(passphrase);
		 * strWIDList[u32WidsCount].ps8WidVal = (s8*)(passphrase);
		 * u32WidsCount++;
		 */

		strWIDList[u32WidsCount].u16WIDid = (u16)WID_JOIN_REQ;
		strWIDList[u32WidsCount].enuWIDtype = WID_CHAR;
		strWIDList[u32WidsCount].s32ValueSize = sizeof(char);
		strWIDList[u32WidsCount].ps8WidVal = (s8 *)&u8bssDscListIndex;
		u32WidsCount++;

		/* A temporary workaround to avoid handling the misleading MAC_DISCONNECTED raised from the
		 *   firmware at chip reset when processing the WIDs of the Connect Request.
		 *   (This workaround should be removed in the future when the Chip reset of the Connect WIDs is disabled) */
		/* ////////////////////// */
		gu32WidConnRstHack = 0;
		/* ////////////////////// */

		s32Error = send_config_pkt(SET_CFG, strWIDList, u32WidsCount, false,
					   get_id_from_handler(pstrWFIDrv));
		if (s32Error) {
			PRINT_ER("failed to send config packet\n");
			s32Error = -EINVAL;
			goto ERRORHANDLER;
		} else {
			pstrWFIDrv->enuHostIFstate = HOST_IF_WAITING_CONN_RESP;
		}

	} else {
		PRINT_ER("Required BSSID not found\n");
		s32Error = -ENOENT;
		goto ERRORHANDLER;
	}

	#else

	/* if we try to connect to an already connected AP then discard the request */

	if (memcmp(pstrHostIFconnectAttr->pu8bssid, u8ConnectedSSID, ETH_ALEN) == 0) {
@@ -1952,7 +1783,6 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler,
		PRINT_D(GENERIC_DBG, "set HOST_IF_WAITING_CONN_RESP\n");
		pstrWFIDrv->enuHostIFstate = HOST_IF_WAITING_CONN_RESP;
	}
	#endif

ERRORHANDLER:
	if (s32Error) {
@@ -5150,69 +4980,6 @@ s32 host_int_get_RSNAConfigPSKPassPhrase(tstrWILC_WFIDrv *hWFIDrv,
	return s32Error;
}

/**
 *  @brief                      host_int_get_site_survey_results
 *  @details            gets the site survey results
 *  @param[in,out] handle to the wifi driver,
 *                                Message containing  site survey results in the
 *                                following format
 *|---------------------------------------------------|
 | MsgLength | fragNo.	| MsgBodyLength	| MsgBody	|
 ||-----------|-----------|---------------|-----------|
 |	 1		|	  1		|		1		|	 1		|
 | -----------------------------------------	 |  ----------------
 |
 ||---------------------------------------|
 | Network1 | Netweork2 | ... | Network5 |
 ||---------------------------------------|
 |	44	   |	44	   | ... |	 44		|
 | -------------------------- | ---------------------------------------
 |
 ||---------------------------------------------------------------------|
 | SSID | BSS Type | Channel | Security Status| BSSID | RSSI |Reserved |
 |
 |
 ||------|----------|---------|----------------|-------|------|---------|
 |  33  |	 1	  |	  1		|		1		 |	  6	 |	 1	|	 1	  |
 ||---------------------------------------------------------------------|
 *  @return             Error code indicating success/failure
 *  @note
 *  @author		zsalah
 *  @date		8 March 2012
 *  @version		1.0
 */
#ifndef CONNECT_DIRECT
s32 host_int_get_site_survey_results(tstrWILC_WFIDrv *hWFIDrv,
					     u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZE],
					     u32 u32MaxSiteSrvyFragLen)
{
	s32 s32Error = 0;
	tstrWID astrWIDList[2];
	tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)hWFIDrv;

	astrWIDList[0].u16WIDid = (u16)WID_SITE_SURVEY_RESULTS;
	astrWIDList[0].enuWIDtype = WID_STR;
	astrWIDList[0].ps8WidVal = ppu8RcvdSiteSurveyResults[0];
	astrWIDList[0].s32ValueSize = u32MaxSiteSrvyFragLen;

	astrWIDList[1].u16WIDid = (u16)WID_SITE_SURVEY_RESULTS;
	astrWIDList[1].enuWIDtype = WID_STR;
	astrWIDList[1].ps8WidVal = ppu8RcvdSiteSurveyResults[1];
	astrWIDList[1].s32ValueSize = u32MaxSiteSrvyFragLen;

	s32Error = send_config_pkt(GET_CFG, astrWIDList, 2, true,
				   get_id_from_handler(pstrWFIDrv));

	/*get the value by searching the local copy*/
	if (s32Error) {
		PRINT_ER("Failed to send config packet to get survey results\n");
		s32Error = -EINVAL;
	}

	return s32Error;
}
#endif

/**
 *  @brief              sets a start scan request
 *  @details
+0 −40
Original line number Diff line number Diff line
@@ -322,11 +322,6 @@ typedef struct {

	tenuHostIFstate enuHostIFstate;

	#ifndef CONNECT_DIRECT
	u32 u32SurveyResultsCount;
	wid_site_survey_reslts_s astrSurveyResults[MAX_NUM_SCANNED_NETWORKS];
	#endif

	u8 au8AssociatedBSSID[ETH_ALEN];
	tstrCfgParamVal strCfgValues;
/* semaphores */
@@ -658,41 +653,6 @@ s32 host_int_set_MacAddress(tstrWILC_WFIDrv *hWFIDrv, u8 *pu8MacAddress);
 */
s32 host_int_wait_msg_queue_idle(void);

/**
 *  @brief              gets the site survey results
 *  @details
 *  @param[in,out] handle to the wifi driver,
 *                                Message containing  site survey results in the
 *                                following formate
 *|---------------------------------------------------|
 | MsgLength | fragNo.	| MsgBodyLength	| MsgBody	|
 ||-----------|-----------|---------------|-----------|
 |	 1		|	  1		|		1		|	 1		|
 | -----------------------------------------	 |  ----------------
 |
 ||---------------------------------------|
 | Network1 | Netweork2 | ... | Network5 |
 ||---------------------------------------|
 |	44	   |	44	   | ... |	 44		|
 | -------------------------- | ---------------------------------------
 |
 ||---------------------------------------------------------------------|
 | SSID | BSS Type | Channel | Security Status| BSSID | RSSI |Reserved |
 ||------|----------|---------|----------------|-------|------|---------|
 |  33  |	 1	  |	  1		|		1		 |	  6	 |	 1	|	 1	  |
 ||---------------------------------------------------------------------|
 *  @return             Error code indicating success/failure
 *  @note
 *  @author		zsalah
 *  @date		8 March 2012
 *  @version		1.0
 */
#ifndef CONNECT_DIRECT
s32 host_int_get_site_survey_results(tstrWILC_WFIDrv *hWFIDrv,
					     u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZE],
					     u32 u32MaxSiteSrvyFragLen);
#endif

/**
 *  @brief              sets a start scan request
 *  @details