aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/adm8211.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/adm8211.c')
-rw-r--r--drivers/net/wireless/adm8211.c27
1 files changed, 7 insertions, 20 deletions
diff --git a/drivers/net/wireless/adm8211.c b/drivers/net/wireless/adm8211.c
index 39410016b4f..547912e6843 100644
--- a/drivers/net/wireless/adm8211.c
+++ b/drivers/net/wireless/adm8211.c
@@ -39,7 +39,7 @@ static unsigned int rx_ring_size __read_mostly = 16;
39module_param(tx_ring_size, uint, 0); 39module_param(tx_ring_size, uint, 0);
40module_param(rx_ring_size, uint, 0); 40module_param(rx_ring_size, uint, 0);
41 41
42static struct pci_device_id adm8211_pci_id_table[] __devinitdata = { 42static DEFINE_PCI_DEVICE_TABLE(adm8211_pci_id_table) = {
43 /* ADMtek ADM8211 */ 43 /* ADMtek ADM8211 */
44 { PCI_DEVICE(0x10B7, 0x6000) }, /* 3Com 3CRSHPW796 */ 44 { PCI_DEVICE(0x10B7, 0x6000) }, /* 3Com 3CRSHPW796 */
45 { PCI_DEVICE(0x1200, 0x8201) }, /* ? */ 45 { PCI_DEVICE(0x1200, 0x8201) }, /* ? */
@@ -302,18 +302,6 @@ static int adm8211_get_stats(struct ieee80211_hw *dev,
302 return 0; 302 return 0;
303} 303}
304 304
305static int adm8211_get_tx_stats(struct ieee80211_hw *dev,
306 struct ieee80211_tx_queue_stats *stats)
307{
308 struct adm8211_priv *priv = dev->priv;
309
310 stats[0].len = priv->cur_tx - priv->dirty_tx;
311 stats[0].limit = priv->tx_ring_size - 2;
312 stats[0].count = priv->dirty_tx;
313
314 return 0;
315}
316
317static void adm8211_interrupt_tci(struct ieee80211_hw *dev) 305static void adm8211_interrupt_tci(struct ieee80211_hw *dev)
318{ 306{
319 struct adm8211_priv *priv = dev->priv; 307 struct adm8211_priv *priv = dev->priv;
@@ -1400,15 +1388,15 @@ static void adm8211_configure_filter(struct ieee80211_hw *dev,
1400} 1388}
1401 1389
1402static int adm8211_add_interface(struct ieee80211_hw *dev, 1390static int adm8211_add_interface(struct ieee80211_hw *dev,
1403 struct ieee80211_if_init_conf *conf) 1391 struct ieee80211_vif *vif)
1404{ 1392{
1405 struct adm8211_priv *priv = dev->priv; 1393 struct adm8211_priv *priv = dev->priv;
1406 if (priv->mode != NL80211_IFTYPE_MONITOR) 1394 if (priv->mode != NL80211_IFTYPE_MONITOR)
1407 return -EOPNOTSUPP; 1395 return -EOPNOTSUPP;
1408 1396
1409 switch (conf->type) { 1397 switch (vif->type) {
1410 case NL80211_IFTYPE_STATION: 1398 case NL80211_IFTYPE_STATION:
1411 priv->mode = conf->type; 1399 priv->mode = vif->type;
1412 break; 1400 break;
1413 default: 1401 default:
1414 return -EOPNOTSUPP; 1402 return -EOPNOTSUPP;
@@ -1416,8 +1404,8 @@ static int adm8211_add_interface(struct ieee80211_hw *dev,
1416 1404
1417 ADM8211_IDLE(); 1405 ADM8211_IDLE();
1418 1406
1419 ADM8211_CSR_WRITE(PAR0, le32_to_cpu(*(__le32 *)conf->mac_addr)); 1407 ADM8211_CSR_WRITE(PAR0, le32_to_cpu(*(__le32 *)vif->addr));
1420 ADM8211_CSR_WRITE(PAR1, le16_to_cpu(*(__le16 *)(conf->mac_addr + 4))); 1408 ADM8211_CSR_WRITE(PAR1, le16_to_cpu(*(__le16 *)(vif->addr + 4)));
1421 1409
1422 adm8211_update_mode(dev); 1410 adm8211_update_mode(dev);
1423 1411
@@ -1427,7 +1415,7 @@ static int adm8211_add_interface(struct ieee80211_hw *dev,
1427} 1415}
1428 1416
1429static void adm8211_remove_interface(struct ieee80211_hw *dev, 1417static void adm8211_remove_interface(struct ieee80211_hw *dev,
1430 struct ieee80211_if_init_conf *conf) 1418 struct ieee80211_vif *vif)
1431{ 1419{
1432 struct adm8211_priv *priv = dev->priv; 1420 struct adm8211_priv *priv = dev->priv;
1433 priv->mode = NL80211_IFTYPE_MONITOR; 1421 priv->mode = NL80211_IFTYPE_MONITOR;
@@ -1773,7 +1761,6 @@ static const struct ieee80211_ops adm8211_ops = {
1773 .prepare_multicast = adm8211_prepare_multicast, 1761 .prepare_multicast = adm8211_prepare_multicast,
1774 .configure_filter = adm8211_configure_filter, 1762 .configure_filter = adm8211_configure_filter,
1775 .get_stats = adm8211_get_stats, 1763 .get_stats = adm8211_get_stats,
1776 .get_tx_stats = adm8211_get_tx_stats,
1777 .get_tsf = adm8211_get_tsft 1764 .get_tsf = adm8211_get_tsft
1778}; 1765};
1779 1766