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