aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/rtl8192e/r8192E_core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/rtl8192e/r8192E_core.c')
-rw-r--r--drivers/staging/rtl8192e/r8192E_core.c41
1 files changed, 20 insertions, 21 deletions
diff --git a/drivers/staging/rtl8192e/r8192E_core.c b/drivers/staging/rtl8192e/r8192E_core.c
index d9e47d0d101..37105848b4c 100644
--- a/drivers/staging/rtl8192e/r8192E_core.c
+++ b/drivers/staging/rtl8192e/r8192E_core.c
@@ -99,9 +99,9 @@ static struct pci_driver rtl8192_pci_driver = {
99static void rtl8192_start_beacon(struct net_device *dev); 99static void rtl8192_start_beacon(struct net_device *dev);
100static void rtl8192_stop_beacon(struct net_device *dev); 100static void rtl8192_stop_beacon(struct net_device *dev);
101static void rtl819x_watchdog_wqcallback(struct work_struct *work); 101static void rtl819x_watchdog_wqcallback(struct work_struct *work);
102static void rtl8192_irq_rx_tasklet(struct r8192_priv *priv); 102static void rtl8192_irq_rx_tasklet(unsigned long arg);
103static void rtl8192_irq_tx_tasklet(struct r8192_priv *priv); 103static void rtl8192_irq_tx_tasklet(unsigned long arg);
104static void rtl8192_prepare_beacon(struct r8192_priv *priv); 104static void rtl8192_prepare_beacon(unsigned long arg);
105static irqreturn_t rtl8192_interrupt(int irq, void *netdev); 105static irqreturn_t rtl8192_interrupt(int irq, void *netdev);
106static void rtl819xE_tx_cmd(struct net_device *dev, struct sk_buff *skb); 106static void rtl819xE_tx_cmd(struct net_device *dev, struct sk_buff *skb);
107static void rtl8192_update_ratr_table(struct net_device* dev); 107static void rtl8192_update_ratr_table(struct net_device* dev);
@@ -2175,7 +2175,7 @@ static void rtl8192_init_priv_task(struct net_device* dev)
2175 priv->priv_wq = create_workqueue(DRV_NAME); 2175 priv->priv_wq = create_workqueue(DRV_NAME);
2176 2176
2177#ifdef ENABLE_IPS 2177#ifdef ENABLE_IPS
2178 INIT_WORK(&priv->ieee80211->ips_leave_wq, (void*)IPSLeave_wq); 2178 INIT_WORK(&priv->ieee80211->ips_leave_wq, IPSLeave_wq);
2179#endif 2179#endif
2180 2180
2181// INIT_WORK(&priv->reset_wq, (void(*)(void*)) rtl8192_restart); 2181// INIT_WORK(&priv->reset_wq, (void(*)(void*)) rtl8192_restart);
@@ -2188,18 +2188,15 @@ static void rtl8192_init_priv_task(struct net_device* dev)
2188 //INIT_WORK(&priv->SwChnlWorkItem, rtl8192_SwChnl_WorkItem); 2188 //INIT_WORK(&priv->SwChnlWorkItem, rtl8192_SwChnl_WorkItem);
2189 //INIT_WORK(&priv->SetBWModeWorkItem, rtl8192_SetBWModeWorkItem); 2189 //INIT_WORK(&priv->SetBWModeWorkItem, rtl8192_SetBWModeWorkItem);
2190 INIT_WORK(&priv->qos_activate, rtl8192_qos_activate); 2190 INIT_WORK(&priv->qos_activate, rtl8192_qos_activate);
2191 INIT_DELAYED_WORK(&priv->ieee80211->hw_wakeup_wq,(void*) rtl8192_hw_wakeup_wq); 2191 INIT_DELAYED_WORK(&priv->ieee80211->hw_wakeup_wq, rtl8192_hw_wakeup_wq);
2192 INIT_DELAYED_WORK(&priv->ieee80211->hw_sleep_wq,(void*) rtl8192_hw_sleep_wq); 2192 INIT_DELAYED_WORK(&priv->ieee80211->hw_sleep_wq, rtl8192_hw_sleep_wq);
2193 2193
2194 tasklet_init(&priv->irq_rx_tasklet, 2194 tasklet_init(&priv->irq_rx_tasklet, rtl8192_irq_rx_tasklet,
2195 (void(*)(unsigned long))rtl8192_irq_rx_tasklet, 2195 (unsigned long) priv);
2196 (unsigned long)priv); 2196 tasklet_init(&priv->irq_tx_tasklet, rtl8192_irq_tx_tasklet,
2197 tasklet_init(&priv->irq_tx_tasklet, 2197 (unsigned long) priv);
2198 (void(*)(unsigned long))rtl8192_irq_tx_tasklet, 2198 tasklet_init(&priv->irq_prepare_beacon_tasklet, rtl8192_prepare_beacon,
2199 (unsigned long)priv); 2199 (unsigned long) priv);
2200 tasklet_init(&priv->irq_prepare_beacon_tasklet,
2201 (void(*)(unsigned long))rtl8192_prepare_beacon,
2202 (unsigned long)priv);
2203} 2200}
2204 2201
2205static void rtl8192_get_eeprom_size(struct net_device* dev) 2202static void rtl8192_get_eeprom_size(struct net_device* dev)
@@ -3094,8 +3091,9 @@ static RT_STATUS rtl8192_adapter_start(struct net_device *dev)
3094 3091
3095} 3092}
3096 3093
3097static void rtl8192_prepare_beacon(struct r8192_priv *priv) 3094static void rtl8192_prepare_beacon(unsigned long arg)
3098{ 3095{
3096 struct r8192_priv *priv = (struct r8192_priv*) arg;
3099 struct sk_buff *skb; 3097 struct sk_buff *skb;
3100 //unsigned long flags; 3098 //unsigned long flags;
3101 cb_desc *tcb_desc; 3099 cb_desc *tcb_desc;
@@ -3133,7 +3131,6 @@ static void rtl8192_start_beacon(struct net_device *dev)
3133 u16 BcnIFS = 0xf; 3131 u16 BcnIFS = 0xf;
3134 3132
3135 DMESG("Enabling beacon TX"); 3133 DMESG("Enabling beacon TX");
3136 //rtl8192_prepare_beacon(dev);
3137 rtl8192_irq_disable(dev); 3134 rtl8192_irq_disable(dev);
3138 //rtl8192_beacon_tx_enable(dev); 3135 //rtl8192_beacon_tx_enable(dev);
3139 3136
@@ -3784,9 +3781,9 @@ IPSLeave(struct net_device *dev)
3784 } 3781 }
3785} 3782}
3786 3783
3787void IPSLeave_wq(void *data) 3784void IPSLeave_wq(struct work_struct *work)
3788{ 3785{
3789 struct ieee80211_device *ieee = container_of(data,struct ieee80211_device,ips_leave_wq); 3786 struct ieee80211_device *ieee = container_of(work, struct ieee80211_device, ips_leave_wq);
3790 struct net_device *dev = ieee->dev; 3787 struct net_device *dev = ieee->dev;
3791 3788
3792 struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev); 3789 struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
@@ -4947,8 +4944,9 @@ static void rtl8192_tx_resume(struct net_device *dev)
4947 } 4944 }
4948} 4945}
4949 4946
4950static void rtl8192_irq_tx_tasklet(struct r8192_priv *priv) 4947static void rtl8192_irq_tx_tasklet(unsigned long arg)
4951{ 4948{
4949 struct r8192_priv *priv = (struct r8192_priv*) arg;
4952 struct rtl8192_tx_ring *mgnt_ring = &priv->tx_ring[MGNT_QUEUE]; 4950 struct rtl8192_tx_ring *mgnt_ring = &priv->tx_ring[MGNT_QUEUE];
4953 struct net_device *dev = priv->ieee80211->dev; 4951 struct net_device *dev = priv->ieee80211->dev;
4954 unsigned long flags; 4952 unsigned long flags;
@@ -5164,8 +5162,9 @@ done:
5164 5162
5165} 5163}
5166 5164
5167static void rtl8192_irq_rx_tasklet(struct r8192_priv *priv) 5165static void rtl8192_irq_rx_tasklet(unsigned long arg)
5168{ 5166{
5167 struct r8192_priv *priv = (struct r8192_priv*) arg;
5169 rtl8192_rx(priv->ieee80211->dev); 5168 rtl8192_rx(priv->ieee80211->dev);
5170 /* unmask RDU */ 5169 /* unmask RDU */
5171 write_nic_dword(priv, INTA_MASK, read_nic_dword(priv, INTA_MASK) | IMR_RDU); 5170 write_nic_dword(priv, INTA_MASK, read_nic_dword(priv, INTA_MASK) | IMR_RDU);