]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: mt76: mt7921: disable auto regd changes after user set
authorJB Tsai <jb.tsai@mediatek.com>
Tue, 3 Mar 2026 05:36:37 +0000 (13:36 +0800)
committerFelix Fietkau <nbd@nbd.name>
Tue, 9 Jun 2026 10:26:43 +0000 (10:26 +0000)
Add regd_user flag to block automatic regulatory domain updates
if set by user.

Co-developed-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: JB Tsai <jb.tsai@mediatek.com>
Link: https://patch.msgid.link/20260303053637.465465-5-jb.tsai@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
drivers/net/wireless/mediatek/mt76/mt7921/regd.c

index 3e605a9ab9191e2fad85c223bcf1cb3dfc4be8b5..25b9437250f7ba1dc68cf7736adb28feb2ac315c 100644 (file)
@@ -419,6 +419,7 @@ static int mt7921_load_clc(struct mt792x_dev *dev, const char *fw_name)
        u8 *clc_base = NULL, hw_encap = 0;
 
        dev->phy.clc_chan_conf = 0xff;
+       dev->regd_user = false;
        if (!mt7921_regd_clc_supported(dev))
                return 0;
 
index d14ed100345b5883d87a14694c6157ae83aa5b72..c0e2b48a50bf09b5800cf7181e142ba0f275b2e6 100644 (file)
@@ -117,6 +117,10 @@ void mt7921_regd_notifier(struct wiphy *wiphy,
        struct mt76_connac_pm *pm = &dev->pm;
        struct mt76_dev *mdev = &dev->mt76;
 
+       if (req->initiator == NL80211_REGDOM_SET_BY_USER &&
+           !dev->regd_user)
+               dev->regd_user = true;
+
        /* do not need to update the same country twice */
        if (!memcmp(req->alpha2, mdev->alpha2, 2) &&
            dev->country_ie_env == req->country_ie_env)
@@ -168,7 +172,8 @@ int mt7921_regd_change(struct mt792x_phy *phy, char *alpha2)
                return 0;
 
        if (!mt7921_regd_is_valid_alpha2(alpha2) ||
-           !mt7921_regd_clc_supported(dev))
+           !mt7921_regd_clc_supported(dev) ||
+           dev->regd_user)
                return -EINVAL;
 
        if (mdev->alpha2[0] != '0' && mdev->alpha2[1] != '0')