Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b68e6b3b authored by Luis R. Rodriguez's avatar Luis R. Rodriguez Committed by John W. Linville
Browse files

cfg80211: pass DFS region to drivers through reg_notifier()



This grants drivers access to the DFS region that a
regulatory domain belongs to.

Signed-off-by: default avatarLuis R. Rodriguez <mcgrof@qca.qualcomm.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 8b60b078
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -48,6 +48,10 @@ enum environment_cap {
 * 	99 - built by driver but a specific alpha2 cannot be determined
 * 	99 - built by driver but a specific alpha2 cannot be determined
 * 	98 - result of an intersection between two regulatory domains
 * 	98 - result of an intersection between two regulatory domains
 *	97 - regulatory domain has not yet been configured
 *	97 - regulatory domain has not yet been configured
 * @dfs_region: If CRDA responded with a regulatory domain that requires
 *	DFS master operation on a known DFS region (NL80211_DFS_*),
 *	dfs_region represents that region. Drivers can use this and the
 *	@alpha2 to adjust their device's DFS parameters as required.
 * @intersect: indicates whether the wireless core should intersect
 * @intersect: indicates whether the wireless core should intersect
 * 	the requested regulatory domain with the presently set regulatory
 * 	the requested regulatory domain with the presently set regulatory
 * 	domain.
 * 	domain.
@@ -67,6 +71,7 @@ struct regulatory_request {
	int wiphy_idx;
	int wiphy_idx;
	enum nl80211_reg_initiator initiator;
	enum nl80211_reg_initiator initiator;
	char alpha2[2];
	char alpha2[2];
	u8 dfs_region;
	bool intersect;
	bool intersect;
	bool processed;
	bool processed;
	enum environment_cap country_ie_env;
	enum environment_cap country_ie_env;
+2 −0
Original line number Original line Diff line number Diff line
@@ -1121,6 +1121,8 @@ static void wiphy_update_regulatory(struct wiphy *wiphy,
	if (ignore_reg_update(wiphy, initiator))
	if (ignore_reg_update(wiphy, initiator))
		return;
		return;


	last_request->dfs_region = cfg80211_regdomain->dfs_region;

	for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
	for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
		if (wiphy->bands[band])
		if (wiphy->bands[band])
			handle_band(wiphy, band, initiator);
			handle_band(wiphy, band, initiator);