From: Hari Prasath Gujulan Elango <hguju...@visteon.com>

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 <hguju...@visteon.com>
---
 drivers/staging/wilc1000/Makefile                 |   2 +-
 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 +++--
 9 files changed, 55 insertions(+), 264 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/Makefile 
b/drivers/staging/wilc1000/Makefile
index a78c4d5..39e2a3e2 100644
--- a/drivers/staging/wilc1000/Makefile
+++ b/drivers/staging/wilc1000/Makefile
@@ -27,7 +27,7 @@ ccflags-$(CONFIG_WILC1000_DYNAMICALLY_ALLOCATE_MEMROY) += 
-DWILC_NORMAL_ALLOC
 
 wilc1000-objs := wilc_wfi_netdevice.o wilc_wfi_cfgoperations.o linux_wlan.o 
linux_mon.o \
                        wilc_memory.o wilc_msgqueue.o wilc_sleep.o 
wilc_strutils.o \
-                       wilc_timer.o coreconfigurator.o host_interface.o \
+                       coreconfigurator.o host_interface.o \
                        fifo_buffer.o wilc_sdio.o wilc_spi.o wilc_wlan_cfg.o 
wilc_debugfs.o
 
 wilc1000-$(CONFIG_WILC1000_SDIO) += linux_wlan_sdio.o
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
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to