OSDN Git Service

rtw89: update rtw89 regulation definition to R58-R31
authorZong-Zhe Yang <kevin_yang@realtek.com>
Mon, 1 Nov 2021 09:31:04 +0000 (17:31 +0800)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 26 Nov 2021 16:10:10 +0000 (18:10 +0200)
Support QATAR in rtw89_regulation_type and reorder the enum to align
realtek R58-R31 regulation definition. Besides, if an unassigned entry
of limit/limit_ru tables is read, return the corresponding WW value for
the unconfigured case.

Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20211101093106.28848-3-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/core.h
drivers/net/wireless/realtek/rtw89/phy.c

index c2885e4..3729abd 100644 (file)
@@ -411,12 +411,13 @@ enum rtw89_regulation_type {
        RTW89_NA        = 4,
        RTW89_IC        = 5,
        RTW89_KCC       = 6,
-       RTW89_NCC       = 7,
-       RTW89_CHILE     = 8,
-       RTW89_ACMA      = 9,
-       RTW89_MEXICO    = 10,
+       RTW89_ACMA      = 7,
+       RTW89_NCC       = 8,
+       RTW89_MEXICO    = 9,
+       RTW89_CHILE     = 10,
        RTW89_UKRAINE   = 11,
        RTW89_CN        = 12,
+       RTW89_QATAR     = 13,
        RTW89_REGD_NUM,
 };
 
index ab13485..0620ef0 100644 (file)
@@ -1099,9 +1099,15 @@ s8 rtw89_phy_read_txpwr_limit(struct rtw89_dev *rtwdev,
        switch (band) {
        case RTW89_BAND_2G:
                lmt = (*chip->txpwr_lmt_2g)[bw][ntx][rs][bf][regd][ch_idx];
+               if (!lmt)
+                       lmt = (*chip->txpwr_lmt_2g)[bw][ntx][rs][bf]
+                                                  [RTW89_WW][ch_idx];
                break;
        case RTW89_BAND_5G:
                lmt = (*chip->txpwr_lmt_5g)[bw][ntx][rs][bf][regd][ch_idx];
+               if (!lmt)
+                       lmt = (*chip->txpwr_lmt_5g)[bw][ntx][rs][bf]
+                                                  [RTW89_WW][ch_idx];
                break;
        default:
                rtw89_warn(rtwdev, "unknown band type: %d\n", band);
@@ -1224,9 +1230,15 @@ static s8 rtw89_phy_read_txpwr_limit_ru(struct rtw89_dev *rtwdev,
        switch (band) {
        case RTW89_BAND_2G:
                lmt_ru = (*chip->txpwr_lmt_ru_2g)[ru][ntx][regd][ch_idx];
+               if (!lmt_ru)
+                       lmt_ru = (*chip->txpwr_lmt_ru_2g)[ru][ntx]
+                                                        [RTW89_WW][ch_idx];
                break;
        case RTW89_BAND_5G:
                lmt_ru = (*chip->txpwr_lmt_ru_5g)[ru][ntx][regd][ch_idx];
+               if (!lmt_ru)
+                       lmt_ru = (*chip->txpwr_lmt_ru_5g)[ru][ntx]
+                                                        [RTW89_WW][ch_idx];
                break;
        default:
                rtw89_warn(rtwdev, "unknown band type: %d\n", band);