diff options
author | Ben Greear <greearb@candelatech.com> | 2012-04-23 15:50:29 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-05-08 21:53:49 -0400 |
commit | d61992182e41e1beec0507fd7bce4ba1face12d6 (patch) | |
tree | dab94e062e0793a5f8a7cf54d336866f9aca0328 /net/wireless/ethtool.c | |
parent | 35e7adaaf6932c5ffb22c6ec521734434c65adc5 (diff) |
cfg80211: Add framework to support ethtool stats.
Signed-off-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/wireless/ethtool.c')
-rw-r--r-- | net/wireless/ethtool.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/net/wireless/ethtool.c b/net/wireless/ethtool.c index 9bde4d1d3e9b..7eecdf40cf80 100644 --- a/net/wireless/ethtool.c +++ b/net/wireless/ethtool.c | |||
@@ -68,6 +68,32 @@ static int cfg80211_set_ringparam(struct net_device *dev, | |||
68 | return -ENOTSUPP; | 68 | return -ENOTSUPP; |
69 | } | 69 | } |
70 | 70 | ||
71 | static int cfg80211_get_sset_count(struct net_device *dev, int sset) | ||
72 | { | ||
73 | struct wireless_dev *wdev = dev->ieee80211_ptr; | ||
74 | struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy); | ||
75 | if (rdev->ops->get_et_sset_count) | ||
76 | return rdev->ops->get_et_sset_count(wdev->wiphy, dev, sset); | ||
77 | return -EOPNOTSUPP; | ||
78 | } | ||
79 | |||
80 | static void cfg80211_get_stats(struct net_device *dev, | ||
81 | struct ethtool_stats *stats, u64 *data) | ||
82 | { | ||
83 | struct wireless_dev *wdev = dev->ieee80211_ptr; | ||
84 | struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy); | ||
85 | if (rdev->ops->get_et_stats) | ||
86 | rdev->ops->get_et_stats(wdev->wiphy, dev, stats, data); | ||
87 | } | ||
88 | |||
89 | static void cfg80211_get_strings(struct net_device *dev, u32 sset, u8 *data) | ||
90 | { | ||
91 | struct wireless_dev *wdev = dev->ieee80211_ptr; | ||
92 | struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy); | ||
93 | if (rdev->ops->get_et_strings) | ||
94 | rdev->ops->get_et_strings(wdev->wiphy, dev, sset, data); | ||
95 | } | ||
96 | |||
71 | const struct ethtool_ops cfg80211_ethtool_ops = { | 97 | const struct ethtool_ops cfg80211_ethtool_ops = { |
72 | .get_drvinfo = cfg80211_get_drvinfo, | 98 | .get_drvinfo = cfg80211_get_drvinfo, |
73 | .get_regs_len = cfg80211_get_regs_len, | 99 | .get_regs_len = cfg80211_get_regs_len, |
@@ -75,4 +101,7 @@ const struct ethtool_ops cfg80211_ethtool_ops = { | |||
75 | .get_link = ethtool_op_get_link, | 101 | .get_link = ethtool_op_get_link, |
76 | .get_ringparam = cfg80211_get_ringparam, | 102 | .get_ringparam = cfg80211_get_ringparam, |
77 | .set_ringparam = cfg80211_set_ringparam, | 103 | .set_ringparam = cfg80211_set_ringparam, |
104 | .get_strings = cfg80211_get_strings, | ||
105 | .get_ethtool_stats = cfg80211_get_stats, | ||
106 | .get_sset_count = cfg80211_get_sset_count, | ||
78 | }; | 107 | }; |