From 88e1bbcbbaba0e4bd3b7b64e2c07cbd094dd36d0 Mon Sep 17 00:00:00 2001 From: Stanislaw Gruszka Date: Tue, 24 Jul 2012 08:35:39 +0200 Subject: [PATCH] --- yaml --- r: 321461 b: refs/heads/master c: 5e31fc0815a4e2c72b1b495fe7a0d8f9bfb9e4b4 h: refs/heads/master i: 321459: f4c87ae1c20d5a66f31d7e455401fb153047a776 v: v3 --- [refs] | 2 +- trunk/net/wireless/reg.c | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 141ed9481a88..302ef476ef31 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3aa569c3fedbd0d16041d08bf6e89b8c43aee650 +refs/heads/master: 5e31fc0815a4e2c72b1b495fe7a0d8f9bfb9e4b4 diff --git a/trunk/net/wireless/reg.c b/trunk/net/wireless/reg.c index baf5704740ee..460af03d8149 100644 --- a/trunk/net/wireless/reg.c +++ b/trunk/net/wireless/reg.c @@ -891,7 +891,21 @@ static void handle_channel(struct wiphy *wiphy, chan->max_antenna_gain = min(chan->orig_mag, (int) MBI_TO_DBI(power_rule->max_antenna_gain)); chan->max_reg_power = (int) MBM_TO_DBM(power_rule->max_eirp); - chan->max_power = min(chan->max_power, chan->max_reg_power); + if (chan->orig_mpwr) { + /* + * Devices that have their own custom regulatory domain + * but also use WIPHY_FLAG_STRICT_REGULATORY will follow the + * passed country IE power settings. + */ + if (initiator == NL80211_REGDOM_SET_BY_COUNTRY_IE && + wiphy->flags & WIPHY_FLAG_CUSTOM_REGULATORY && + wiphy->flags & WIPHY_FLAG_STRICT_REGULATORY) + chan->max_power = chan->max_reg_power; + else + chan->max_power = min(chan->orig_mpwr, + chan->max_reg_power); + } else + chan->max_power = chan->max_reg_power; } static void handle_band(struct wiphy *wiphy,