]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
wifi: rtw89: regd: introduce string getter for reuse
authorZong-Zhe Yang <kevin_yang@realtek.com>
Wed, 26 Mar 2025 02:06:33 +0000 (10:06 +0800)
committerPing-Ke Shih <pkshih@realtek.com>
Mon, 31 Mar 2025 06:20:12 +0000 (14:20 +0800)
Introduce a function to get the string for a given regulatory. It will be
used in the following. Besides, drop similar things in debug code and use
this too.

Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20250326020643.14487-3-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/core.h
drivers/net/wireless/realtek/rtw89/debug.c
drivers/net/wireless/realtek/rtw89/regd.c

index 8e9697679aaa9e8720282c9fb0c50b97caf1f2b9..18340a9cd72bdfdc555cc3b02897f08b21d616b8 100644 (file)
@@ -7185,6 +7185,7 @@ void rtw89_chip_cfg_txpwr_ul_tb_offset(struct rtw89_dev *rtwdev,
 bool rtw89_ra_report_to_bitrate(struct rtw89_dev *rtwdev, u8 rpt_rate, u16 *bitrate);
 int rtw89_regd_setup(struct rtw89_dev *rtwdev);
 int rtw89_regd_init_hint(struct rtw89_dev *rtwdev);
+const char *rtw89_regd_get_string(enum rtw89_regulation_type regd);
 void rtw89_traffic_stats_init(struct rtw89_dev *rtwdev,
                              struct rtw89_traffic_stats *stats);
 int rtw89_wait_for_cond(struct rtw89_wait_info *wait, unsigned int cond);
index f2c5753fd38642b0b88495ec28888171c261d763..5105a192b15a8770781269cd867c3989bf8b2f0f 100644 (file)
@@ -854,11 +854,6 @@ static ssize_t __print_txpwr_map(struct rtw89_dev *rtwdev, char *buf, size_t buf
        return p - buf;
 }
 
-#define case_REGD(_regd) \
-       case RTW89_ ## _regd: \
-               p += scnprintf(p, end - p, #_regd "\n"); \
-               break
-
 static int __print_regd(struct rtw89_dev *rtwdev, char *buf, size_t bufsz,
                        const struct rtw89_chan *chan)
 {
@@ -866,33 +861,11 @@ static int __print_regd(struct rtw89_dev *rtwdev, char *buf, size_t bufsz,
        u8 band = chan->band_type;
        u8 regd = rtw89_regd_get(rtwdev, band);
 
-       switch (regd) {
-       default:
-               p += scnprintf(p, end - p, "UNKNOWN: %d\n", regd);
-               break;
-       case_REGD(WW);
-       case_REGD(ETSI);
-       case_REGD(FCC);
-       case_REGD(MKK);
-       case_REGD(NA);
-       case_REGD(IC);
-       case_REGD(KCC);
-       case_REGD(NCC);
-       case_REGD(CHILE);
-       case_REGD(ACMA);
-       case_REGD(MEXICO);
-       case_REGD(UKRAINE);
-       case_REGD(CN);
-       case_REGD(QATAR);
-       case_REGD(UK);
-       case_REGD(THAILAND);
-       }
+       p += scnprintf(p, end - p, "%s\n", rtw89_regd_get_string(regd));
 
        return p - buf;
 }
 
-#undef case_REGD
-
 struct dbgfs_txpwr_table {
        const struct txpwr_map *byr;
        const struct txpwr_map *lmt;
index 655323a796082b9008d0a067ba4c265393a5cfd1..49e9540f20491da80cbe34930d998b42225b8477 100644 (file)
@@ -588,6 +588,38 @@ bottom:
        kfree(sband);
 }
 
+#define RTW89_DEF_REGD_STR(regd) \
+       [RTW89_ ## regd] = #regd
+
+static const char * const rtw89_regd_string[] = {
+       RTW89_DEF_REGD_STR(WW),
+       RTW89_DEF_REGD_STR(ETSI),
+       RTW89_DEF_REGD_STR(FCC),
+       RTW89_DEF_REGD_STR(MKK),
+       RTW89_DEF_REGD_STR(NA),
+       RTW89_DEF_REGD_STR(IC),
+       RTW89_DEF_REGD_STR(KCC),
+       RTW89_DEF_REGD_STR(ACMA),
+       RTW89_DEF_REGD_STR(NCC),
+       RTW89_DEF_REGD_STR(MEXICO),
+       RTW89_DEF_REGD_STR(CHILE),
+       RTW89_DEF_REGD_STR(UKRAINE),
+       RTW89_DEF_REGD_STR(CN),
+       RTW89_DEF_REGD_STR(QATAR),
+       RTW89_DEF_REGD_STR(UK),
+       RTW89_DEF_REGD_STR(THAILAND),
+};
+
+static_assert(ARRAY_SIZE(rtw89_regd_string) == RTW89_REGD_NUM);
+
+const char *rtw89_regd_get_string(enum rtw89_regulation_type regd)
+{
+       if (regd < 0 || regd >= RTW89_REGD_NUM)
+               return "(unknown)";
+
+       return rtw89_regd_string[regd];
+}
+
 int rtw89_regd_setup(struct rtw89_dev *rtwdev)
 {
        struct rtw89_regulatory_info *regulatory = &rtwdev->regulatory;