1 // SPDX-License-Identifier: GPL-2.0 2 #include <linux/utsname.h> 3 #include <net/cfg80211.h> 4 #include "core.h" 5 #include "rdev-ops.h" 6 7 void cfg80211_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) 8 { 9 struct wireless_dev *wdev = dev->ieee80211_ptr; 10 struct device *pdev = wiphy_dev(wdev->wiphy); 11 12 if (pdev->driver) 13 strscpy(info->driver, pdev->driver->name, 14 sizeof(info->driver)); 15 else 16 strscpy(info->driver, "N/A", sizeof(info->driver)); 17 18 strscpy(info->version, init_utsname()->release, sizeof(info->version)); 19 20 if (wdev->wiphy->fw_version[0]) 21 strscpy(info->fw_version, wdev->wiphy->fw_version, 22 sizeof(info->fw_version)); 23 else 24 strscpy(info->fw_version, "N/A", sizeof(info->fw_version)); 25 26 strscpy(info->bus_info, dev_name(wiphy_dev(wdev->wiphy)), 27 sizeof(info->bus_info)); 28 } 29 EXPORT_SYMBOL(cfg80211_get_drvinfo); 30