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