0001
0002 #include <linux/utsname.h>
0003 #include <net/cfg80211.h>
0004 #include "core.h"
0005 #include "rdev-ops.h"
0006
0007 void cfg80211_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
0008 {
0009 struct wireless_dev *wdev = dev->ieee80211_ptr;
0010 struct device *pdev = wiphy_dev(wdev->wiphy);
0011
0012 if (pdev->driver)
0013 strscpy(info->driver, pdev->driver->name,
0014 sizeof(info->driver));
0015 else
0016 strscpy(info->driver, "N/A", sizeof(info->driver));
0017
0018 strscpy(info->version, init_utsname()->release, sizeof(info->version));
0019
0020 if (wdev->wiphy->fw_version[0])
0021 strscpy(info->fw_version, wdev->wiphy->fw_version,
0022 sizeof(info->fw_version));
0023 else
0024 strscpy(info->fw_version, "N/A", sizeof(info->fw_version));
0025
0026 strscpy(info->bus_info, dev_name(wiphy_dev(wdev->wiphy)),
0027 sizeof(info->bus_info));
0028 }
0029 EXPORT_SYMBOL(cfg80211_get_drvinfo);