コード例 #1
0
ファイル: sysfs.c プロジェクト: forgivemyheart/linux
static int wiphy_suspend(struct device *dev)
{
	struct cfg80211_registered_device *rdev = dev_to_rdev(dev);
	int ret = 0;

	rdev->suspend_at = get_seconds();

	rtnl_lock();
	if (rdev->wiphy.registered) {
		if (!rdev->wiphy.wowlan_config) {
			cfg80211_leave_all(rdev);
			cfg80211_process_rdev_events(rdev);
		}
		if (rdev->ops->suspend)
			ret = rdev_suspend(rdev, rdev->wiphy.wowlan_config);
		if (ret == 1) {
			/* Driver refuse to configure wowlan */
			cfg80211_leave_all(rdev);
			cfg80211_process_rdev_events(rdev);
			ret = rdev_suspend(rdev, NULL);
		}
	}
	rtnl_unlock();

	return ret;
}
コード例 #2
0
ファイル: sysfs.c プロジェクト: Kratos1982/UbuntuTouch
static int wiphy_suspend(struct device *dev, pm_message_t state)
{
	struct cfg80211_registered_device *rdev = dev_to_rdev(dev);
	int ret = 0;

	rdev->suspend_at = get_seconds();

	rtnl_lock();
	if (rdev->wiphy.registered) {
#if 0
		// breaks keep-wifi-on-during-sleep
		if (!rdev->wowlan)
			cfg80211_leave_all(rdev);
#endif
		if (rdev->ops->suspend)
			ret = rdev_suspend(rdev, rdev->wowlan);
		if (ret == 1) {
			/* Driver refuse to configure wowlan */
			cfg80211_leave_all(rdev);
			ret = rdev_suspend(rdev, NULL);
		}
	}
	rtnl_unlock();

	return ret;
}
コード例 #3
0
ファイル: sysfs.c プロジェクト: 383530895/linux
static ssize_t name_show(struct device *dev,
			 struct device_attribute *attr,
			 char *buf)
{
	struct wpan_phy *wpan_phy = &dev_to_rdev(dev)->wpan_phy;

	return sprintf(buf, "%s\n", dev_name(&wpan_phy->dev));
}
コード例 #4
0
ファイル: sysfs.c プロジェクト: ANFS/ANFS-kernel
static int wiphy_suspend(struct device *dev, pm_message_t state)
{
	struct cfg80211_registered_device *rdev = dev_to_rdev(dev);
	int ret = 0;

	rdev->suspend_at = get_seconds();

	if (rdev->ops->suspend) {
		rtnl_lock();
		ret = rdev->ops->suspend(&rdev->wiphy);
		rtnl_unlock();
	}

	return ret;
}
コード例 #5
0
static ssize_t addresses_show(struct device *dev,
			      struct device_attribute *attr,
			      char *buf)
{
	struct wiphy *wiphy = &dev_to_rdev(dev)->wiphy;
	char *start = buf;
	int i;

	if (!wiphy->addresses)
		return sprintf(buf, "%pM\n", wiphy->perm_addr);

	for (i = 0; i < wiphy->n_addresses; i++)
		buf += sprintf(buf, "%pM\n", &wiphy->addresses[i].addr);

	return buf - start;
}
コード例 #6
0
ファイル: sysfs.c プロジェクト: Kanel/CloudMAC-VAP-Driver
static int wiphy_resume(struct device *dev)
{
	struct cfg80211_registered_device *rdev = dev_to_rdev(dev);
	int ret = 0;

	/* Age scan results with time spent in suspend */
	cfg80211_bss_age(rdev, get_seconds() - rdev->suspend_at);

	if (rdev->ops->resume) {
		rtnl_lock();
		if (rdev->wiphy.registered)
			ret = rdev_resume(rdev);
		rtnl_unlock();
	}

	return ret;
}
コード例 #7
0
ファイル: sysfs.c プロジェクト: Albinoman887/pyramid-3.4.10
static int wiphy_resume(struct device *dev)
{
	struct cfg80211_registered_device *rdev = dev_to_rdev(dev);
	int ret = 0;

	
	spin_lock_bh(&rdev->bss_lock);
	cfg80211_bss_age(rdev, get_seconds() - rdev->suspend_at);
	spin_unlock_bh(&rdev->bss_lock);

	if (rdev->ops->resume) {
		rtnl_lock();
		if (rdev->wiphy.registered)
			ret = rdev->ops->resume(&rdev->wiphy);
		rtnl_unlock();
	}

	return ret;
}
コード例 #8
0
static void wiphy_dev_release(struct device *dev)
{
	struct cfg80211_registered_device *rdev = dev_to_rdev(dev);

	cfg80211_dev_free(rdev);
}
コード例 #9
0
ファイル: sysfs.c プロジェクト: 383530895/linux
static void wpan_phy_release(struct device *dev)
{
	struct cfg802154_registered_device *rdev = dev_to_rdev(dev);

	cfg802154_dev_free(rdev);
}