diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index aca52654825b547c7c9a852e9cc5883cfc1c0e51..d2605158546bb54c2985ea1bf1c0dffa185ba63d 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -85,7 +85,7 @@ static struct pci_driver rtl8192_pci_driver = { static short _rtl92e_is_tx_queue_empty(struct net_device *dev); static void _rtl92e_watchdog_wq_cb(void *data); -static void _rtl92e_watchdog_timer_cb(unsigned long data); +static void _rtl92e_watchdog_timer_cb(struct timer_list *t); static void _rtl92e_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, int rate); static int _rtl92e_hard_start_xmit(struct sk_buff *skb, struct net_device *dev); @@ -766,12 +766,12 @@ static int _rtl92e_sta_up(struct net_device *dev, bool is_silent_reset) priv->bfirst_init = false; if (priv->polling_timer_on == 0) - rtl92e_check_rfctrl_gpio_timer((unsigned long)dev); + rtl92e_check_rfctrl_gpio_timer(&priv->gpio_polling_timer); if (priv->rtllib->state != RTLLIB_LINKED) rtllib_softmac_start_protocol(priv->rtllib, 0); rtllib_reset_queue(priv->rtllib); - _rtl92e_watchdog_timer_cb((unsigned long)dev); + _rtl92e_watchdog_timer_cb(&priv->watch_dog_timer); if (!netif_queue_stopped(dev)) netif_start_queue(dev); @@ -1075,13 +1075,10 @@ static short _rtl92e_init(struct net_device *dev) rtl92e_dm_init(dev); - setup_timer(&priv->watch_dog_timer, - _rtl92e_watchdog_timer_cb, - (unsigned long)dev); + timer_setup(&priv->watch_dog_timer, _rtl92e_watchdog_timer_cb, 0); - setup_timer(&priv->gpio_polling_timer, - rtl92e_check_rfctrl_gpio_timer, - (unsigned long)dev); + timer_setup(&priv->gpio_polling_timer, rtl92e_check_rfctrl_gpio_timer, + 0); rtl92e_irq_disable(dev); if (request_irq(dev->irq, _rtl92e_irq, IRQF_SHARED, dev->name, dev)) { @@ -1531,9 +1528,9 @@ static void _rtl92e_watchdog_wq_cb(void *data) RT_TRACE(COMP_TRACE, " <==RtUsbCheckForHangWorkItemCallback()\n"); } -static void _rtl92e_watchdog_timer_cb(unsigned long data) +static void _rtl92e_watchdog_timer_cb(struct timer_list *t) { - struct r8192_priv *priv = rtllib_priv((struct net_device *)data); + struct r8192_priv *priv = from_timer(priv, t, watch_dog_timer); schedule_delayed_work(&priv->watch_dog_wq, 0); mod_timer(&priv->watch_dog_timer, jiffies + @@ -2535,7 +2532,7 @@ static int _rtl92e_pci_probe(struct pci_dev *pdev, RT_TRACE(COMP_INIT, "dev name: %s\n", dev->name); if (priv->polling_timer_on == 0) - rtl92e_check_rfctrl_gpio_timer((unsigned long)dev); + rtl92e_check_rfctrl_gpio_timer(&priv->gpio_polling_timer); RT_TRACE(COMP_INIT, "Driver probe completed\n"); return 0; @@ -2648,9 +2645,9 @@ bool rtl92e_disable_nic(struct net_device *dev) module_pci_driver(rtl8192_pci_driver); -void rtl92e_check_rfctrl_gpio_timer(unsigned long data) +void rtl92e_check_rfctrl_gpio_timer(struct timer_list *t) { - struct r8192_priv *priv = rtllib_priv((struct net_device *)data); + struct r8192_priv *priv = from_timer(priv, t, gpio_polling_timer); priv->polling_timer_on = 1; diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.h b/drivers/staging/rtl8192e/rtl8192e/rtl_core.h index 9d3089cb6a5af4a9b62fe25dfede78bb6d78ba68..866fe4d4cb28d2355c5acb3f9d78bf5020577191 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.h +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.h @@ -587,7 +587,7 @@ void rtl92e_tx_enable(struct net_device *); void rtl92e_hw_sleep_wq(void *data); void rtl92e_commit(struct net_device *dev); -void rtl92e_check_rfctrl_gpio_timer(unsigned long data); +void rtl92e_check_rfctrl_gpio_timer(struct timer_list *t); void rtl92e_hw_wakeup_wq(void *data); diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c index b8205ebafd7217c5efe69c498550e71d5bd6cb7a..9bf95bd0ad13f9f91f590e1943a6ff099fe0da54 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c @@ -196,7 +196,7 @@ static void _rtl92e_dm_check_txrateandretrycount(struct net_device *dev); static void _rtl92e_dm_check_ac_dc_power(struct net_device *dev); static void _rtl92e_dm_check_fsync(struct net_device *dev); static void _rtl92e_dm_check_rf_ctrl_gpio(void *data); -static void _rtl92e_dm_fsync_timer_callback(unsigned long data); +static void _rtl92e_dm_fsync_timer_callback(struct timer_list *t); /*---------------------Define local function prototype-----------------------*/ @@ -2125,8 +2125,7 @@ static void _rtl92e_dm_init_fsync(struct net_device *dev) priv->rtllib->fsync_state = Default_Fsync; priv->framesyncMonitor = 1; - setup_timer(&priv->fsync_timer, _rtl92e_dm_fsync_timer_callback, - (unsigned long)dev); + timer_setup(&priv->fsync_timer, _rtl92e_dm_fsync_timer_callback, 0); } @@ -2137,10 +2136,10 @@ static void _rtl92e_dm_deinit_fsync(struct net_device *dev) del_timer_sync(&priv->fsync_timer); } -static void _rtl92e_dm_fsync_timer_callback(unsigned long data) +static void _rtl92e_dm_fsync_timer_callback(struct timer_list *t) { - struct net_device *dev = (struct net_device *)data; - struct r8192_priv *priv = rtllib_priv((struct net_device *)data); + struct r8192_priv *priv = from_timer(priv, t, fsync_timer); + struct net_device *dev = priv->rtllib->dev; u32 rate_index, rate_count = 0, rate_count_diff = 0; bool bSwitchFromCountDiff = false; bool bDoubleTimeInterval = false; diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_pm.c b/drivers/staging/rtl8192e/rtl8192e/rtl_pm.c index 3e3273d3e043ae7a158cafa5f53fa4d5f7257b82..81a68b0b4a7ff30c9a7088d467843aa399a780ba 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_pm.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_pm.c @@ -91,7 +91,7 @@ int rtl92e_resume(struct pci_dev *pdev) pci_enable_wake(pdev, PCI_D0, 0); if (priv->polling_timer_on == 0) - rtl92e_check_rfctrl_gpio_timer((unsigned long)dev); + rtl92e_check_rfctrl_gpio_timer(&priv->gpio_polling_timer); if (!netif_running(dev)) { netdev_info(dev, diff --git a/drivers/staging/rtl8192e/rtl819x_BAProc.c b/drivers/staging/rtl8192e/rtl819x_BAProc.c index 1720e1b6ae046a785244219619f3d1310edd6243..eb6d841f7c45958336eb7b8445ace4e93631dbab 100644 --- a/drivers/staging/rtl8192e/rtl819x_BAProc.c +++ b/drivers/staging/rtl8192e/rtl819x_BAProc.c @@ -528,18 +528,20 @@ void TsInitDelBA(struct rtllib_device *ieee, } } -void BaSetupTimeOut(unsigned long data) +void BaSetupTimeOut(struct timer_list *t) { - struct tx_ts_record *pTxTs = (struct tx_ts_record *)data; + struct tx_ts_record *pTxTs = from_timer(pTxTs, t, + TxPendingBARecord.Timer); pTxTs->bAddBaReqInProgress = false; pTxTs->bAddBaReqDelayed = true; pTxTs->TxPendingBARecord.bValid = false; } -void TxBaInactTimeout(unsigned long data) +void TxBaInactTimeout(struct timer_list *t) { - struct tx_ts_record *pTxTs = (struct tx_ts_record *)data; + struct tx_ts_record *pTxTs = from_timer(pTxTs, t, + TxAdmittedBARecord.Timer); struct rtllib_device *ieee = container_of(pTxTs, struct rtllib_device, TxTsRecord[pTxTs->num]); TxTsDeleteBA(ieee, pTxTs); @@ -548,9 +550,10 @@ void TxBaInactTimeout(unsigned long data) DELBA_REASON_TIMEOUT); } -void RxBaInactTimeout(unsigned long data) +void RxBaInactTimeout(struct timer_list *t) { - struct rx_ts_record *pRxTs = (struct rx_ts_record *)data; + struct rx_ts_record *pRxTs = from_timer(pRxTs, t, + RxAdmittedBARecord.Timer); struct rtllib_device *ieee = container_of(pRxTs, struct rtllib_device, RxTsRecord[pRxTs->num]); diff --git a/drivers/staging/rtl8192e/rtl819x_TSProc.c b/drivers/staging/rtl8192e/rtl819x_TSProc.c index dcc4eb691889245e65927172a6e97a206d05fa6c..f839d2447b8571bdbdebc4380b5812757759e4c1 100644 --- a/drivers/staging/rtl8192e/rtl819x_TSProc.c +++ b/drivers/staging/rtl8192e/rtl819x_TSProc.c @@ -16,17 +16,18 @@ #include <linux/etherdevice.h> #include "rtl819x_TS.h" -static void TsSetupTimeOut(unsigned long data) +static void TsSetupTimeOut(struct timer_list *unused) { } -static void TsInactTimeout(unsigned long data) +static void TsInactTimeout(struct timer_list *unused) { } -static void RxPktPendingTimeout(unsigned long data) +static void RxPktPendingTimeout(struct timer_list *t) { - struct rx_ts_record *pRxTs = (struct rx_ts_record *)data; + struct rx_ts_record *pRxTs = from_timer(pRxTs, t, + RxPktPendingTimer); struct rtllib_device *ieee = container_of(pRxTs, struct rtllib_device, RxTsRecord[pRxTs->num]); @@ -96,9 +97,9 @@ static void RxPktPendingTimeout(unsigned long data) spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags); } -static void TsAddBaProcess(unsigned long data) +static void TsAddBaProcess(struct timer_list *t) { - struct tx_ts_record *pTxTs = (struct tx_ts_record *)data; + struct tx_ts_record *pTxTs = from_timer(pTxTs, t, TsAddBaTimer); u8 num = pTxTs->num; struct rtllib_device *ieee = container_of(pTxTs, struct rtllib_device, TxTsRecord[num]); @@ -150,24 +151,18 @@ void TSInitialize(struct rtllib_device *ieee) for (count = 0; count < TOTAL_TS_NUM; count++) { pTxTS->num = count; - setup_timer(&pTxTS->TsCommonInfo.SetupTimer, - TsSetupTimeOut, - (unsigned long) pTxTS); + timer_setup(&pTxTS->TsCommonInfo.SetupTimer, TsSetupTimeOut, + 0); - setup_timer(&pTxTS->TsCommonInfo.InactTimer, - TsInactTimeout, - (unsigned long) pTxTS); + timer_setup(&pTxTS->TsCommonInfo.InactTimer, TsInactTimeout, + 0); - setup_timer(&pTxTS->TsAddBaTimer, - TsAddBaProcess, - (unsigned long) pTxTS); + timer_setup(&pTxTS->TsAddBaTimer, TsAddBaProcess, 0); - setup_timer(&pTxTS->TxPendingBARecord.Timer, - BaSetupTimeOut, - (unsigned long) pTxTS); - setup_timer(&pTxTS->TxAdmittedBARecord.Timer, - TxBaInactTimeout, - (unsigned long) pTxTS); + timer_setup(&pTxTS->TxPendingBARecord.Timer, BaSetupTimeOut, + 0); + timer_setup(&pTxTS->TxAdmittedBARecord.Timer, + TxBaInactTimeout, 0); ResetTxTsEntry(pTxTS); list_add_tail(&pTxTS->TsCommonInfo.List, @@ -182,21 +177,16 @@ void TSInitialize(struct rtllib_device *ieee) pRxTS->num = count; INIT_LIST_HEAD(&pRxTS->RxPendingPktList); - setup_timer(&pRxTS->TsCommonInfo.SetupTimer, - TsSetupTimeOut, - (unsigned long) pRxTS); + timer_setup(&pRxTS->TsCommonInfo.SetupTimer, TsSetupTimeOut, + 0); - setup_timer(&pRxTS->TsCommonInfo.InactTimer, - TsInactTimeout, - (unsigned long) pRxTS); + timer_setup(&pRxTS->TsCommonInfo.InactTimer, TsInactTimeout, + 0); - setup_timer(&pRxTS->RxAdmittedBARecord.Timer, - RxBaInactTimeout, - (unsigned long) pRxTS); + timer_setup(&pRxTS->RxAdmittedBARecord.Timer, + RxBaInactTimeout, 0); - setup_timer(&pRxTS->RxPktPendingTimer, - RxPktPendingTimeout, - (unsigned long) pRxTS); + timer_setup(&pRxTS->RxPktPendingTimer, RxPktPendingTimeout, 0); ResetRxTsEntry(pRxTS); list_add_tail(&pRxTS->TsCommonInfo.List, diff --git a/drivers/staging/rtl8192e/rtllib.h b/drivers/staging/rtl8192e/rtllib.h index 0042a0f6cf7941decbcb1b1c222112bb6117dee4..c01474a6db1e8d1ea0c7729b9b3bb7ec667de1a3 100644 --- a/drivers/staging/rtl8192e/rtllib.h +++ b/drivers/staging/rtl8192e/rtllib.h @@ -2113,9 +2113,9 @@ void TsInitAddBA(struct rtllib_device *ieee, struct tx_ts_record *pTS, void TsInitDelBA(struct rtllib_device *ieee, struct ts_common_info *pTsCommonInfo, enum tr_select TxRxSelect); -void BaSetupTimeOut(unsigned long data); -void TxBaInactTimeout(unsigned long data); -void RxBaInactTimeout(unsigned long data); +void BaSetupTimeOut(struct timer_list *t); +void TxBaInactTimeout(struct timer_list *t); +void RxBaInactTimeout(struct timer_list *t); void ResetBaEntry(struct ba_record *pBA); bool GetTs(struct rtllib_device *ieee, struct ts_common_info **ppTS, u8 *Addr, u8 TID, enum tr_select TxRxSelect, bool bAddNewTs); diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c index 1e308dfd7f74f1df574314d086b9212b9285f55d..c2b9ffba354a560d965edc2c6b9e4ac8a434d858 100644 --- a/drivers/staging/rtl8192e/rtllib_softmac.c +++ b/drivers/staging/rtl8192e/rtllib_softmac.c @@ -393,10 +393,10 @@ static void rtllib_send_beacon(struct rtllib_device *ieee) } -static void rtllib_send_beacon_cb(unsigned long _ieee) +static void rtllib_send_beacon_cb(struct timer_list *t) { struct rtllib_device *ieee = - (struct rtllib_device *) _ieee; + from_timer(ieee, t, beacon_timer); unsigned long flags; spin_lock_irqsave(&ieee->beacon_lock, flags); @@ -1427,9 +1427,11 @@ static void rtllib_associate_abort(struct rtllib_device *ieee) spin_unlock_irqrestore(&ieee->lock, flags); } -static void rtllib_associate_abort_cb(unsigned long dev) +static void rtllib_associate_abort_cb(struct timer_list *t) { - rtllib_associate_abort((struct rtllib_device *) dev); + struct rtllib_device *dev = from_timer(dev, t, associate_timer); + + rtllib_associate_abort(dev); } static void rtllib_associate_step1(struct rtllib_device *ieee, u8 *daddr) @@ -3012,13 +3014,9 @@ void rtllib_softmac_init(struct rtllib_device *ieee) ieee->tx_pending.txb = NULL; - setup_timer(&ieee->associate_timer, - rtllib_associate_abort_cb, - (unsigned long) ieee); + timer_setup(&ieee->associate_timer, rtllib_associate_abort_cb, 0); - setup_timer(&ieee->beacon_timer, - rtllib_send_beacon_cb, - (unsigned long) ieee); + timer_setup(&ieee->beacon_timer, rtllib_send_beacon_cb, 0); INIT_DELAYED_WORK_RSL(&ieee->link_change_wq, (void *)rtllib_link_change_wq, ieee);