Re: [PATCH] staging: wilc1000: remove timer related OS wrapper functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jun 11, 2015 at 12:35:48PM +0000, Gujulan Elango, Hari Prasath (H.) wrote:
> From: Hari Prasath Gujulan Elango <hgujulan@xxxxxxxxxxx>
> 
> This patch removes the timer related wrapper functions
> WILC_TimerCreate(),WILC_TimerStart(),WILC_TimerStop() and
> WILC_TimerDestroy() and uses kernel API's directly.In the process,the
> unused variables,files are also deleted.
> 
> Signed-off-by: Hari Prasath Gujulan Elango <hgujulan@xxxxxxxxxxx>
> ---
>  drivers/staging/wilc1000/host_interface.c         | 102 ++++++------------
>  drivers/staging/wilc1000/host_interface.h         |   6 +-
>  drivers/staging/wilc1000/linux_wlan.c             |   4 +-
>  drivers/staging/wilc1000/wilc_oswrapper.h         |   3 -
>  drivers/staging/wilc1000/wilc_platform.h          |   2 -
>  drivers/staging/wilc1000/wilc_timer.c             |  45 --------
>  drivers/staging/wilc1000/wilc_timer.h             | 126 ----------------------
>  drivers/staging/wilc1000/wilc_wfi_cfgoperations.c |  29 +++--
>  8 files changed, 54 insertions(+), 263 deletions(-)
>  delete mode 100644 drivers/staging/wilc1000/wilc_timer.c
>  delete mode 100644 drivers/staging/wilc1000/wilc_timer.h
> 
> diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c
> index 1ecb373..93e86d4 100644
> --- a/drivers/staging/wilc1000/host_interface.c
> +++ b/drivers/staging/wilc1000/host_interface.c
> @@ -8,7 +8,7 @@ extern WILC_Sint32 TransportDeInit(void);
>  extern u8 connecting;
>  
>  #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP
> -extern WILC_TimerHandle hDuringIpTimer;
> +extern struct timer_list hDuringIpTimer;
>  #endif
>  
>  extern WILC_Bool bEnablePS;
> @@ -550,7 +550,7 @@ static struct semaphore hSemHostIFthrdEnd;
>  struct semaphore hSemDeinitDrvHandle;
>  static struct semaphore hWaitResponse;
>  struct semaphore hSemHostIntDeinit;
> -WILC_TimerHandle g_hPeriodicRSSI;
> +struct timer_list g_hPeriodicRSSI;
>  
>  
>  
> @@ -1383,7 +1383,7 @@ static WILC_Sint32 Handle_Scan(void *drvHandler, tstrHostIFscanAttr *pstrHostIFs
>  
>  	WILC_CATCH(s32Error)
>  	{
> -		WILC_TimerStop(&(pstrWFIDrv->hScanTimer), NULL);
> +		del_timer(&(pstrWFIDrv->hScanTimer));
>  		/*if there is an ongoing scan request*/
>  		Handle_ScanDone(drvHandler, SCAN_EVENT_ABORTED);
>  	}
> @@ -2004,7 +2004,7 @@ static WILC_Sint32 Handle_Connect(void *drvHandler, tstrHostIFconnectAttr *pstrH
>  	{
>  		tstrConnectInfo strConnectInfo;
>  
> -		WILC_TimerStop(&(pstrWFIDrv->hConnectTimer), NULL);
> +		del_timer(&(pstrWFIDrv->hConnectTimer));
>  
>  		PRINT_D(HOSTINF_DBG, "could not start connecting to the required network\n");
>  
> @@ -2518,7 +2518,7 @@ static WILC_Sint32 Handle_RcvdGnrlAsyncInfo(void *drvHandler, tstrRcvdGnrlAsyncI
>  			}
>  
>  
> -			WILC_TimerStop(&(pstrWFIDrv->hConnectTimer), NULL);
> +			del_timer(&(pstrWFIDrv->hConnectTimer));
>  			pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult(CONN_DISCONN_EVENT_CONN_RESP,
>  									   &strConnectInfo,
>  									   u8MacStatus,
> @@ -2542,7 +2542,7 @@ static WILC_Sint32 Handle_RcvdGnrlAsyncInfo(void *drvHandler, tstrRcvdGnrlAsyncI
>  				#ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP
>  				PRINT_D(GENERIC_DBG, "Obtaining an IP, Disable Scan\n");
>  				g_obtainingIP = WILC_TRUE;
> -				WILC_TimerStart(&hDuringIpTimer, 10000, NULL, NULL);
> +				mod_timer(&hDuringIpTimer, (jiffies + msecs_to_jiffies(10000)));
>  				#endif
>  
>  				#ifdef WILC_PARSE_SCAN_IN_HOST
> @@ -2597,7 +2597,7 @@ static WILC_Sint32 Handle_RcvdGnrlAsyncInfo(void *drvHandler, tstrRcvdGnrlAsyncI
>  
>  			if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult) {
>  				PRINT_D(HOSTINF_DBG, "\n\n<< Abort the running OBSS Scan >> \n\n");
> -				WILC_TimerStop(&(pstrWFIDrv->hScanTimer), NULL);
> +				del_timer(&(pstrWFIDrv->hScanTimer));
>  				Handle_ScanDone((void *)pstrWFIDrv, SCAN_EVENT_ABORTED);
>  			}
>  
> @@ -2674,7 +2674,7 @@ static WILC_Sint32 Handle_RcvdGnrlAsyncInfo(void *drvHandler, tstrRcvdGnrlAsyncI
>  			PRINT_D(HOSTINF_DBG, "Received MAC_DISCONNECTED from the FW while scanning\n");
>  			PRINT_D(HOSTINF_DBG, "\n\n<< Abort the running Scan >> \n\n");
>  			/*Abort the running scan*/
> -			WILC_TimerStop(&(pstrWFIDrv->hScanTimer), NULL);
> +			del_timer(&(pstrWFIDrv->hScanTimer));
>  			if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult) {
>  				Handle_ScanDone((void *)pstrWFIDrv, SCAN_EVENT_ABORTED);
>  
> @@ -3110,7 +3110,7 @@ static void Handle_Disconnect(void *drvHandler)
>  		strDisconnectNotifInfo.ie_len = 0;
>  
>  		if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult) {
> -			WILC_TimerStop(&(pstrWFIDrv->hScanTimer), NULL);
> +			del_timer(&(pstrWFIDrv->hScanTimer));
>  			pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult(SCAN_EVENT_ABORTED, NULL,
>  									pstrWFIDrv->strWILC_UsrScanReq.u32UserScanPvoid, NULL);
>  
> @@ -3123,7 +3123,7 @@ static void Handle_Disconnect(void *drvHandler)
>  			/*Stop connect timer, if connection in progress*/
>  			if (pstrWFIDrv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) {
>  				PRINT_D(HOSTINF_DBG, "Upper layer requested termination of connection\n");
> -				WILC_TimerStop(&(pstrWFIDrv->hConnectTimer), NULL);
> +				del_timer(&(pstrWFIDrv->hConnectTimer));
>  			}
>  
>  			pstrWFIDrv->strWILC_UsrConnReq.pfUserConnectResult(CONN_DISCONN_EVENT_DISCONN_NOTIF, NULL,
> @@ -3895,7 +3895,8 @@ static int Handle_RemainOnChan(void *drvHandler, tstrHostIfRemainOnChan *pstrHos
>  	WILC_CATCH(-1)
>  	{
>  		P2P_LISTEN_STATE = 1;
> -		WILC_TimerStart(&(pstrWFIDrv->hRemainOnChannel), pstrHostIfRemainOnChan->u32duration, (void *)pstrWFIDrv, NULL);
> +		pstrWFIDrv->hRemainOnChannel.data = (unsigned long)pstrWFIDrv;
> +		mod_timer(&(pstrWFIDrv->hRemainOnChannel), (jiffies + msecs_to_jiffies(pstrHostIfRemainOnChan->u32duration)));
>  
>  		/*Calling CFG ready_on_channel*/
>  		if (pstrWFIDrv->strHostIfRemainOnChan.pRemainOnChanReady) {
> @@ -4033,7 +4034,7 @@ static void ListenTimerCB(void *pvArg)
>  	tstrHostIFmsg strHostIFmsg;
>  	tstrWILC_WFIDrv *pstrWFIDrv = (tstrWILC_WFIDrv *)pvArg;
>  	/*Stopping remain-on-channel timer*/
> -	WILC_TimerStop(&(pstrWFIDrv->hRemainOnChannel), NULL);
> +	del_timer(&(pstrWFIDrv->hRemainOnChannel));
>  
>  	/* prepare the Timer Callback message */
>  	WILC_memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg));
> @@ -4446,7 +4447,7 @@ static int hostIFthread(void *pvArg)
>  			break;
>  
>  		case HOST_IF_MSG_RCVD_SCAN_COMPLETE:
> -			WILC_TimerStop(&(pstrWFIDrv->hScanTimer), NULL);
> +			del_timer(&(pstrWFIDrv->hScanTimer));
>  			PRINT_D(HOSTINF_DBG, "scan completed successfully\n");
>  
>  			/*BugID_5213*/
> @@ -5610,7 +5611,8 @@ WILC_Sint32 host_int_set_join_req(WILC_WFIDrvHandle hWFIDrv, u8 *pu8bssid,
>  	}
>  
>  	enuScanConnTimer = CONNECT_TIMER;
> -	WILC_TimerStart(&(pstrWFIDrv->hConnectTimer), HOST_IF_CONNECT_TIMEOUT, (void *) hWFIDrv, NULL);
> +	pstrWFIDrv->hConnectTimer.data = (unsigned long)hWFIDrv;
> +	mod_timer(&(pstrWFIDrv->hConnectTimer), (jiffies + msecs_to_jiffies(HOST_IF_CONNECT_TIMEOUT)));
>  
>  	WILC_CATCH(s32Error)
>  	{
> @@ -6350,7 +6352,8 @@ WILC_Sint32 host_int_scan(WILC_WFIDrvHandle hWFIDrv, u8 u8ScanSource,
>  
>  	enuScanConnTimer = SCAN_TIMER;
>  	PRINT_D(HOSTINF_DBG, ">> Starting the SCAN timer\n");
> -	WILC_TimerStart(&(pstrWFIDrv->hScanTimer), HOST_IF_SCAN_TIMEOUT, (void *) hWFIDrv, NULL);
> +	pstrWFIDrv->hScanTimer.data = (unsigned long)hWFIDrv;
> +	mod_timer(&(pstrWFIDrv->hScanTimer), (jiffies + msecs_to_jiffies(HOST_IF_SCAN_TIMEOUT)));
>  
>  
>  	WILC_CATCH(s32Error)
> @@ -6573,7 +6576,8 @@ void GetPeriodicRSSI(void *pvArg)
>  			return;
>  		}
>  	}
> -	WILC_TimerStart(&(g_hPeriodicRSSI), 5000, (void *)pstrWFIDrv, NULL);
> +	g_hPeriodicRSSI.data = (unsigned long)pstrWFIDrv;
> +	mod_timer(&(g_hPeriodicRSSI), (jiffies + msecs_to_jiffies(5000)));
>  }
>  
>  
> @@ -6669,36 +6673,19 @@ WILC_Sint32 host_int_init(WILC_WFIDrvHandle *phWFIDrv)
>  			s32Error = WILC_FAIL;
>  			goto _fail_mq_;
>  		}
> -		s32Error = WILC_TimerCreate(&(g_hPeriodicRSSI), GetPeriodicRSSI, NULL);
> -		if (s32Error < 0) {
> -			PRINT_ER("Failed to creat Timer\n");
> -			goto _fail_timer_1;
> -		}
> -		WILC_TimerStart(&(g_hPeriodicRSSI), 5000, (void *)pstrWFIDrv, NULL);
> +		setup_timer(&g_hPeriodicRSSI, (void(*)(unsigned long))GetPeriodicRSSI, 0);
> +		g_hPeriodicRSSI.data = (unsigned long)pstrWFIDrv;
> +		mod_timer(&(g_hPeriodicRSSI), (jiffies + msecs_to_jiffies(5000)));
>  
>  	}
>  
>  
> -	s32Error = WILC_TimerCreate(&(pstrWFIDrv->hScanTimer), TimerCB_Scan, NULL);
> -	if (s32Error < 0) {
> -		PRINT_ER("Failed to creat Timer\n");
> -		goto _fail_thread_;
> -	}
> -
> -	s32Error = WILC_TimerCreate(&(pstrWFIDrv->hConnectTimer), TimerCB_Connect, NULL);
> -	if (s32Error < 0) {
> -		PRINT_ER("Failed to creat Timer\n");
> -		goto _fail_timer_1;
> -	}
> -
> +	setup_timer(&pstrWFIDrv->hScanTimer, (void(*)(unsigned long))TimerCB_Scan, 0);
> +	setup_timer(&pstrWFIDrv->hConnectTimer, (void(*)(unsigned long))TimerCB_Connect, 0);
>  
>  	#ifdef WILC_P2P
>  	/*Remain on channel timer*/
> -	s32Error = WILC_TimerCreate(&(pstrWFIDrv->hRemainOnChannel), ListenTimerCB, NULL);
> -	if (s32Error < 0) {
> -		PRINT_ER("Failed to creat Remain-on-channel Timer\n");
> -		goto _fail_timer_3;
> -	}
> +	setup_timer(&pstrWFIDrv->hRemainOnChannel, (void(*)(unsigned long))ListenTimerCB, 0);
>  	#endif
>  
>  	sema_init(&(pstrWFIDrv->gtOsCfgValuesSem), 1);
> @@ -6760,15 +6747,12 @@ _fail_mem_:
>  	if (pstrWFIDrv != NULL)
>  		WILC_FREE(pstrWFIDrv);
>  #ifdef WILC_P2P
> -_fail_timer_3:
> -	WILC_TimerDestroy(&(pstrWFIDrv->hRemainOnChannel), NULL);
> +	del_timer_sync(&(pstrWFIDrv->hRemainOnChannel));
>  #endif
>  _fail_timer_2:
>  	up(&(pstrWFIDrv->gtOsCfgValuesSem));
> -	WILC_TimerDestroy(&(pstrWFIDrv->hConnectTimer), NULL);
> -_fail_timer_1:
> -	WILC_TimerDestroy(&(pstrWFIDrv->hScanTimer), NULL);
> -_fail_thread_:
> +	del_timer_sync(&(pstrWFIDrv->hConnectTimer));
> +	del_timer_sync(&(pstrWFIDrv->hScanTimer));
>  	kthread_stop(HostIFthreadHandler);
>  _fail_mq_:
>  	WILC_MsgQueueDestroy(&gMsgQHostIF, NULL);
> @@ -6816,25 +6800,12 @@ WILC_Sint32 host_int_deinit(WILC_WFIDrvHandle hWFIDrv)
>  	/*BugID_5348*/
>  	/*Destroy all timers before acquiring hSemDeinitDrvHandle*/
>  	/*to guarantee handling all messages befor proceeding*/
> -	if (WILC_TimerDestroy(&(pstrWFIDrv->hScanTimer), NULL)) {
> -		PRINT_D(HOSTINF_DBG, ">> Scan timer is active \n");
> -		/* msleep(HOST_IF_SCAN_TIMEOUT+1000); */
> -	}
> -
> -	if (WILC_TimerDestroy(&(pstrWFIDrv->hConnectTimer), NULL)) {
> -		PRINT_D(HOSTINF_DBG, ">> Connect timer is active \n");
> -		/* msleep(HOST_IF_CONNECT_TIMEOUT+1000); */
> -	}
> -
> -
> -	if (WILC_TimerDestroy(&(g_hPeriodicRSSI), NULL)) {
> -		PRINT_D(HOSTINF_DBG, ">> Connect timer is active \n");
> -		/* msleep(HOST_IF_CONNECT_TIMEOUT+1000); */
> -	}
> -
> +	del_timer_sync(&(pstrWFIDrv->hScanTimer));
> +	del_timer_sync(&(pstrWFIDrv->hConnectTimer));
> +	del_timer_sync(&(g_hPeriodicRSSI));
>  	#ifdef WILC_P2P
>  	/*Destroy Remain-onchannel Timer*/
> -	WILC_TimerDestroy(&(pstrWFIDrv->hRemainOnChannel), NULL);
> +	del_timer_sync(&(pstrWFIDrv->hRemainOnChannel));
>  	#endif
>  
>  	host_int_set_wfi_drv_handler((WILC_Uint32)NULL);
> @@ -6864,10 +6835,7 @@ WILC_Sint32 host_int_deinit(WILC_WFIDrvHandle hWFIDrv)
>  	WILC_memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg));
>  
>  	if (clients_count == 1)	{
> -		if (WILC_TimerDestroy(&g_hPeriodicRSSI, NULL)) {
> -			PRINT_D(HOSTINF_DBG, ">> Connect timer is active \n");
> -			/* msleep(HOST_IF_CONNECT_TIMEOUT+1000); */
> -		}
> +		del_timer_sync(&g_hPeriodicRSSI);
>  		strHostIFmsg.u16MsgId = HOST_IF_MSG_EXIT;
>  		strHostIFmsg.drvHandler = hWFIDrv;
>  
> @@ -7147,7 +7115,7 @@ WILC_Sint32 host_int_ListenStateExpired(WILC_WFIDrvHandle hWFIDrv, WILC_Uint32 u
>  	}
>  
>  	/*Stopping remain-on-channel timer*/
> -	WILC_TimerStop(&(pstrWFIDrv->hRemainOnChannel), NULL);
> +	del_timer(&(pstrWFIDrv->hRemainOnChannel));
>  
>  	/* prepare the timer fire Message */
>  	WILC_memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg));
> diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h
> index d03a575..8b2af10 100644
> --- a/drivers/staging/wilc1000/host_interface.h
> +++ b/drivers/staging/wilc1000/host_interface.h
> @@ -431,10 +431,10 @@ typedef struct {
>  	struct semaphore hSemGetCHNL;
>  	struct semaphore hSemInactiveTime;
>  /* timer handlers */
> -	WILC_TimerHandle hScanTimer;
> -	WILC_TimerHandle hConnectTimer;
> +	struct timer_list hScanTimer;
> +	struct timer_list hConnectTimer;
>  	#ifdef WILC_P2P
> -	WILC_TimerHandle hRemainOnChannel;
> +	struct timer_list hRemainOnChannel;
>  	#endif
>  
>  	WILC_Bool IFC_UP;
> diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
> index fa768f8..e82bacb 100644
> --- a/drivers/staging/wilc1000/linux_wlan.c
> +++ b/drivers/staging/wilc1000/linux_wlan.c
> @@ -72,7 +72,7 @@ extern void resolve_disconnect_aberration(void *drvHandler);
>  extern u8 gau8MulticastMacAddrList[WILC_MULTICAST_TABLE_SIZE][ETH_ALEN];
>  void wilc1000_wlan_deinit(linux_wlan_t *nic);
>  #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP
> -extern WILC_TimerHandle hDuringIpTimer;
> +extern struct timer_list hDuringIpTimer;
>  #endif
>  
>  static int linux_wlan_device_power(int on_off)
> @@ -303,7 +303,7 @@ static int dev_state_ev_handler(struct notifier_block *this, unsigned long event
>  		if (nic->iftype == STATION_MODE || nic->iftype == CLIENT_MODE) {
>  			pstrWFIDrv->IFC_UP = 1;
>  			g_obtainingIP = WILC_FALSE;
> -			WILC_TimerStop(&hDuringIpTimer, NULL);
> +			del_timer(&hDuringIpTimer);
>  			PRINT_D(GENERIC_DBG, "IP obtained , enable scan\n");
>  		}
>  
> diff --git a/drivers/staging/wilc1000/wilc_oswrapper.h b/drivers/staging/wilc1000/wilc_oswrapper.h
> index 4b4cfa2..d7c182e 100644
> --- a/drivers/staging/wilc1000/wilc_oswrapper.h
> +++ b/drivers/staging/wilc1000/wilc_oswrapper.h
> @@ -44,9 +44,6 @@ typedef char WILC_Char;
>  /* Sleep support */
>  #include "wilc_sleep.h"
>  
> -/* Timer support */
> -#include "wilc_timer.h"
> -
>  /* Memory support */
>  #include "wilc_memory.h"
>  
> diff --git a/drivers/staging/wilc1000/wilc_platform.h b/drivers/staging/wilc1000/wilc_platform.h
> index ae42bbc..4dcc2de 100644
> --- a/drivers/staging/wilc1000/wilc_platform.h
> +++ b/drivers/staging/wilc1000/wilc_platform.h
> @@ -16,8 +16,6 @@
>   *      OS specific types
>   *******************************************************************/
>  
> -typedef struct timer_list WILC_TimerHandle;
> -
>  
>  
>  /* Message Queue type is a structure */
> diff --git a/drivers/staging/wilc1000/wilc_timer.c b/drivers/staging/wilc1000/wilc_timer.c
> deleted file mode 100644
> index 7d2e6f1..0000000
> --- a/drivers/staging/wilc1000/wilc_timer.c
> +++ /dev/null
> @@ -1,45 +0,0 @@
> -
> -#include "wilc_oswrapper.h"
> -
> -WILC_ErrNo WILC_TimerCreate(WILC_TimerHandle *pHandle,
> -	tpfWILC_TimerFunction pfCallback, tstrWILC_TimerAttrs *pstrAttrs)
> -{
> -	WILC_ErrNo s32RetStatus = WILC_SUCCESS;
> -	setup_timer(pHandle, (void(*)(unsigned long))pfCallback, 0);
> -
> -	return s32RetStatus;
> -}
> -
> -WILC_ErrNo WILC_TimerDestroy(WILC_TimerHandle *pHandle,
> -	tstrWILC_TimerAttrs *pstrAttrs)
> -{
> -	WILC_ErrNo s32RetStatus = WILC_FAIL;
> -	if (pHandle != NULL) {
> -		s32RetStatus = del_timer_sync(pHandle);
> -		pHandle = NULL;
> -	}
> -
> -	return s32RetStatus;
> -}
> -
> -
> -WILC_ErrNo WILC_TimerStart(WILC_TimerHandle *pHandle, WILC_Uint32 u32Timeout,
> -	void *pvArg, tstrWILC_TimerAttrs *pstrAttrs)
> -{
> -	WILC_ErrNo s32RetStatus = WILC_FAIL;
> -	if (pHandle != NULL) {
> -		pHandle->data = (unsigned long)pvArg;
> -		s32RetStatus = mod_timer(pHandle, (jiffies + msecs_to_jiffies(u32Timeout)));
> -	}
> -	return s32RetStatus;
> -}
> -
> -WILC_ErrNo WILC_TimerStop(WILC_TimerHandle *pHandle,
> -	tstrWILC_TimerAttrs *pstrAttrs)
> -{
> -	WILC_ErrNo s32RetStatus = WILC_FAIL;
> -	if (pHandle != NULL)
> -		s32RetStatus = del_timer(pHandle);
> -
> -	return s32RetStatus;
> -}
> diff --git a/drivers/staging/wilc1000/wilc_timer.h b/drivers/staging/wilc1000/wilc_timer.h
> deleted file mode 100644
> index 72b2715..0000000
> --- a/drivers/staging/wilc1000/wilc_timer.h
> +++ /dev/null
> @@ -1,126 +0,0 @@
> -#ifndef __WILC_TIMER_H__
> -#define __WILC_TIMER_H__
> -
> -/*!
> - *  @file	wilc_timer.h
> - *  @brief	Timer (One Shot and Periodic) OS wrapper functionality
> - *  @author	syounan
> - *  @sa		wilc_oswrapper.h top level OS wrapper file
> - *  @date	16 Aug 2010
> - *  @version	1.0
> - */
> -
> -typedef void (*tpfWILC_TimerFunction)(void *);
> -
> -/*!
> - *  @struct             tstrWILC_TimerAttrs
> - *  @brief		Timer API options
> - *  @author		syounan
> - *  @date		16 Aug 2010
> - *  @version		1.0
> - */
> -typedef struct {
> -	/* a dummy member to avoid compiler errors*/
> -	u8 dummy;
> -} tstrWILC_TimerAttrs;
> -
> -/*!
> - *  @brief	Creates a new timer
> - *  @details	Timers are a useful utility to execute some callback function
> - *              in the future.
> - *              A timer object has 3 states : IDLE, PENDING and EXECUTING
> - *              IDLE : initial timer state after creation, no execution for the
> - *              callback function is planned
> - *              PENDING : a request to execute the callback function is made
> - *              using WILC_TimerStart.
> - *              EXECUTING : the timer has expired and its callback is now
> - *              executing, when execution is done the timer returns to PENDING
> - *              if the feature CONFIG_WILC_TIMER_PERIODIC is enabled and
> - *              the flag tstrWILC_TimerAttrs.bPeriodicTimer is set. otherwise the
> - *              timer will return to IDLE
> - *  @param[out]	pHandle handle to the newly created timer object
> - *  @param[in]	pfEntry pointer to the callback function to be called when the
> - *              timer expires
> - *              the underlaying OS may put many restrictions on what can be
> - *              called inside a timer's callback, as a general rule no blocking
> - *              operations (IO or semaphore Acquision) should be perfomred
> - *              It is recommended that the callback will be as short as possible
> - *              and only flags other threads to do the actual work
> - *              also it should be noted that the underlaying OS maynot give any
> - *              guarentees on which contect this callback will execute in
> - *  @param[in]	pstrAttrs Optional attributes, NULL for default
> - *  @return	Error code indicating sucess/failure
> - *  @sa		WILC_TimerAttrs
> - *  @author	syounan
> - *  @date	16 Aug 2010
> - *  @version	1.0
> - */
> -WILC_ErrNo WILC_TimerCreate(WILC_TimerHandle *pHandle,
> -			    tpfWILC_TimerFunction pfCallback, tstrWILC_TimerAttrs *pstrAttrs);
> -
> -
> -/*!
> - *  @brief	Destroys a given timer
> - *  @details	This will destroy a given timer freeing any resources used by it
> - *              if the timer was PENDING Then must be cancelled as well(i.e.
> - *              goes to	IDLE, same effect as calling WILC_TimerCancel first)
> - *              if the timer was EXECUTING then the callback will be allowed to
> - *              finish first then all resources are freed
> - *  @param[in]	pHandle handle to the timer object
> - *  @param[in]	pstrAttrs Optional attributes, NULL for default
> - *  @return	Error code indicating sucess/failure
> - *  @sa		WILC_TimerAttrs
> - *  @author	syounan
> - *  @date	16 Aug 2010
> - *  @version	1.0
> - */
> -WILC_ErrNo WILC_TimerDestroy(WILC_TimerHandle *pHandle,
> -			     tstrWILC_TimerAttrs *pstrAttrs);
> -
> -/*!
> - *  @brief	Starts a given timer
> - *  @details	This function will move the timer to the PENDING state until the
> - *              given time expires (in msec) then the callback function will be
> - *              executed (timer in EXECUTING state) after execution is dene the
> - *              timer either goes to IDLE (if bPeriodicTimer==WILC_FALSE) or
> - *              PENDING with same timeout value (if bPeriodicTimer==WILC_TRUE)
> - *  @param[in]	pHandle handle to the timer object
> - *  @param[in]	u32Timeout timeout value in msec after witch the callback
> - *              function will be executed. Timeout value of 0 is not allowed for
> - *              periodic timers
> - *  @param[in]	pstrAttrs Optional attributes, NULL for default,
> - *              set bPeriodicTimer to run this timer as a periodic timer
> - *  @return	Error code indicating sucess/failure
> - *  @sa		WILC_TimerAttrs
> - *  @author	syounan
> - *  @date	16 Aug 2010
> - *  @version	1.0
> - */
> -WILC_ErrNo WILC_TimerStart(WILC_TimerHandle *pHandle, WILC_Uint32 u32Timeout, void *pvArg,
> -			   tstrWILC_TimerAttrs *pstrAttrs);
> -
> -
> -/*!
> - *  @brief	Stops a given timer
> - *  @details	This function will move the timer to the IDLE state cancelling
> - *              any sheduled callback execution.
> - *              if this function is called on a timer already in the IDLE state
> - *              it will have no effect.
> - *              if this function is called on a timer in EXECUTING state
> - *              (callback has already started) it will wait until executing is
> - *              done then move the timer to the IDLE state (which is trivial
> - *              work if the timer is non periodic)
> - *  @param[in]	pHandle handle to the timer object
> - *  @param[in]	pstrAttrs Optional attributes, NULL for default,
> - *  @return	Error code indicating sucess/failure
> - *  @sa		WILC_TimerAttrs
> - *  @author	syounan
> - *  @date	16 Aug 2010
> - *  @version	1.0
> - */
> -WILC_ErrNo WILC_TimerStop(WILC_TimerHandle *pHandle,
> -			  tstrWILC_TimerAttrs *pstrAttrs);
> -
> -
> -
> -#endif
> diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
> index 5844eba..57955e2 100644
> --- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
> +++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
> @@ -33,9 +33,9 @@ extern int mac_close(struct net_device *ndev);
>  tstrNetworkInfo astrLastScannedNtwrksShadow[MAX_NUM_SCANNED_NETWORKS_SHADOW];
>  WILC_Uint32 u32LastScannedNtwrksCountShadow;
>  #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP
> -WILC_TimerHandle hDuringIpTimer;
> +struct timer_list hDuringIpTimer;
>  #endif
> -WILC_TimerHandle hAgingTimer;
> +struct timer_list hAgingTimer;
>  static u8 op_ifcs;
>  extern u8 u8ConnectedSSID[6];
>  
> @@ -148,7 +148,7 @@ void clear_shadow_scan(void *pUserVoid)
>  	int i;
>  	priv = (struct WILC_WFI_priv *)pUserVoid;
>  	if (op_ifcs == 0) {
> -		WILC_TimerDestroy(&hAgingTimer, NULL);
> +		del_timer_sync(&hAgingTimer);
>  		PRINT_INFO(CORECONFIG_DBG, "destroy aging timer\n");
>  
>  		for (i = 0; i < u32LastScannedNtwrksCountShadow; i++) {
> @@ -265,8 +265,10 @@ void remove_network_from_shadow(void *pUserVoid)
>  	}
>  
>  	PRINT_D(CFG80211_DBG, "Number of cached networks: %d\n", u32LastScannedNtwrksCountShadow);
> -	if (u32LastScannedNtwrksCountShadow != 0)
> -		WILC_TimerStart(&(hAgingTimer), AGING_TIME, pUserVoid, NULL);
> +	if (u32LastScannedNtwrksCountShadow != 0) {
> +		hAgingTimer.data = (unsigned long)pUserVoid;
> +		mod_timer(&hAgingTimer, (jiffies + msecs_to_jiffies(AGING_TIME)));
> +	}
>  	else
>  		PRINT_D(CFG80211_DBG, "No need to restart Aging timer\n");
>  }
> @@ -288,7 +290,8 @@ int8_t is_network_in_shadow(tstrNetworkInfo *pstrNetworkInfo, void *pUserVoid)
>  	priv = (struct WILC_WFI_priv *)pUserVoid;
>  	if (u32LastScannedNtwrksCountShadow == 0) {
>  		PRINT_D(CFG80211_DBG, "Starting Aging timer\n");
> -		WILC_TimerStart(&(hAgingTimer), AGING_TIME, pUserVoid, NULL);
> +		hAgingTimer.data = (unsigned long)pUserVoid;
> +		mod_timer(&hAgingTimer, (jiffies + msecs_to_jiffies(AGING_TIME)));
>  		state = -1;
>  	} else {
>  		/* Linear search for now */
> @@ -2862,7 +2865,7 @@ static int WILC_WFI_change_virt_intf(struct wiphy *wiphy, struct net_device *dev
>  
>  	#ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP
>  	g_obtainingIP = WILC_FALSE;
> -	WILC_TimerStop(&hDuringIpTimer, NULL);
> +	del_timer(&hDuringIpTimer);
>  	PRINT_D(GENERIC_DBG, "Changing virtual interface, enable scan\n");
>  	#endif
>  	/*BugID_5137*/
> @@ -3094,7 +3097,7 @@ static int WILC_WFI_change_virt_intf(struct wiphy *wiphy, struct net_device *dev
>  
>  		#ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP
>  		g_obtainingIP = WILC_TRUE;
> -		WILC_TimerStart(&hDuringIpTimer, duringIP_TIME, NULL, NULL);
> +		mod_timer(&hDuringIpTimer, (jiffies + msecs_to_jiffies(duringIP_TIME)));
>  		#endif
>  		host_int_set_power_mgmt(priv->hWILCWFIDrv, 0, 0);
>  		/*BugID_5222*/
> @@ -3856,16 +3859,12 @@ int WILC_WFI_InitHostInt(struct net_device *net)
>  	PRINT_D(INIT_DBG, "Host[%p][%p]\n", net, net->ieee80211_ptr);
>  	priv = wdev_priv(net->ieee80211_ptr);
>  	if (op_ifcs == 0) {
> -		s32Error = WILC_TimerCreate(&(hAgingTimer), remove_network_from_shadow, NULL);
> +		setup_timer(&hAgingTimer, (void(*)(unsigned long))remove_network_from_shadow, 0);
>  		#ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP
> -		s32Error = WILC_TimerCreate(&(hDuringIpTimer), clear_duringIP, NULL);
> +		setup_timer(&hDuringIpTimer, (void(*)(unsigned long))clear_duringIP, 0);
>  		#endif
>  	}
>  	op_ifcs++;
> -	if (s32Error < 0) {
> -		PRINT_ER("Failed to creat refresh Timer\n");
> -		return s32Error;
> -	}
>  
>  	priv->gbAutoRateAdjusted = WILC_FALSE;
>  
> @@ -3908,7 +3907,7 @@ int WILC_WFI_DeInitHostInt(struct net_device *net)
>  	#ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP
>  	if (op_ifcs == 0) {
>  		PRINT_D(CORECONFIG_DBG, "destroy during ip\n");
> -		WILC_TimerDestroy(&hDuringIpTimer, NULL);
> +		del_timer_sync(&hDuringIpTimer);
>  	}
>  	#endif
>  
> -- 
> 1.9.1

Please discard this patch.Doing a clean and building the driver shows a
build erorr becausae of a C file I removed.The makefile needs to be
modified.I will send a new patch.
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux