]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
wifi: mt76: mt7921: fix wrong power after multiple SAR set
authorYN Chen <YN.Chen@mediatek.com>
Wed, 16 Nov 2022 14:43:02 +0000 (22:43 +0800)
committerFelix Fietkau <nbd@nbd.name>
Thu, 1 Dec 2022 16:29:14 +0000 (17:29 +0100)
We should update CLC config before SAR set to synchronize all
related settings.

Fixes: 23bdc5d8cadf ("wifi: mt76: mt7921: introduce Country Location Control support")
Signed-off-by: YN Chen <YN.Chen@mediatek.com>
Signed-off-by: Deren Wu <deren.wu@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7921/init.c
drivers/net/wireless/mediatek/mt76/mt7921/main.c
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h

index 79b8055ce4c4f55ccd08e9f1c15064bddfd33234..542dfd4251290d25da2c83d9a37b664969c1aaea 100644 (file)
@@ -59,6 +59,7 @@ mt7921_regd_notifier(struct wiphy *wiphy,
 
        memcpy(dev->mt76.alpha2, request->alpha2, sizeof(dev->mt76.alpha2));
        dev->mt76.region = request->dfs_region;
+       dev->country_ie_env = request->country_ie_env;
 
        mt7921_mutex_acquire(dev);
        mt7921_mcu_set_clc(dev, request->alpha2, request->country_ie_env);
index 41df17efdb3a76068330f9edec78bd9c03a02071..76ac5069638feb0c4afd4527bfaf9844ff7b95aa 100644 (file)
@@ -1615,7 +1615,13 @@ static int mt7921_set_sar_specs(struct ieee80211_hw *hw,
        int err;
 
        mt7921_mutex_acquire(dev);
+       err = mt7921_mcu_set_clc(dev, dev->mt76.alpha2,
+                                dev->country_ie_env);
+       if (err < 0)
+               goto out;
+
        err = mt7921_set_tx_sar_pwr(hw, sar);
+out:
        mt7921_mutex_release(dev);
 
        return err;
index ac70a978dbed91bc6cfe64311e4e0b1995d20d56..2398c6fd0b39cdd1b86457d909d19f02bd0811cc 100644 (file)
@@ -304,6 +304,8 @@ struct mt7921_dev {
        struct work_struct ipv6_ns_work;
        /* IPv6 addresses for WoWLAN */
        struct sk_buff_head ipv6_ns_list;
+
+       enum environment_cap country_ie_env;
 };
 
 enum {