From 9219e4fe38f47554ae40b2e2dbfeae5e3157409c Mon Sep 17 00:00:00 2001 From: Kalle Valo Date: Thu, 24 Sep 2009 11:02:42 -0700 Subject: [PATCH] --- yaml --- r: 170603 b: refs/heads/master c: dfce95f51fe34fa18c87a7d0bea53594b9bf1b9a h: refs/heads/master i: 170601: b3f5dc27549b795a8f3cf6cc27657a30ca2e224c 170599: 9b9cf8c19eaff817444ca4dca0cfb4ef145610bb v: v3 --- [refs] | 2 +- trunk/include/net/cfg80211.h | 3 +++ trunk/net/wireless/ethtool.c | 23 ++++++++++++++++++++++- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index e63fb1d23aae..deec400fc3de 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4890e3beddfb4a6859c4bb782c9cd05dd94ead82 +refs/heads/master: dfce95f51fe34fa18c87a7d0bea53594b9bf1b9a diff --git a/trunk/include/net/cfg80211.h b/trunk/include/net/cfg80211.h index 241ea14d6df8..6f4862b3ec2c 100644 --- a/trunk/include/net/cfg80211.h +++ b/trunk/include/net/cfg80211.h @@ -1142,6 +1142,9 @@ struct wiphy { u32 frag_threshold; u32 rts_threshold; + char fw_version[ETHTOOL_BUSINFO_LEN]; + u32 hw_version; + /* If multiple wiphys are registered and you're handed e.g. * a regular netdev with assigned ieee80211_ptr, you won't * know whether it points to a wiphy your driver has registered diff --git a/trunk/net/wireless/ethtool.c b/trunk/net/wireless/ethtool.c index 80d6d0d31f12..ca4c825be93d 100644 --- a/trunk/net/wireless/ethtool.c +++ b/trunk/net/wireless/ethtool.c @@ -12,13 +12,34 @@ static void cfg80211_get_drvinfo(struct net_device *dev, strlcpy(info->version, init_utsname()->release, sizeof(info->version)); - strlcpy(info->fw_version, "N/A", sizeof(info->fw_version)); + if (wdev->wiphy->fw_version[0]) + strncpy(info->fw_version, wdev->wiphy->fw_version, + sizeof(info->fw_version)); + else + strncpy(info->fw_version, "N/A", sizeof(info->fw_version)); strlcpy(info->bus_info, dev_name(wiphy_dev(wdev->wiphy)), sizeof(info->bus_info)); } +static int cfg80211_get_regs_len(struct net_device *dev) +{ + /* For now, return 0... */ + return 0; +} + +static void cfg80211_get_regs(struct net_device *dev, struct ethtool_regs *regs, + void *data) +{ + struct wireless_dev *wdev = dev->ieee80211_ptr; + + regs->version = wdev->wiphy->hw_version; + regs->len = 0; +} + const struct ethtool_ops cfg80211_ethtool_ops = { .get_drvinfo = cfg80211_get_drvinfo, + .get_regs_len = cfg80211_get_regs_len, + .get_regs = cfg80211_get_regs, .get_link = ethtool_op_get_link, };