diff options
Diffstat (limited to 'drivers/net/wireless/ipw2200.c')
-rw-r--r-- | drivers/net/wireless/ipw2200.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c index 0b1c6fe54262..b89ede14419c 100644 --- a/drivers/net/wireless/ipw2200.c +++ b/drivers/net/wireless/ipw2200.c | |||
@@ -125,6 +125,7 @@ static int ipw_send_qos_info_command(struct ipw_priv *priv, struct ieee80211_qos | |||
125 | *qos_param); | 125 | *qos_param); |
126 | #endif /* CONFIG_IPW_QOS */ | 126 | #endif /* CONFIG_IPW_QOS */ |
127 | 127 | ||
128 | static struct iw_statistics *ipw_get_wireless_stats(struct net_device *dev); | ||
128 | static void ipw_remove_current_network(struct ipw_priv *priv); | 129 | static void ipw_remove_current_network(struct ipw_priv *priv); |
129 | static void ipw_rx(struct ipw_priv *priv); | 130 | static void ipw_rx(struct ipw_priv *priv); |
130 | static int ipw_queue_tx_reclaim(struct ipw_priv *priv, | 131 | static int ipw_queue_tx_reclaim(struct ipw_priv *priv, |
@@ -8883,6 +8884,13 @@ static int ipw_wx_get_range(struct net_device *dev, | |||
8883 | range->num_frequency = i; | 8884 | range->num_frequency = i; |
8884 | 8885 | ||
8885 | up(&priv->sem); | 8886 | up(&priv->sem); |
8887 | |||
8888 | /* Event capability (kernel + driver) */ | ||
8889 | range->event_capa[0] = (IW_EVENT_CAPA_K_0 | | ||
8890 | IW_EVENT_CAPA_MASK(SIOCGIWTHRSPY) | | ||
8891 | IW_EVENT_CAPA_MASK(SIOCGIWAP)); | ||
8892 | range->event_capa[1] = IW_EVENT_CAPA_K_1; | ||
8893 | |||
8886 | IPW_DEBUG_WX("GET Range\n"); | 8894 | IPW_DEBUG_WX("GET Range\n"); |
8887 | return 0; | 8895 | return 0; |
8888 | } | 8896 | } |
@@ -9999,10 +10007,9 @@ static struct iw_handler_def ipw_wx_handler_def = { | |||
9999 | .num_private_args = ARRAY_SIZE(ipw_priv_args), | 10007 | .num_private_args = ARRAY_SIZE(ipw_priv_args), |
10000 | .private = ipw_priv_handler, | 10008 | .private = ipw_priv_handler, |
10001 | .private_args = ipw_priv_args, | 10009 | .private_args = ipw_priv_args, |
10010 | .get_wireless_stats = ipw_get_wireless_stats, | ||
10002 | }; | 10011 | }; |
10003 | 10012 | ||
10004 | static struct iw_public_data ipw_wx_data; | ||
10005 | |||
10006 | /* | 10013 | /* |
10007 | * Get wireless statistics. | 10014 | * Get wireless statistics. |
10008 | * Called by /proc/net/wireless | 10015 | * Called by /proc/net/wireless |
@@ -11487,9 +11494,6 @@ static int ipw_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
11487 | SET_MODULE_OWNER(net_dev); | 11494 | SET_MODULE_OWNER(net_dev); |
11488 | SET_NETDEV_DEV(net_dev, &pdev->dev); | 11495 | SET_NETDEV_DEV(net_dev, &pdev->dev); |
11489 | 11496 | ||
11490 | ipw_wx_data.spy_data = &priv->ieee->spy_data; | ||
11491 | ipw_wx_data.ieee80211 = priv->ieee; | ||
11492 | |||
11493 | down(&priv->sem); | 11497 | down(&priv->sem); |
11494 | 11498 | ||
11495 | priv->ieee->hard_start_xmit = ipw_net_hard_start_xmit; | 11499 | priv->ieee->hard_start_xmit = ipw_net_hard_start_xmit; |
@@ -11514,8 +11518,9 @@ static int ipw_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
11514 | net_dev->get_stats = ipw_net_get_stats; | 11518 | net_dev->get_stats = ipw_net_get_stats; |
11515 | net_dev->set_multicast_list = ipw_net_set_multicast_list; | 11519 | net_dev->set_multicast_list = ipw_net_set_multicast_list; |
11516 | net_dev->set_mac_address = ipw_net_set_mac_address; | 11520 | net_dev->set_mac_address = ipw_net_set_mac_address; |
11517 | net_dev->get_wireless_stats = ipw_get_wireless_stats; | 11521 | priv->wireless_data.spy_data = &priv->ieee->spy_data; |
11518 | net_dev->wireless_data = &ipw_wx_data; | 11522 | priv->wireless_data.ieee80211 = priv->ieee; |
11523 | net_dev->wireless_data = &priv->wireless_data; | ||
11519 | net_dev->wireless_handlers = &ipw_wx_handler_def; | 11524 | net_dev->wireless_handlers = &ipw_wx_handler_def; |
11520 | net_dev->ethtool_ops = &ipw_ethtool_ops; | 11525 | net_dev->ethtool_ops = &ipw_ethtool_ops; |
11521 | net_dev->irq = pdev->irq; | 11526 | net_dev->irq = pdev->irq; |