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 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel