Lines Matching +full:- +full:p

1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2 /* Copyright(c) 2019-2020 Realtek Corporation
109 iter_data->buf = buf; in rtw89_debugfs_iter_data_setup()
110 iter_data->bufsz = bufsz; in rtw89_debugfs_iter_data_setup()
111 iter_data->written_sz = 0; in rtw89_debugfs_iter_data_setup()
117 iter_data->buf = buf; in rtw89_debugfs_iter_data_next()
118 iter_data->bufsz = bufsz; in rtw89_debugfs_iter_data_next()
119 iter_data->written_sz += written_sz; in rtw89_debugfs_iter_data_next()
142 struct rtw89_dev *rtwdev = debugfs_priv->rtwdev; in rtw89_debugfs_file_read_helper()
145 n = debugfs_priv->cb_read(rtwdev, debugfs_priv, buf, bufsz); in rtw89_debugfs_file_read_helper()
154 struct rtw89_debugfs_priv *debugfs_priv = file->private_data; in rtw89_debugfs_file_read()
155 struct rtw89_debugfs_priv_opt *opt = &debugfs_priv->opt; in rtw89_debugfs_file_read()
156 struct rtw89_dev *rtwdev = debugfs_priv->rtwdev; in rtw89_debugfs_file_read()
157 size_t bufsz = opt->rsize ? opt->rsize : PAGE_SIZE; in rtw89_debugfs_file_read()
161 if (!debugfs_priv->rbuf) in rtw89_debugfs_file_read()
162 debugfs_priv->rbuf = devm_kzalloc(rtwdev->dev, bufsz, GFP_KERNEL); in rtw89_debugfs_file_read()
164 buf = debugfs_priv->rbuf; in rtw89_debugfs_file_read()
166 return -ENOMEM; in rtw89_debugfs_file_read()
169 n = debugfs_priv->rused; in rtw89_debugfs_file_read()
173 if (opt->rlock) { in rtw89_debugfs_file_read()
174 n = wiphy_locked_debugfs_read(rtwdev->hw->wiphy, file, buf, bufsz, in rtw89_debugfs_file_read()
178 debugfs_priv->rused = n; in rtw89_debugfs_file_read()
183 n = rtw89_debugfs_file_read_helper(rtwdev->hw->wiphy, file, buf, bufsz, in rtw89_debugfs_file_read()
185 debugfs_priv->rused = n; in rtw89_debugfs_file_read()
195 struct rtw89_dev *rtwdev = debugfs_priv->rtwdev; in rtw89_debugfs_file_write_helper()
197 return debugfs_priv->cb_write(rtwdev, debugfs_priv, buf, count); in rtw89_debugfs_file_write_helper()
204 struct rtw89_debugfs_priv *debugfs_priv = file->private_data; in rtw89_debugfs_file_write()
205 struct rtw89_debugfs_priv_opt *opt = &debugfs_priv->opt; in rtw89_debugfs_file_write()
206 struct rtw89_dev *rtwdev = debugfs_priv->rtwdev; in rtw89_debugfs_file_write()
211 return -ENOMEM; in rtw89_debugfs_file_write()
213 if (opt->wlock) { in rtw89_debugfs_file_write()
214 n = wiphy_locked_debugfs_write(rtwdev->hw->wiphy, in rtw89_debugfs_file_write()
223 return -EFAULT; in rtw89_debugfs_file_write()
227 return debugfs_priv->cb_write(rtwdev, debugfs_priv, buf, count); in rtw89_debugfs_file_write()
257 return -EINVAL; in rtw89_debug_priv_read_reg_select()
260 debugfs_priv->read_reg.addr = addr; in rtw89_debug_priv_read_reg_select()
261 debugfs_priv->read_reg.len = len; in rtw89_debug_priv_read_reg_select()
273 char *p = buf, *end = buf + bufsz; in rtw89_debug_priv_read_reg_get() local
277 len = debugfs_priv->read_reg.len; in rtw89_debug_priv_read_reg_get()
278 addr = debugfs_priv->read_reg.addr; in rtw89_debug_priv_read_reg_get()
295 return -EINVAL; in rtw89_debug_priv_read_reg_get()
298 p += scnprintf(p, end - p, "get %d bytes at 0x%08x=0x%08x\n", len, in rtw89_debug_priv_read_reg_get()
301 return p - buf; in rtw89_debug_priv_read_reg_get()
307 p += scnprintf(p, end - p, "%08xh : ", 0x18600000 + addr); in rtw89_debug_priv_read_reg_get()
310 p += scnprintf(p, end - p, "%08x ", data); in rtw89_debug_priv_read_reg_get()
312 p += scnprintf(p, end - p, "\n"); in rtw89_debug_priv_read_reg_get()
315 return p - buf; in rtw89_debug_priv_read_reg_get()
329 return -EINVAL; in rtw89_debug_priv_write_reg_set()
365 return -EINVAL; in rtw89_debug_priv_read_rf_select()
368 if (path >= rtwdev->chip->rf_path_num) { in rtw89_debug_priv_read_rf_select()
370 return -EINVAL; in rtw89_debug_priv_read_rf_select()
372 debugfs_priv->read_rf.addr = addr; in rtw89_debug_priv_read_rf_select()
373 debugfs_priv->read_rf.mask = mask; in rtw89_debug_priv_read_rf_select()
374 debugfs_priv->read_rf.path = path; in rtw89_debug_priv_read_rf_select()
386 char *p = buf, *end = buf + bufsz; in rtw89_debug_priv_read_rf_get() local
390 addr = debugfs_priv->read_rf.addr; in rtw89_debug_priv_read_rf_get()
391 mask = debugfs_priv->read_rf.mask; in rtw89_debug_priv_read_rf_get()
392 path = debugfs_priv->read_rf.path; in rtw89_debug_priv_read_rf_get()
396 p += scnprintf(p, end - p, "path %d, rf register 0x%08x=0x%08x\n", in rtw89_debug_priv_read_rf_get()
399 return p - buf; in rtw89_debug_priv_read_rf_get()
414 return -EINVAL; in rtw89_debug_priv_write_rf_set()
417 if (path >= rtwdev->chip->rf_path_num) { in rtw89_debug_priv_write_rf_set()
419 return -EINVAL; in rtw89_debug_priv_write_rf_set()
434 const struct rtw89_chip_info *chip = rtwdev->chip; in rtw89_debug_priv_rf_reg_dump_get()
435 char *p = buf, *end = buf + bufsz; in rtw89_debug_priv_rf_reg_dump_get() local
439 for (path = 0; path < chip->rf_path_num; path++) { in rtw89_debug_priv_rf_reg_dump_get()
440 p += scnprintf(p, end - p, "RF path %d:\n\n", path); in rtw89_debug_priv_rf_reg_dump_get()
442 p += scnprintf(p, end - p, "0x%08x: ", addr); in rtw89_debug_priv_rf_reg_dump_get()
446 p += scnprintf(p, end - p, "0x%05x ", data); in rtw89_debug_priv_rf_reg_dump_get()
448 p += scnprintf(p, end - p, "\n"); in rtw89_debug_priv_rf_reg_dump_get()
450 p += scnprintf(p, end - p, "\n"); in rtw89_debug_priv_rf_reg_dump_get()
453 return p - buf; in rtw89_debug_priv_rf_reg_dump_get()
480 { .len = 2, .txt = _t "\t- " _e0 " " _e1 }
483 { .len = 4, .txt = _t "\t- " _e0 " " _e1 " " _e2 " " _e3 }
486 { .len = 8, .txt = _t "\t- " \
511 (R_AX_PWR_BY_RATE_MAX - R_AX_PWR_BY_RATE + 4));
571 (R_AX_PWR_LMT_MAX - R_AX_PWR_LMT + 4));
603 (R_AX_PWR_RU_LMT_MAX - R_AX_PWR_RU_LMT + 4));
787 char *p = buf, *end = buf + bufsz; in __print_txpwr_ent() local
792 if (ent->nested) { in __print_txpwr_ent()
793 for (cnt = 0, i = 0; i < ent->len; i++, cnt += eaten) in __print_txpwr_ent()
794 p += __print_txpwr_ent(p, end - p, ent->ptr + i, bufp, in __print_txpwr_ent()
800 switch (ent->len) { in __print_txpwr_ent()
802 p += scnprintf(p, end - p, "\t<< %s >>\n", ent->txt); in __print_txpwr_ent()
807 p += scnprintf(p, end - p, fmt, ent->txt, bufp[cur], in __print_txpwr_ent()
813 p += scnprintf(p, end - p, fmt, ent->txt, bufp[cur], in __print_txpwr_ent()
820 p += scnprintf(p, end - p, fmt, ent->txt, bufp[cur], in __print_txpwr_ent()
831 return p - buf; in __print_txpwr_ent()
837 u8 fct = rtwdev->chip->txpwr_factor_mac; in __print_txpwr_map()
838 u8 path_num = rtwdev->chip->rf_path_num; in __print_txpwr_map()
839 char *p = buf, *end = buf + bufsz; in __print_txpwr_map() local
847 bufp = vzalloc(map->addr_to - map->addr_from + 4); in __print_txpwr_map()
849 return -ENOMEM; in __print_txpwr_map()
852 max_valid_addr = map->addr_to_1ss; in __print_txpwr_map()
854 max_valid_addr = map->addr_to; in __print_txpwr_map()
857 return -EOPNOTSUPP; in __print_txpwr_map()
859 for (addr = map->addr_from; addr <= max_valid_addr; addr += 4) { in __print_txpwr_map()
864 cur = addr - map->addr_from; in __print_txpwr_map()
872 for (cur = 0, i = 0; i < map->size; i++, cur += eaten) in __print_txpwr_map()
873 p += __print_txpwr_ent(p, end - p, &map->ent[i], bufp, cur, &eaten); in __print_txpwr_map()
876 return p - buf; in __print_txpwr_map()
882 const struct rtw89_regulatory_info *regulatory = &rtwdev->regulatory; in __print_regd()
883 char *p = buf, *end = buf + bufsz; in __print_regd() local
884 u8 band = chan->band_type; in __print_regd()
887 p += scnprintf(p, end - p, "%s\n", rtw89_regd_get_string(regd)); in __print_regd()
888 p += scnprintf(p, end - p, "\t(txpwr UK follow ETSI: %s)\n", in __print_regd()
889 str_yes_no(regulatory->txpwr_uk_follow_etsi)); in __print_regd()
891 return p - buf; in __print_regd()
922 const struct rtw89_regulatory_info *regulatory = &rtwdev->regulatory; in rtw89_debug_priv_txpwr_table_get_regd()
923 const struct rtw89_reg_6ghz_tpe *tpe6 = &regulatory->reg_6ghz_tpe; in rtw89_debug_priv_txpwr_table_get_regd()
924 char *p = buf, *end = buf + bufsz; in rtw89_debug_priv_txpwr_table_get_regd() local
926 p += scnprintf(p, end - p, "[Chanctx] band %u, ch %u, bw %u\n", in rtw89_debug_priv_txpwr_table_get_regd()
927 chan->band_type, chan->channel, chan->band_width); in rtw89_debug_priv_txpwr_table_get_regd()
929 p += scnprintf(p, end - p, "[Regulatory] "); in rtw89_debug_priv_txpwr_table_get_regd()
930 p += __print_regd(rtwdev, p, end - p, chan); in rtw89_debug_priv_txpwr_table_get_regd()
932 if (chan->band_type == RTW89_BAND_6G) { in rtw89_debug_priv_txpwr_table_get_regd()
933 p += scnprintf(p, end - p, "[reg6_pwr_type] %u\n", in rtw89_debug_priv_txpwr_table_get_regd()
934 regulatory->reg_6ghz_power); in rtw89_debug_priv_txpwr_table_get_regd()
936 if (tpe6->valid) in rtw89_debug_priv_txpwr_table_get_regd()
937 p += scnprintf(p, end - p, "[TPE] %d dBm\n", in rtw89_debug_priv_txpwr_table_get_regd()
938 tpe6->constraint); in rtw89_debug_priv_txpwr_table_get_regd()
941 return p - buf; in rtw89_debug_priv_txpwr_table_get_regd()
949 enum rtw89_chip_gen chip_gen = rtwdev->chip->chip_gen; in rtw89_debug_priv_txpwr_table_get()
953 char *p = buf, *end = buf + bufsz; in rtw89_debug_priv_txpwr_table_get() local
956 lockdep_assert_wiphy(rtwdev->hw->wiphy); in rtw89_debug_priv_txpwr_table_get()
960 sar_parm.center_freq = chan->freq; in rtw89_debug_priv_txpwr_table_get()
962 p += rtw89_debug_priv_txpwr_table_get_regd(rtwdev, p, end - p, chan); in rtw89_debug_priv_txpwr_table_get()
964 p += scnprintf(p, end - p, "[SAR]\n"); in rtw89_debug_priv_txpwr_table_get()
965 p += rtw89_print_sar(rtwdev, p, end - p, &sar_parm); in rtw89_debug_priv_txpwr_table_get()
967 p += scnprintf(p, end - p, "[TAS]\n"); in rtw89_debug_priv_txpwr_table_get()
968 p += rtw89_print_tas(rtwdev, p, end - p); in rtw89_debug_priv_txpwr_table_get()
970 p += scnprintf(p, end - p, "[DAG]\n"); in rtw89_debug_priv_txpwr_table_get()
971 p += rtw89_print_ant_gain(rtwdev, p, end - p, chan); in rtw89_debug_priv_txpwr_table_get()
975 return -EOPNOTSUPP; in rtw89_debug_priv_txpwr_table_get()
977 p += scnprintf(p, end - p, "\n[TX power byrate]\n"); in rtw89_debug_priv_txpwr_table_get()
978 n = __print_txpwr_map(rtwdev, p, end - p, tbl->byr); in rtw89_debug_priv_txpwr_table_get()
981 p += n; in rtw89_debug_priv_txpwr_table_get()
983 p += scnprintf(p, end - p, "\n[TX power limit]\n"); in rtw89_debug_priv_txpwr_table_get()
984 n = __print_txpwr_map(rtwdev, p, end - p, tbl->lmt); in rtw89_debug_priv_txpwr_table_get()
987 p += n; in rtw89_debug_priv_txpwr_table_get()
989 p += scnprintf(p, end - p, "\n[TX power limit_ru]\n"); in rtw89_debug_priv_txpwr_table_get()
990 n = __print_txpwr_map(rtwdev, p, end - p, tbl->lmt_ru); in rtw89_debug_priv_txpwr_table_get()
993 p += n; in rtw89_debug_priv_txpwr_table_get()
995 return p - buf; in rtw89_debug_priv_txpwr_table_get()
1003 const struct rtw89_chip_info *chip = rtwdev->chip; in rtw89_debug_priv_mac_reg_dump_select()
1013 return -EINVAL; in rtw89_debug_priv_mac_reg_dump_select()
1016 if (sel == RTW89_DBG_SEL_MAC_30 && chip->chip_id != RTL8852C) { in rtw89_debug_priv_mac_reg_dump_select()
1018 chip->chip_id); in rtw89_debug_priv_mac_reg_dump_select()
1019 return -EINVAL; in rtw89_debug_priv_mac_reg_dump_select()
1022 debugfs_priv->cb_data = sel; in rtw89_debug_priv_mac_reg_dump_select()
1023 rtw89_info(rtwdev, "select mac page dump %d\n", debugfs_priv->cb_data); in rtw89_debug_priv_mac_reg_dump_select()
1035 enum rtw89_debug_mac_reg_sel reg_sel = debugfs_priv->cb_data; in rtw89_debug_priv_mac_reg_dump_get()
1036 char *p = buf, *end = buf + bufsz; in rtw89_debug_priv_mac_reg_dump_get() local
1043 p += scnprintf(p, end - p, "Debug selected MAC page 0x00\n"); in rtw89_debug_priv_mac_reg_dump_get()
1048 p += scnprintf(p, end - p, "Debug selected MAC page 0x30\n"); in rtw89_debug_priv_mac_reg_dump_get()
1053 p += scnprintf(p, end - p, "Debug selected MAC page 0x40\n"); in rtw89_debug_priv_mac_reg_dump_get()
1058 p += scnprintf(p, end - p, "Debug selected MAC page 0x80\n"); in rtw89_debug_priv_mac_reg_dump_get()
1063 p += scnprintf(p, end - p, "Debug selected MAC page 0xc0\n"); in rtw89_debug_priv_mac_reg_dump_get()
1068 p += scnprintf(p, end - p, "Debug selected MAC page 0xe0\n"); in rtw89_debug_priv_mac_reg_dump_get()
1073 p += scnprintf(p, end - p, "Debug selected BB register\n"); in rtw89_debug_priv_mac_reg_dump_get()
1078 p += scnprintf(p, end - p, "Debug selected IQK register\n"); in rtw89_debug_priv_mac_reg_dump_get()
1083 p += scnprintf(p, end - p, "Debug selected RFC register\n"); in rtw89_debug_priv_mac_reg_dump_get()
1088 p += scnprintf(p, end - p, "Selected invalid register page\n"); in rtw89_debug_priv_mac_reg_dump_get()
1089 return -EINVAL; in rtw89_debug_priv_mac_reg_dump_get()
1095 p += scnprintf(p, end - p, "%08xh : ", 0x18600000 + j); in rtw89_debug_priv_mac_reg_dump_get()
1098 p += scnprintf(p, end - p, "%08x ", val); in rtw89_debug_priv_mac_reg_dump_get()
1100 p += scnprintf(p, end - p, "\n"); in rtw89_debug_priv_mac_reg_dump_get()
1104 return p - buf; in rtw89_debug_priv_mac_reg_dump_get()
1118 return -EINVAL; in rtw89_debug_priv_mac_mem_dump_select()
1121 debugfs_priv->mac_mem.sel = sel; in rtw89_debug_priv_mac_mem_dump_select()
1122 debugfs_priv->mac_mem.start = start_addr; in rtw89_debug_priv_mac_mem_dump_select()
1123 debugfs_priv->mac_mem.len = len; in rtw89_debug_priv_mac_mem_dump_select()
1135 const struct rtw89_mac_gen_def *mac = rtwdev->chip->mac_def; in rtw89_debug_dump_mac_mem()
1136 u32 filter_model_addr = mac->filter_model_addr; in rtw89_debug_dump_mac_mem()
1137 u32 indir_access_addr = mac->indir_access_addr; in rtw89_debug_dump_mac_mem()
1138 u32 mem_page_size = mac->mem_page_size; in rtw89_debug_dump_mac_mem()
1140 char *p = buf, *end = buf + bufsz; in rtw89_debug_dump_mac_mem() local
1149 base_addr = mac->mem_base_addrs[sel]; in rtw89_debug_dump_mac_mem()
1157 p += scnprintf(p, end - p, "%08xh:", i); in rtw89_debug_dump_mac_mem()
1162 p += scnprintf(p, end - p, " %08x", val); in rtw89_debug_dump_mac_mem()
1163 remain -= 4; in rtw89_debug_dump_mac_mem()
1165 p += scnprintf(p, end - p, "\n"); in rtw89_debug_dump_mac_mem()
1170 return p - buf; in rtw89_debug_dump_mac_mem()
1178 char *p = buf, *end = buf + bufsz; in rtw89_debug_priv_mac_mem_dump_get() local
1181 lockdep_assert_wiphy(rtwdev->hw->wiphy); in rtw89_debug_priv_mac_mem_dump_get()
1183 if (debugfs_priv->mac_mem.sel >= RTW89_MAC_MEM_NUM) in rtw89_debug_priv_mac_mem_dump_get()
1184 return -ENOENT; in rtw89_debug_priv_mac_mem_dump_get()
1186 if (rtwdev->chip->chip_id == RTL8852C) { in rtw89_debug_priv_mac_mem_dump_get()
1187 switch (debugfs_priv->mac_mem.sel) { in rtw89_debug_priv_mac_mem_dump_get()
1202 p += rtw89_debug_dump_mac_mem(rtwdev, p, end - p, in rtw89_debug_priv_mac_mem_dump_get()
1203 debugfs_priv->mac_mem.sel, in rtw89_debug_priv_mac_mem_dump_get()
1204 debugfs_priv->mac_mem.start, in rtw89_debug_priv_mac_mem_dump_get()
1205 debugfs_priv->mac_mem.len); in rtw89_debug_priv_mac_mem_dump_get()
1209 return p - buf; in rtw89_debug_priv_mac_mem_dump_get()
1224 return -EINVAL; in rtw89_debug_priv_mac_dbg_port_dump_select()
1230 debugfs_priv->dbgpkg_en.ss_dbg = enable; in rtw89_debug_priv_mac_dbg_port_dump_select()
1233 debugfs_priv->dbgpkg_en.dle_dbg = enable; in rtw89_debug_priv_mac_dbg_port_dump_select()
1236 debugfs_priv->dbgpkg_en.dmac_dbg = enable; in rtw89_debug_priv_mac_dbg_port_dump_select()
1239 debugfs_priv->dbgpkg_en.cmac_dbg = enable; in rtw89_debug_priv_mac_dbg_port_dump_select()
1242 debugfs_priv->dbgpkg_en.dbg_port = enable; in rtw89_debug_priv_mac_dbg_port_dump_select()
1246 return -EINVAL; in rtw89_debug_priv_mac_dbg_port_dump_select()
1301 __p += scnprintf(__p, __end - __p, "[%s] freepg head: %d\n", \ in rtw89_debug_mac_dump_dle_dbg()
1303 __p += scnprintf(__p, __end - __p, "[%s] freepg tail: %d\n", \ in rtw89_debug_mac_dump_dle_dbg()
1305 __p += scnprintf(__p, __end - __p, "[%s] pubpg num : %d\n", \ in rtw89_debug_mac_dump_dle_dbg()
1314 __p += scnprintf(__p, __end - __p, "[%s][%s] rsv_pgnum: %d\n", \ in rtw89_debug_mac_dump_dle_dbg()
1316 __p += scnprintf(__p, __end - __p, "[%s][%s] use_pgnum: %d\n", \ in rtw89_debug_mac_dump_dle_dbg()
1319 char *p = buf, *end = buf + bufsz; in rtw89_debug_mac_dump_dle_dbg() local
1327 p += scnprintf(p, end - p, "[DLE] : DMAC not enabled\n"); in rtw89_debug_mac_dump_dle_dbg()
1331 DLE_DFI_FREE_PAGE_DUMP(p, end, WDE); in rtw89_debug_mac_dump_dle_dbg()
1332 DLE_DFI_FREE_PAGE_DUMP(p, end, PLE); in rtw89_debug_mac_dump_dle_dbg()
1335 case_QUOTA(p, end, WDE, HOST_IF); in rtw89_debug_mac_dump_dle_dbg()
1336 case_QUOTA(p, end, WDE, WLAN_CPU); in rtw89_debug_mac_dump_dle_dbg()
1337 case_QUOTA(p, end, WDE, DATA_CPU); in rtw89_debug_mac_dump_dle_dbg()
1338 case_QUOTA(p, end, WDE, PKTIN); in rtw89_debug_mac_dump_dle_dbg()
1339 case_QUOTA(p, end, WDE, CPUIO); in rtw89_debug_mac_dump_dle_dbg()
1344 case_QUOTA(p, end, PLE, B0_TXPL); in rtw89_debug_mac_dump_dle_dbg()
1345 case_QUOTA(p, end, PLE, B1_TXPL); in rtw89_debug_mac_dump_dle_dbg()
1346 case_QUOTA(p, end, PLE, C2H); in rtw89_debug_mac_dump_dle_dbg()
1347 case_QUOTA(p, end, PLE, H2C); in rtw89_debug_mac_dump_dle_dbg()
1348 case_QUOTA(p, end, PLE, WLAN_CPU); in rtw89_debug_mac_dump_dle_dbg()
1349 case_QUOTA(p, end, PLE, MPDU); in rtw89_debug_mac_dump_dle_dbg()
1350 case_QUOTA(p, end, PLE, CMAC0_RX); in rtw89_debug_mac_dump_dle_dbg()
1351 case_QUOTA(p, end, PLE, CMAC1_RX); in rtw89_debug_mac_dump_dle_dbg()
1352 case_QUOTA(p, end, PLE, CMAC1_BBRPT); in rtw89_debug_mac_dump_dle_dbg()
1353 case_QUOTA(p, end, PLE, WDRLS); in rtw89_debug_mac_dump_dle_dbg()
1354 case_QUOTA(p, end, PLE, CPUIO); in rtw89_debug_mac_dump_dle_dbg()
1359 return p - buf; in rtw89_debug_mac_dump_dle_dbg()
1369 const struct rtw89_chip_info *chip = rtwdev->chip; in rtw89_debug_mac_dump_dmac_dbg()
1370 char *p = buf, *end = buf + bufsz; in rtw89_debug_mac_dump_dmac_dbg() local
1376 p += scnprintf(p, end - p, "[DMAC] : DMAC not enabled\n"); in rtw89_debug_mac_dump_dmac_dbg()
1381 p += scnprintf(p, end - p, "R_AX_DMAC_ERR_ISR=0x%08x\n", dmac_err); in rtw89_debug_mac_dump_dmac_dbg()
1382 p += scnprintf(p, end - p, "R_AX_DMAC_ERR_IMR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1386 p += scnprintf(p, end - p, "R_AX_WDE_ERR_FLAG_CFG=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1388 p += scnprintf(p, end - p, "R_AX_PLE_ERR_FLAG_CFG=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1390 if (chip->chip_id == RTL8852C) { in rtw89_debug_mac_dump_dmac_dbg()
1391 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1394 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1397 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1400 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1407 p += scnprintf(p, end - p, "R_AX_WDRLS_ERR_IMR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1409 p += scnprintf(p, end - p, "R_AX_WDRLS_ERR_ISR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1411 if (chip->chip_id == RTL8852C) in rtw89_debug_mac_dump_dmac_dbg()
1412 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1416 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1422 if (chip->chip_id == RTL8852C) { in rtw89_debug_mac_dump_dmac_dbg()
1423 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1426 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1429 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1432 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1435 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1438 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1441 p += scnprintf(p, end - p, "R_AX_SEC_DEBUG1=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1443 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1446 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1459 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1465 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1468 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1471 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1474 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1477 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1480 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1483 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1486 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1489 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1492 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1499 p += scnprintf(p, end - p, "R_AX_MPDU_TX_ERR_IMR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1501 p += scnprintf(p, end - p, "R_AX_MPDU_TX_ERR_ISR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1503 p += scnprintf(p, end - p, "R_AX_MPDU_RX_ERR_IMR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1505 p += scnprintf(p, end - p, "R_AX_MPDU_RX_ERR_ISR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1510 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1513 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1519 p += scnprintf(p, end - p, "R_AX_WDE_ERR_IMR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1521 p += scnprintf(p, end - p, "R_AX_WDE_ERR_ISR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1523 p += scnprintf(p, end - p, "R_AX_PLE_ERR_IMR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1525 p += scnprintf(p, end - p, "R_AX_PLE_ERR_FLAG_ISR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1530 if (chip->chip_id == RTL8852C) { in rtw89_debug_mac_dump_dmac_dbg()
1531 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1534 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1537 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1540 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1544 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1547 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1554 p += scnprintf(p, end - p, "R_AX_WDE_ERR_IMR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1556 p += scnprintf(p, end - p, "R_AX_WDE_ERR_ISR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1558 p += scnprintf(p, end - p, "R_AX_PLE_ERR_IMR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1560 p += scnprintf(p, end - p, "R_AX_PLE_ERR_FLAG_ISR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1562 p += scnprintf(p, end - p, "R_AX_WD_CPUQ_OP_0=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1564 p += scnprintf(p, end - p, "R_AX_WD_CPUQ_OP_1=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1566 p += scnprintf(p, end - p, "R_AX_WD_CPUQ_OP_2=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1568 p += scnprintf(p, end - p, "R_AX_WD_CPUQ_OP_STATUS=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1570 p += scnprintf(p, end - p, "R_AX_PL_CPUQ_OP_0=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1572 p += scnprintf(p, end - p, "R_AX_PL_CPUQ_OP_1=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1574 p += scnprintf(p, end - p, "R_AX_PL_CPUQ_OP_2=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1576 p += scnprintf(p, end - p, "R_AX_PL_CPUQ_OP_STATUS=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1578 if (chip->chip_id == RTL8852C) { in rtw89_debug_mac_dump_dmac_dbg()
1579 p += scnprintf(p, end - p, "R_AX_RX_CTRL0=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1581 p += scnprintf(p, end - p, "R_AX_RX_CTRL1=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1583 p += scnprintf(p, end - p, "R_AX_RX_CTRL2=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1586 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1589 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1592 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1599 p += scnprintf(p, end - p, "R_AX_PKTIN_ERR_IMR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1601 p += scnprintf(p, end - p, "R_AX_PKTIN_ERR_ISR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1606 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1609 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1612 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1615 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1618 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1621 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1627 if (chip->chip_id == RTL8852C) { in rtw89_debug_mac_dump_dmac_dbg()
1628 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1631 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1634 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1637 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1640 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1643 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1647 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1650 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1653 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1656 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1659 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_dmac_dbg()
1665 if (dmac_err & B_AX_HAXIDMA_ERR_FLAG && chip->chip_id == RTL8852C) { in rtw89_debug_mac_dump_dmac_dbg()
1666 p += scnprintf(p, end - p, "R_AX_HAXIDMA_ERR_IMR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1668 p += scnprintf(p, end - p, "R_AX_HAXIDMA_ERR_ISR=0x%08x\n", in rtw89_debug_mac_dump_dmac_dbg()
1673 return p - buf; in rtw89_debug_mac_dump_dmac_dbg()
1680 const struct rtw89_chip_info *chip = rtwdev->chip; in rtw89_debug_mac_dump_cmac_err()
1681 char *p = buf, *end = buf + bufsz; in rtw89_debug_mac_dump_cmac_err() local
1689 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_cmac_err()
1692 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_cmac_err()
1701 p += scnprintf(p, end - p, "R_AX_CMAC_ERR_ISR [%d]=0x%08x\n", band, in rtw89_debug_mac_dump_cmac_err()
1703 p += scnprintf(p, end - p, "R_AX_CMAC_FUNC_EN [%d]=0x%08x\n", band, in rtw89_debug_mac_dump_cmac_err()
1705 p += scnprintf(p, end - p, "R_AX_CK_EN [%d]=0x%08x\n", band, in rtw89_debug_mac_dump_cmac_err()
1709 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_cmac_err()
1712 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_cmac_err()
1718 p += scnprintf(p, end - p, "R_AX_PTCL_IMR0 [%d]=0x%08x\n", in rtw89_debug_mac_dump_cmac_err()
1721 p += scnprintf(p, end - p, "R_AX_PTCL_ISR0 [%d]=0x%08x\n", in rtw89_debug_mac_dump_cmac_err()
1727 if (chip->chip_id == RTL8852C) { in rtw89_debug_mac_dump_cmac_err()
1728 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_cmac_err()
1731 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_cmac_err()
1736 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_cmac_err()
1743 if (chip->chip_id == RTL8852C) { in rtw89_debug_mac_dump_cmac_err()
1744 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_cmac_err()
1748 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_cmac_err()
1753 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_cmac_err()
1761 p += scnprintf(p, end - p, "R_AX_TXPWR_IMR [%d]=0x%08x\n", in rtw89_debug_mac_dump_cmac_err()
1764 p += scnprintf(p, end - p, "R_AX_TXPWR_ISR [%d]=0x%08x\n", in rtw89_debug_mac_dump_cmac_err()
1770 if (chip->chip_id == RTL8852C) { in rtw89_debug_mac_dump_cmac_err()
1771 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_cmac_err()
1776 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_cmac_err()
1782 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_cmac_err()
1788 p += scnprintf(p, end - p, in rtw89_debug_mac_dump_cmac_err()
1793 p += scnprintf(p, end - p, "R_AX_CMAC_ERR_IMR [%d]=0x%08x\n", band, in rtw89_debug_mac_dump_cmac_err()
1797 return p - buf; in rtw89_debug_mac_dump_cmac_err()
1803 char *p = buf, *end = buf + bufsz; in rtw89_debug_mac_dump_cmac_dbg() local
1805 p += rtw89_debug_mac_dump_cmac_err(rtwdev, p, end - p, RTW89_MAC_0); in rtw89_debug_mac_dump_cmac_dbg()
1806 if (rtwdev->dbcc_en) in rtw89_debug_mac_dump_cmac_dbg()
1807 p += rtw89_debug_mac_dump_cmac_err(rtwdev, p, end - p, RTW89_MAC_1); in rtw89_debug_mac_dump_cmac_dbg()
1809 return p - buf; in rtw89_debug_mac_dump_cmac_dbg()
2620 char *p = buf, *end = buf + bufsz; in rtw89_debug_mac_dbg_port_sel() local
2632 p += scnprintf(p, end - p, "Enable PTCL C0 dbgport.\n"); in rtw89_debug_mac_dbg_port_sel()
2639 p += scnprintf(p, end - p, "Enable PTCL C1 dbgport.\n"); in rtw89_debug_mac_dbg_port_sel()
2646 p += scnprintf(p, end - p, "Enable SCH C0 dbgport.\n"); in rtw89_debug_mac_dbg_port_sel()
2653 p += scnprintf(p, end - p, "Enable SCH C1 dbgport.\n"); in rtw89_debug_mac_dbg_port_sel()
2670 p += scnprintf(p, end - p, "Enable TMAC C0 dbgport.\n"); in rtw89_debug_mac_dbg_port_sel()
2687 p += scnprintf(p, end - p, "Enable TMAC C1 dbgport.\n"); in rtw89_debug_mac_dbg_port_sel()
2709 p += scnprintf(p, end - p, "Enable RMAC C0 dbgport.\n"); in rtw89_debug_mac_dbg_port_sel()
2731 p += scnprintf(p, end - p, "Enable RMAC C1 dbgport.\n"); in rtw89_debug_mac_dbg_port_sel()
2735 p += scnprintf(p, end - p, "Enable RMAC state C0 dbgport.\n"); in rtw89_debug_mac_dbg_port_sel()
2739 p += scnprintf(p, end - p, "Enable RMAC state C1 dbgport.\n"); in rtw89_debug_mac_dbg_port_sel()
2743 p += scnprintf(p, end - p, "Enable RMAC PLCP C0 dbgport.\n"); in rtw89_debug_mac_dbg_port_sel()
2747 p += scnprintf(p, end - p, "Enable RMAC PLCP C1 dbgport.\n"); in rtw89_debug_mac_dbg_port_sel()
2759 p += scnprintf(p, end - p, "Enable TRXPTCL C0 dbgport.\n"); in rtw89_debug_mac_dbg_port_sel()
2771 p += scnprintf(p, end - p, "Enable TRXPTCL C1 dbgport.\n"); in rtw89_debug_mac_dbg_port_sel()
2778 p += scnprintf(p, end - p, "Enable tx infol dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2785 p += scnprintf(p, end - p, "Enable tx infoh dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2792 p += scnprintf(p, end - p, "Enable tx infol dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2799 p += scnprintf(p, end - p, "Enable tx infoh dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2806 p += scnprintf(p, end - p, "Enable tx tf infol dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2813 p += scnprintf(p, end - p, "Enable tx tf infoh dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2820 p += scnprintf(p, end - p, "Enable tx tf infol dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2827 p += scnprintf(p, end - p, "Enable tx tf infoh dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2831 p += scnprintf(p, end - p, "Enable wde bufmgn freepg dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2835 p += scnprintf(p, end - p, "Enable wde bufmgn quota dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2839 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
2844 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
2849 p += scnprintf(p, end - p, "Enable wde quemgn prepkt dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2853 p += scnprintf(p, end - p, "Enable wde quemgn nxtpkt dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2857 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
2862 p += scnprintf(p, end - p, "Enable wde quemgn qempty dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2866 p += scnprintf(p, end - p, "Enable ple bufmgn freepg dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2870 p += scnprintf(p, end - p, "Enable ple bufmgn quota dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2874 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
2879 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
2884 p += scnprintf(p, end - p, "Enable ple quemgn prepkt dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2888 p += scnprintf(p, end - p, "Enable ple quemgn nxtpkt dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2892 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
2897 p += scnprintf(p, end - p, "Enable ple quemgn qempty dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2901 p += scnprintf(p, end - p, "Enable pktinfo dump.\n"); in rtw89_debug_mac_dbg_port_sel()
2915 index = sel - RTW89_DBG_PORT_SEL_DSPT_HDT_TX0; in rtw89_debug_mac_dbg_port_sel()
2916 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2918 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2920 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
2925 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2927 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2929 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
2934 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2936 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2938 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
2943 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2945 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2947 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
2955 index = sel + 9 - RTW89_DBG_PORT_SEL_DSPT_HDT_TX9; in rtw89_debug_mac_dbg_port_sel()
2956 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2958 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2960 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
2965 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2967 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2969 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
2974 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2976 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2978 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
2983 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2985 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2987 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
2992 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2994 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
2996 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3001 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3003 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3005 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3013 index = sel + 5 - RTW89_DBG_PORT_SEL_DSPT_CDT_TX5; in rtw89_debug_mac_dbg_port_sel()
3014 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3016 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3018 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3023 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3025 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3027 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3034 index = sel + 0xA - RTW89_DBG_PORT_SEL_DSPT_CDT_TXA; in rtw89_debug_mac_dbg_port_sel()
3035 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3037 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3039 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3044 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3046 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3048 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3054 index = sel + 1 - RTW89_DBG_PORT_SEL_DSPT_HDT_RX1; in rtw89_debug_mac_dbg_port_sel()
3055 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3057 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3059 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3064 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3066 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3068 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3073 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3075 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3077 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3082 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3084 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3086 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3091 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3093 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3095 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3101 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3103 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3105 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3110 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3112 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3114 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3119 rtw89_write8_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3121 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3126 rtw89_write8_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3128 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3133 rtw89_write8_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3135 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3140 rtw89_write8_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3142 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3147 rtw89_write8_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3149 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3154 rtw89_write8_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_sel()
3156 p += scnprintf(p, end - p, in rtw89_debug_mac_dbg_port_sel()
3165 p += scnprintf(p, end - p, "Enable pcie txdma dump.\n"); in rtw89_debug_mac_dbg_port_sel()
3173 p += scnprintf(p, end - p, "Enable pcie rxdma dump.\n"); in rtw89_debug_mac_dbg_port_sel()
3181 p += scnprintf(p, end - p, "Enable pcie cvt dump.\n"); in rtw89_debug_mac_dbg_port_sel()
3189 p += scnprintf(p, end - p, "Enable pcie cxpl dump.\n"); in rtw89_debug_mac_dbg_port_sel()
3197 p += scnprintf(p, end - p, "Enable pcie io dump.\n"); in rtw89_debug_mac_dbg_port_sel()
3205 p += scnprintf(p, end - p, "Enable pcie misc dump.\n"); in rtw89_debug_mac_dbg_port_sel()
3213 p += scnprintf(p, end - p, "Enable pcie misc2 dump.\n"); in rtw89_debug_mac_dbg_port_sel()
3216 p += scnprintf(p, end - p, "Dbg port select err\n"); in rtw89_debug_mac_dbg_port_sel()
3222 return p - buf; in rtw89_debug_mac_dbg_port_sel()
3227 if (rtwdev->hci.type != RTW89_HCI_TYPE_PCIE && in is_dbg_port_valid()
3259 char *p = buf, *end = buf + bufsz; in rtw89_debug_mac_dbg_port_dump() local
3265 p += rtw89_debug_mac_dbg_port_sel(rtwdev, p, end - p, sel, &info); in rtw89_debug_mac_dbg_port_dump()
3274 p += scnprintf(p, end - p, "Dump debug port " #__sel ":\n"); \ in rtw89_debug_mac_dbg_port_dump()
3370 p += scnprintf(p, end - p, "Sel addr = 0x%X\n", info->sel_addr); in rtw89_debug_mac_dbg_port_dump()
3371 p += scnprintf(p, end - p, "Read addr = 0x%X\n", info->rd_addr); in rtw89_debug_mac_dbg_port_dump()
3373 for (i = info->srt; i <= info->end; i++) { in rtw89_debug_mac_dbg_port_dump()
3374 switch (info->sel_byte) { in rtw89_debug_mac_dbg_port_dump()
3377 rtw89_write8_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_dump()
3378 info->sel_msk, i); in rtw89_debug_mac_dbg_port_dump()
3379 p += scnprintf(p, end - p, "0x%02X: ", i); in rtw89_debug_mac_dbg_port_dump()
3382 rtw89_write16_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_dump()
3383 info->sel_msk, i); in rtw89_debug_mac_dbg_port_dump()
3384 p += scnprintf(p, end - p, "0x%04X: ", i); in rtw89_debug_mac_dbg_port_dump()
3387 rtw89_write32_mask(rtwdev, info->sel_addr, in rtw89_debug_mac_dbg_port_dump()
3388 info->sel_msk, i); in rtw89_debug_mac_dbg_port_dump()
3389 p += scnprintf(p, end - p, "0x%04X: ", i); in rtw89_debug_mac_dbg_port_dump()
3395 switch (info->rd_byte) { in rtw89_debug_mac_dbg_port_dump()
3399 info->rd_addr, info->rd_msk); in rtw89_debug_mac_dbg_port_dump()
3400 p += scnprintf(p, end - p, "0x%02X\n", val8); in rtw89_debug_mac_dbg_port_dump()
3404 info->rd_addr, info->rd_msk); in rtw89_debug_mac_dbg_port_dump()
3405 p += scnprintf(p, end - p, "0x%04X\n", val16); in rtw89_debug_mac_dbg_port_dump()
3409 info->rd_addr, info->rd_msk); in rtw89_debug_mac_dbg_port_dump()
3410 p += scnprintf(p, end - p, "0x%08X\n", val32); in rtw89_debug_mac_dbg_port_dump()
3416 return p - buf; in rtw89_debug_mac_dbg_port_dump()
3422 char *p = buf, *end = buf + bufsz; in rtw89_debug_mac_dump_dbg_port() local
3430 n = rtw89_debug_mac_dbg_port_dump(rtwdev, p, end - p, sel); in rtw89_debug_mac_dump_dbg_port()
3436 p += n; in rtw89_debug_mac_dump_dbg_port()
3439 return p - buf; in rtw89_debug_mac_dump_dbg_port()
3447 char *p = buf, *end = buf + bufsz; in rtw89_debug_priv_mac_dbg_port_dump_get() local
3449 if (debugfs_priv->dbgpkg_en.ss_dbg) in rtw89_debug_priv_mac_dbg_port_dump_get()
3450 p += rtw89_debug_mac_dump_ss_dbg(rtwdev, p, end - p); in rtw89_debug_priv_mac_dbg_port_dump_get()
3451 if (debugfs_priv->dbgpkg_en.dle_dbg) in rtw89_debug_priv_mac_dbg_port_dump_get()
3452 p += rtw89_debug_mac_dump_dle_dbg(rtwdev, p, end - p); in rtw89_debug_priv_mac_dbg_port_dump_get()
3453 if (debugfs_priv->dbgpkg_en.dmac_dbg) in rtw89_debug_priv_mac_dbg_port_dump_get()
3454 p += rtw89_debug_mac_dump_dmac_dbg(rtwdev, p, end - p); in rtw89_debug_priv_mac_dbg_port_dump_get()
3455 if (debugfs_priv->dbgpkg_en.cmac_dbg) in rtw89_debug_priv_mac_dbg_port_dump_get()
3456 p += rtw89_debug_mac_dump_cmac_dbg(rtwdev, p, end - p); in rtw89_debug_priv_mac_dbg_port_dump_get()
3457 if (debugfs_priv->dbgpkg_en.dbg_port) in rtw89_debug_priv_mac_dbg_port_dump_get()
3458 p += rtw89_debug_mac_dump_dbg_port(rtwdev, p, end - p); in rtw89_debug_priv_mac_dbg_port_dump_get()
3460 return p - buf; in rtw89_debug_priv_mac_dbg_port_dump_get()
3472 err = -EFAULT; in rtw89_hex2bin()
3479 err = -EINVAL; in rtw89_hex2bin()
3496 return -EFAULT; in rtw89_debug_priv_send_h2c_set()
3511 char *p = buf, *end = buf + bufsz; in rtw89_debug_priv_early_h2c_get() local
3514 lockdep_assert_wiphy(rtwdev->hw->wiphy); in rtw89_debug_priv_early_h2c_get()
3516 list_for_each_entry(early_h2c, &rtwdev->early_h2c_list, list) in rtw89_debug_priv_early_h2c_get()
3517 p += scnprintf(p, end - p, "%d: %*ph\n", ++seq, in rtw89_debug_priv_early_h2c_get()
3518 early_h2c->h2c_len, early_h2c->h2c); in rtw89_debug_priv_early_h2c_get()
3520 return p - buf; in rtw89_debug_priv_early_h2c_get()
3532 lockdep_assert_wiphy(rtwdev->hw->wiphy); in rtw89_debug_priv_early_h2c_set()
3536 return -EFAULT; in rtw89_debug_priv_early_h2c_set()
3547 return -EFAULT; in rtw89_debug_priv_early_h2c_set()
3550 early_h2c->h2c = h2c; in rtw89_debug_priv_early_h2c_set()
3551 early_h2c->h2c_len = h2c_len; in rtw89_debug_priv_early_h2c_set()
3553 list_add_tail(&early_h2c->list, &rtwdev->early_h2c_list); in rtw89_debug_priv_early_h2c_set()
3561 const struct rtw89_mac_gen_def *mac = rtwdev->chip->mac_def; in rtw89_dbg_trigger_ctrl_error()
3568 ret = mac->dle_buf_req(rtwdev, 0x20, true, &pkt_id); in rtw89_dbg_trigger_ctrl_error()
3580 if (mac->set_cpuio(rtwdev, &ctrl_para, true)) in rtw89_dbg_trigger_ctrl_error()
3581 return -EFAULT; in rtw89_dbg_trigger_ctrl_error()
3591 char *p = buf, *end = buf + bufsz; in rtw89_debug_priv_fw_crash_get() local
3593 p += scnprintf(p, end - p, "%d\n", in rtw89_debug_priv_fw_crash_get()
3594 test_bit(RTW89_FLAG_CRASH_SIMULATING, rtwdev->flags)); in rtw89_debug_priv_fw_crash_get()
3595 return p - buf; in rtw89_debug_priv_fw_crash_get()
3612 lockdep_assert_wiphy(rtwdev->hw->wiphy); in rtw89_debug_priv_fw_crash_set()
3616 return -EINVAL; in rtw89_debug_priv_fw_crash_set()
3620 if (!RTW89_CHK_FW_FEATURE_GROUP(CRASH_TRIGGER, &rtwdev->fw)) in rtw89_debug_priv_fw_crash_set()
3621 return -EOPNOTSUPP; in rtw89_debug_priv_fw_crash_set()
3628 return -EINVAL; in rtw89_debug_priv_fw_crash_set()
3631 set_bit(RTW89_FLAG_CRASH_SIMULATING, rtwdev->flags); in rtw89_debug_priv_fw_crash_set()
3651 struct rtw89_btc *btc = &rtwdev->btc; in rtw89_debug_priv_btc_manual_set()
3652 const struct rtw89_btc_ver *ver = btc->ver; in rtw89_debug_priv_btc_manual_set()
3655 ret = kstrtobool(buf, &btc->manual_ctrl); in rtw89_debug_priv_btc_manual_set()
3659 if (ver->fcxctrl == 7) in rtw89_debug_priv_btc_manual_set()
3660 btc->ctrl.ctrl_v7.manual = btc->manual_ctrl; in rtw89_debug_priv_btc_manual_set()
3662 btc->ctrl.ctrl.manual = btc->manual_ctrl; in rtw89_debug_priv_btc_manual_set()
3671 struct rtw89_fw_log *log = &rtwdev->fw.log; in rtw89_debug_priv_fw_log_manual_set()
3674 lockdep_assert_wiphy(rtwdev->hw->wiphy); in rtw89_debug_priv_fw_log_manual_set()
3679 log->enable = fw_log_manual; in rtw89_debug_priv_fw_log_manual_set()
3680 if (log->enable) in rtw89_debug_priv_fw_log_manual_set()
3701 struct rate_info *rate = &rtwsta_link->ra_report.txrate; in rtw89_sta_link_info_get_iter()
3702 struct ieee80211_rx_status *status = &rtwsta_link->rx_status; in rtw89_sta_link_info_get_iter()
3703 struct rtw89_hal *hal = &rtwdev->hal; in rtw89_sta_link_info_get_iter()
3704 u8 ant_num = hal->ant_diversity ? 2 : rtwdev->chip->rf_path_num; in rtw89_sta_link_info_get_iter()
3705 bool ant_asterisk = hal->tx_path_diversity || hal->ant_diversity; in rtw89_sta_link_info_get_iter()
3707 char *p = buf, *end = buf + bufsz; in rtw89_sta_link_info_get_iter() local
3717 max_rc_amsdu_len = link_sta->agg.max_rc_amsdu_len; in rtw89_sta_link_info_get_iter()
3721 p += scnprintf(p, end - p, "TX rate [%u, %u]: ", rtwsta_link->mac_id, in rtw89_sta_link_info_get_iter()
3722 rtwsta_link->link_id); in rtw89_sta_link_info_get_iter()
3724 if (rate->flags & RATE_INFO_FLAGS_MCS) in rtw89_sta_link_info_get_iter()
3725 p += scnprintf(p, end - p, "HT MCS-%d%s", rate->mcs, in rtw89_sta_link_info_get_iter()
3726 rate->flags & RATE_INFO_FLAGS_SHORT_GI ? " SGI" : ""); in rtw89_sta_link_info_get_iter()
3727 else if (rate->flags & RATE_INFO_FLAGS_VHT_MCS) in rtw89_sta_link_info_get_iter()
3728 p += scnprintf(p, end - p, "VHT %dSS MCS-%d%s", rate->nss, in rtw89_sta_link_info_get_iter()
3729 rate->mcs, in rtw89_sta_link_info_get_iter()
3730 rate->flags & RATE_INFO_FLAGS_SHORT_GI ? " SGI" : ""); in rtw89_sta_link_info_get_iter()
3731 else if (rate->flags & RATE_INFO_FLAGS_HE_MCS) in rtw89_sta_link_info_get_iter()
3732 p += scnprintf(p, end - p, "HE %dSS MCS-%d GI:%s", rate->nss, in rtw89_sta_link_info_get_iter()
3733 rate->mcs, in rtw89_sta_link_info_get_iter()
3734 rate->he_gi <= NL80211_RATE_INFO_HE_GI_3_2 ? in rtw89_sta_link_info_get_iter()
3735 he_gi_str[rate->he_gi] : "N/A"); in rtw89_sta_link_info_get_iter()
3736 else if (rate->flags & RATE_INFO_FLAGS_EHT_MCS) in rtw89_sta_link_info_get_iter()
3737 p += scnprintf(p, end - p, "EHT %dSS MCS-%d GI:%s", rate->nss, in rtw89_sta_link_info_get_iter()
3738 rate->mcs, in rtw89_sta_link_info_get_iter()
3739 rate->eht_gi < ARRAY_SIZE(eht_gi_str) ? in rtw89_sta_link_info_get_iter()
3740 eht_gi_str[rate->eht_gi] : "N/A"); in rtw89_sta_link_info_get_iter()
3742 p += scnprintf(p, end - p, "Legacy %d", rate->legacy); in rtw89_sta_link_info_get_iter()
3743 p += scnprintf(p, end - p, "%s", in rtw89_sta_link_info_get_iter()
3744 rtwsta_link->ra_report.might_fallback_legacy ? " FB_G" : ""); in rtw89_sta_link_info_get_iter()
3745 p += scnprintf(p, end - p, " BW:%u", in rtw89_sta_link_info_get_iter()
3746 rtw89_rate_info_bw_to_mhz(rate->bw)); in rtw89_sta_link_info_get_iter()
3747 p += scnprintf(p, end - p, " (hw_rate=0x%x)", in rtw89_sta_link_info_get_iter()
3748 rtwsta_link->ra_report.hw_rate); in rtw89_sta_link_info_get_iter()
3749 p += scnprintf(p, end - p, " ==> agg_wait=%d (%d)\n", in rtw89_sta_link_info_get_iter()
3750 rtwsta_link->max_agg_wait, in rtw89_sta_link_info_get_iter()
3753 p += scnprintf(p, end - p, "RX rate [%u, %u]: ", rtwsta_link->mac_id, in rtw89_sta_link_info_get_iter()
3754 rtwsta_link->link_id); in rtw89_sta_link_info_get_iter()
3756 switch (status->encoding) { in rtw89_sta_link_info_get_iter()
3758 p += scnprintf(p, end - p, "Legacy %d", status->rate_idx + in rtw89_sta_link_info_get_iter()
3759 (status->band != NL80211_BAND_2GHZ ? 4 : 0)); in rtw89_sta_link_info_get_iter()
3762 p += scnprintf(p, end - p, "HT MCS-%d%s", status->rate_idx, in rtw89_sta_link_info_get_iter()
3763 status->enc_flags & RX_ENC_FLAG_SHORT_GI ? " SGI" : ""); in rtw89_sta_link_info_get_iter()
3766 p += scnprintf(p, end - p, "VHT %dSS MCS-%d%s", status->nss, in rtw89_sta_link_info_get_iter()
3767 status->rate_idx, in rtw89_sta_link_info_get_iter()
3768 status->enc_flags & RX_ENC_FLAG_SHORT_GI ? " SGI" : ""); in rtw89_sta_link_info_get_iter()
3771 p += scnprintf(p, end - p, "HE %dSS MCS-%d GI:%s", in rtw89_sta_link_info_get_iter()
3772 status->nss, status->rate_idx, in rtw89_sta_link_info_get_iter()
3773 status->he_gi <= NL80211_RATE_INFO_HE_GI_3_2 ? in rtw89_sta_link_info_get_iter()
3774 he_gi_str[status->he_gi] : "N/A"); in rtw89_sta_link_info_get_iter()
3777 p += scnprintf(p, end - p, "EHT %dSS MCS-%d GI:%s", in rtw89_sta_link_info_get_iter()
3778 status->nss, status->rate_idx, in rtw89_sta_link_info_get_iter()
3779 status->eht.gi < ARRAY_SIZE(eht_gi_str) ? in rtw89_sta_link_info_get_iter()
3780 eht_gi_str[status->eht.gi] : "N/A"); in rtw89_sta_link_info_get_iter()
3783 p += scnprintf(p, end - p, " BW:%u", in rtw89_sta_link_info_get_iter()
3784 rtw89_rate_info_bw_to_mhz(status->bw)); in rtw89_sta_link_info_get_iter()
3785 p += scnprintf(p, end - p, " (hw_rate=0x%x)\n", in rtw89_sta_link_info_get_iter()
3786 rtwsta_link->rx_hw_rate); in rtw89_sta_link_info_get_iter()
3788 rssi = ewma_rssi_read(&rtwsta_link->avg_rssi); in rtw89_sta_link_info_get_iter()
3789 p += scnprintf(p, end - p, "RSSI: %d dBm (raw=%d, prev=%d) [", in rtw89_sta_link_info_get_iter()
3791 rtwsta_link->prev_rssi); in rtw89_sta_link_info_get_iter()
3793 rssi = ewma_rssi_read(&rtwsta_link->rssi[i]); in rtw89_sta_link_info_get_iter()
3794 p += scnprintf(p, end - p, "%d%s%s", in rtw89_sta_link_info_get_iter()
3796 ant_asterisk && (hal->antenna_tx & BIT(i)) ? "*" : "", in rtw89_sta_link_info_get_iter()
3799 p += scnprintf(p, end - p, "]\n"); in rtw89_sta_link_info_get_iter()
3801 evm_1ss = ewma_evm_read(&rtwsta_link->evm_1ss); in rtw89_sta_link_info_get_iter()
3802 p += scnprintf(p, end - p, "EVM: [%2u.%02u, ", evm_1ss >> 2, in rtw89_sta_link_info_get_iter()
3804 for (i = 0; i < (hal->ant_diversity ? 2 : 1); i++) { in rtw89_sta_link_info_get_iter()
3805 evm_min = ewma_evm_read(&rtwsta_link->evm_min[i]); in rtw89_sta_link_info_get_iter()
3806 evm_max = ewma_evm_read(&rtwsta_link->evm_max[i]); in rtw89_sta_link_info_get_iter()
3808 p += scnprintf(p, end - p, "%s(%2u.%02u, %2u.%02u)", in rtw89_sta_link_info_get_iter()
3813 p += scnprintf(p, end - p, "]\t"); in rtw89_sta_link_info_get_iter()
3815 snr = ewma_snr_read(&rtwsta_link->avg_snr); in rtw89_sta_link_info_get_iter()
3816 p += scnprintf(p, end - p, "SNR: %u\n", snr); in rtw89_sta_link_info_get_iter()
3818 return p - buf; in rtw89_sta_link_info_get_iter()
3826 struct rtw89_dev *rtwdev = rtwsta->rtwdev; in rtw89_sta_info_get_iter()
3828 size_t bufsz = iter_data->bufsz; in rtw89_sta_info_get_iter()
3829 char *buf = iter_data->buf; in rtw89_sta_info_get_iter()
3830 char *p = buf, *end = buf + bufsz; in rtw89_sta_info_get_iter() local
3834 p += rtw89_sta_link_info_get_iter(rtwdev, p, end - p, rtwsta_link); in rtw89_sta_info_get_iter()
3836 rtw89_debugfs_iter_data_next(iter_data, p, end - p, p - buf); in rtw89_sta_info_get_iter()
3843 char *p = buf, *end = buf + bufsz; in rtw89_debug_append_rx_rate() local
3847 p += scnprintf(p, end - p, "%s%u", i == 0 ? "" : ", ", in rtw89_debug_append_rx_rate()
3848 pkt_stat->rx_rate_cnt[first_rate + i]); in rtw89_debug_append_rx_rate()
3850 return p - buf; in rtw89_debug_append_rx_rate()
3879 struct rtw89_traffic_stats *stats = &rtwdev->stats; in rtw89_debug_priv_phy_info_get()
3880 struct rtw89_pkt_stat *pkt_stat = &rtwdev->phystat.last_pkt_stat; in rtw89_debug_priv_phy_info_get()
3881 const struct rtw89_chip_info *chip = rtwdev->chip; in rtw89_debug_priv_phy_info_get()
3884 struct rtw89_hal *hal = &rtwdev->hal; in rtw89_debug_priv_phy_info_get()
3885 char *p = buf, *end = buf + bufsz; in rtw89_debug_priv_phy_info_get() local
3890 rssi = ewma_rssi_read(&rtwdev->phystat.bcn_rssi); in rtw89_debug_priv_phy_info_get()
3892 p += scnprintf(p, end - p, "TP TX: %u [%u] Mbps (lv: %d", in rtw89_debug_priv_phy_info_get()
3893 stats->tx_throughput, stats->tx_throughput_raw, in rtw89_debug_priv_phy_info_get()
3894 stats->tx_tfc_lv); in rtw89_debug_priv_phy_info_get()
3895 if (hal->thermal_prot_lv) in rtw89_debug_priv_phy_info_get()
3896 p += scnprintf(p, end - p, ", duty: %d%%", in rtw89_debug_priv_phy_info_get()
3897 100 - hal->thermal_prot_lv * RTW89_THERMAL_PROT_STEP); in rtw89_debug_priv_phy_info_get()
3898 p += scnprintf(p, end - p, "), RX: %u [%u] Mbps (lv: %d)\n", in rtw89_debug_priv_phy_info_get()
3899 stats->rx_throughput, stats->rx_throughput_raw, in rtw89_debug_priv_phy_info_get()
3900 stats->rx_tfc_lv); in rtw89_debug_priv_phy_info_get()
3901 p += scnprintf(p, end - p, "Beacon: %u (%d dBm), TF: %u\n", in rtw89_debug_priv_phy_info_get()
3902 pkt_stat->beacon_nr, in rtw89_debug_priv_phy_info_get()
3903 RTW89_RSSI_RAW_TO_DBM(rssi), stats->rx_tf_periodic); in rtw89_debug_priv_phy_info_get()
3904 p += scnprintf(p, end - p, "Avg packet length: TX=%u, RX=%u\n", in rtw89_debug_priv_phy_info_get()
3905 stats->tx_avg_len, in rtw89_debug_priv_phy_info_get()
3906 stats->rx_avg_len); in rtw89_debug_priv_phy_info_get()
3908 p += scnprintf(p, end - p, "RX count:\n"); in rtw89_debug_priv_phy_info_get()
3912 first_rate = info->first_rate[chip->chip_gen]; in rtw89_debug_priv_phy_info_get()
3916 p += scnprintf(p, end - p, "%10s [", info->rate_mode); in rtw89_debug_priv_phy_info_get()
3917 p += rtw89_debug_append_rx_rate(p, end - p, pkt_stat, in rtw89_debug_priv_phy_info_get()
3918 first_rate, info->len); in rtw89_debug_priv_phy_info_get()
3919 if (info->ext) { in rtw89_debug_priv_phy_info_get()
3920 p += scnprintf(p, end - p, "]["); in rtw89_debug_priv_phy_info_get()
3921 p += rtw89_debug_append_rx_rate(p, end - p, pkt_stat, in rtw89_debug_priv_phy_info_get()
3922 first_rate + info->len, info->ext); in rtw89_debug_priv_phy_info_get()
3924 p += scnprintf(p, end - p, "]\n"); in rtw89_debug_priv_phy_info_get()
3927 rtw89_debugfs_iter_data_setup(&iter_data, p, end - p); in rtw89_debug_priv_phy_info_get()
3928 ieee80211_iterate_stations_atomic(rtwdev->hw, rtw89_sta_info_get_iter, &iter_data); in rtw89_debug_priv_phy_info_get()
3929 p += iter_data.written_sz; in rtw89_debug_priv_phy_info_get()
3931 return p - buf; in rtw89_debug_priv_phy_info_get()
3938 struct rtw89_cam_info *cam_info = &rtwdev->cam_info; in rtw89_dump_addr_cam()
3940 char *p = buf, *end = buf + bufsz; in rtw89_dump_addr_cam() local
3944 p += scnprintf(p, end - p, "\taddr_cam_idx=%u\n", in rtw89_dump_addr_cam()
3945 addr_cam->addr_cam_idx); in rtw89_dump_addr_cam()
3946 p += scnprintf(p, end - p, "\t-> bssid_cam_idx=%u\n", in rtw89_dump_addr_cam()
3947 addr_cam->bssid_cam_idx); in rtw89_dump_addr_cam()
3948 p += scnprintf(p, end - p, "\tsec_cam_bitmap=%*ph\n", in rtw89_dump_addr_cam()
3949 (int)sizeof(addr_cam->sec_cam_map), in rtw89_dump_addr_cam()
3950 addr_cam->sec_cam_map); in rtw89_dump_addr_cam()
3951 for_each_set_bit(i, addr_cam->sec_cam_map, RTW89_SEC_CAM_IN_ADDR_CAM) { in rtw89_dump_addr_cam()
3952 sec_cam_idx = addr_cam->sec_ent[i]; in rtw89_dump_addr_cam()
3953 sec_entry = cam_info->sec_entries[sec_cam_idx]; in rtw89_dump_addr_cam()
3956 p += scnprintf(p, end - p, "\tsec[%d]: sec_cam_idx %u", i, in rtw89_dump_addr_cam()
3957 sec_entry->sec_cam_idx); in rtw89_dump_addr_cam()
3958 if (sec_entry->ext_key) in rtw89_dump_addr_cam()
3959 p += scnprintf(p, end - p, ", %u", in rtw89_dump_addr_cam()
3960 sec_entry->sec_cam_idx + 1); in rtw89_dump_addr_cam()
3961 p += scnprintf(p, end - p, "\n"); in rtw89_dump_addr_cam()
3964 return p - buf; in rtw89_dump_addr_cam()
3971 char *p = buf, *end = buf + bufsz; in rtw89_dump_pkt_offload() local
3983 p += scnprintf(p, end - p, "%pV", &vaf); in rtw89_dump_pkt_offload()
3988 p += scnprintf(p, end - p, "%d ", info->id); in rtw89_dump_pkt_offload()
3990 p += scnprintf(p, end - p, "\n"); in rtw89_dump_pkt_offload()
3992 return p - buf; in rtw89_dump_pkt_offload()
4000 struct rtw89_bssid_cam_entry *bssid_cam = &rtwvif_link->bssid_cam; in rtw89_vif_link_ids_get()
4001 char *p = buf, *end = buf + bufsz; in rtw89_vif_link_ids_get() local
4003 p += scnprintf(p, end - p, " [%u] %pM\n", rtwvif_link->mac_id, in rtw89_vif_link_ids_get()
4004 rtwvif_link->mac_addr); in rtw89_vif_link_ids_get()
4005 p += scnprintf(p, end - p, "\tlink_id=%u%s\n", rtwvif_link->link_id, in rtw89_vif_link_ids_get()
4007 p += scnprintf(p, end - p, "\tbssid_cam_idx=%u\n", in rtw89_vif_link_ids_get()
4008 bssid_cam->bssid_cam_idx); in rtw89_vif_link_ids_get()
4009 p += rtw89_dump_addr_cam(rtwdev, p, end - p, &rtwvif_link->addr_cam); in rtw89_vif_link_ids_get()
4010 p += rtw89_dump_pkt_offload(p, end - p, &rtwvif_link->general_pkt_list, in rtw89_vif_link_ids_get()
4013 return p - buf; in rtw89_vif_link_ids_get()
4022 struct rtw89_dev *rtwdev = rtwvif->rtwdev; in rtw89_vif_ids_get_iter()
4025 size_t bufsz = iter_data->bufsz; in rtw89_vif_ids_get_iter()
4026 char *buf = iter_data->buf; in rtw89_vif_ids_get_iter()
4027 char *p = buf, *end = buf + bufsz; in rtw89_vif_ids_get_iter() local
4032 p += scnprintf(p, end - p, "VIF %pM\n", rtwvif->mac_addr); in rtw89_vif_ids_get_iter()
4034 p += rtw89_vif_link_ids_get(rtwdev, p, end - p, mac, rtwvif_link, in rtw89_vif_ids_get_iter()
4037 rtw89_debugfs_iter_data_next(iter_data, p, end - p, p - buf); in rtw89_vif_ids_get_iter()
4045 char *p = buf, *end = buf + bufsz; in rtw89_dump_ba_cam() local
4048 list_for_each_entry(entry, &rtwsta_link->ba_cam_list, list) { in rtw89_dump_ba_cam()
4050 p += scnprintf(p, end - p, "\tba_cam "); in rtw89_dump_ba_cam()
4053 p += scnprintf(p, end - p, ", "); in rtw89_dump_ba_cam()
4055 p += scnprintf(p, end - p, "tid[%u]=%d", entry->tid, in rtw89_dump_ba_cam()
4056 (int)(entry - rtwdev->cam_info.ba_cam_entry)); in rtw89_dump_ba_cam()
4058 p += scnprintf(p, end - p, "\n"); in rtw89_dump_ba_cam()
4060 return p - buf; in rtw89_dump_ba_cam()
4069 char *p = buf, *end = buf + bufsz; in rtw89_sta_link_ids_get() local
4075 p += scnprintf(p, end - p, " [%u] %pM\n", rtwsta_link->mac_id, in rtw89_sta_link_ids_get()
4076 link_sta->addr); in rtw89_sta_link_ids_get()
4080 p += scnprintf(p, end - p, "\tlink_id=%u%s\n", rtwsta_link->link_id, in rtw89_sta_link_ids_get()
4082 p += rtw89_dump_addr_cam(rtwdev, p, end - p, &rtwsta_link->addr_cam); in rtw89_sta_link_ids_get()
4083 p += rtw89_dump_ba_cam(rtwdev, p, end - p, rtwsta_link); in rtw89_sta_link_ids_get()
4085 return p - buf; in rtw89_sta_link_ids_get()
4093 struct rtw89_dev *rtwdev = rtwsta->rtwdev; in rtw89_sta_ids_get_iter()
4096 size_t bufsz = iter_data->bufsz; in rtw89_sta_ids_get_iter()
4097 char *buf = iter_data->buf; in rtw89_sta_ids_get_iter()
4098 char *p = buf, *end = buf + bufsz; in rtw89_sta_ids_get_iter() local
4103 p += scnprintf(p, end - p, "STA %pM %s\n", sta->addr, in rtw89_sta_ids_get_iter()
4104 sta->tdls ? "(TDLS)" : ""); in rtw89_sta_ids_get_iter()
4106 p += rtw89_sta_link_ids_get(rtwdev, p, end - p, rtwsta_link, in rtw89_sta_ids_get_iter()
4109 rtw89_debugfs_iter_data_next(iter_data, p, end - p, p - buf); in rtw89_sta_ids_get_iter()
4116 struct rtw89_cam_info *cam_info = &rtwdev->cam_info; in rtw89_debug_priv_stations_get()
4118 char *p = buf, *end = buf + bufsz; in rtw89_debug_priv_stations_get() local
4121 lockdep_assert_wiphy(rtwdev->hw->wiphy); in rtw89_debug_priv_stations_get()
4123 p += scnprintf(p, end - p, "map:\n"); in rtw89_debug_priv_stations_get()
4124 p += scnprintf(p, end - p, "\tmac_id: %*ph\n", in rtw89_debug_priv_stations_get()
4125 (int)sizeof(rtwdev->mac_id_map), in rtw89_debug_priv_stations_get()
4126 rtwdev->mac_id_map); in rtw89_debug_priv_stations_get()
4127 p += scnprintf(p, end - p, "\taddr_cam: %*ph\n", in rtw89_debug_priv_stations_get()
4128 (int)sizeof(cam_info->addr_cam_map), in rtw89_debug_priv_stations_get()
4129 cam_info->addr_cam_map); in rtw89_debug_priv_stations_get()
4130 p += scnprintf(p, end - p, "\tbssid_cam: %*ph\n", in rtw89_debug_priv_stations_get()
4131 (int)sizeof(cam_info->bssid_cam_map), in rtw89_debug_priv_stations_get()
4132 cam_info->bssid_cam_map); in rtw89_debug_priv_stations_get()
4133 p += scnprintf(p, end - p, "\tsec_cam: %*ph\n", in rtw89_debug_priv_stations_get()
4134 (int)sizeof(cam_info->sec_cam_map), in rtw89_debug_priv_stations_get()
4135 cam_info->sec_cam_map); in rtw89_debug_priv_stations_get()
4136 p += scnprintf(p, end - p, "\tba_cam: %*ph\n", in rtw89_debug_priv_stations_get()
4137 (int)sizeof(cam_info->ba_cam_map), in rtw89_debug_priv_stations_get()
4138 cam_info->ba_cam_map); in rtw89_debug_priv_stations_get()
4139 p += scnprintf(p, end - p, "\tpkt_ofld: %*ph\n", in rtw89_debug_priv_stations_get()
4140 (int)sizeof(rtwdev->pkt_offload), in rtw89_debug_priv_stations_get()
4141 rtwdev->pkt_offload); in rtw89_debug_priv_stations_get()
4144 if (!(rtwdev->chip->support_bands & BIT(idx))) in rtw89_debug_priv_stations_get()
4146 p += rtw89_dump_pkt_offload(p, end - p, &rtwdev->scan_info.pkt_list[idx], in rtw89_debug_priv_stations_get()
4150 rtw89_debugfs_iter_data_setup(&iter_data, p, end - p); in rtw89_debug_priv_stations_get()
4151 ieee80211_iterate_active_interfaces_atomic(rtwdev->hw, in rtw89_debug_priv_stations_get()
4153 p += iter_data.written_sz; in rtw89_debug_priv_stations_get()
4155 rtw89_debugfs_iter_data_setup(&iter_data, p, end - p); in rtw89_debug_priv_stations_get()
4156 ieee80211_iterate_stations_atomic(rtwdev->hw, rtw89_sta_ids_get_iter, &iter_data); in rtw89_debug_priv_stations_get()
4157 p += iter_data.written_sz; in rtw89_debug_priv_stations_get()
4159 return p - buf; in rtw89_debug_priv_stations_get()
4164 struct rtw89_hal *hal = &rtwdev->hal; in rtw89_debug_disable_dm_cfg_bmap()
4165 u32 old = hal->disabled_dm_bitmap; in rtw89_debug_disable_dm_cfg_bmap()
4170 hal->disabled_dm_bitmap = new; in rtw89_debug_disable_dm_cfg_bmap()
4172 rtw89_debug(rtwdev, RTW89_DBG_STATE, "Disable DM: 0x%x -> 0x%x\n", old, new); in rtw89_debug_disable_dm_cfg_bmap()
4177 struct rtw89_hal *hal = &rtwdev->hal; in rtw89_debug_disable_dm_set_flag()
4178 u32 cur = hal->disabled_dm_bitmap; in rtw89_debug_disable_dm_set_flag()
4185 struct rtw89_hal *hal = &rtwdev->hal; in rtw89_debug_disable_dm_clr_flag()
4186 u32 cur = hal->disabled_dm_bitmap; in rtw89_debug_disable_dm_clr_flag()
4209 struct rtw89_hal *hal = &rtwdev->hal; in rtw89_debug_priv_disable_dm_get()
4210 char *p = buf, *end = buf + bufsz; in rtw89_debug_priv_disable_dm_get() local
4214 p += scnprintf(p, end - p, "Disabled DM: 0x%x\n", in rtw89_debug_priv_disable_dm_get()
4215 hal->disabled_dm_bitmap); in rtw89_debug_priv_disable_dm_get()
4219 disabled = BIT(info->type) & hal->disabled_dm_bitmap; in rtw89_debug_priv_disable_dm_get()
4221 p += scnprintf(p, end - p, "[%d] %s: %c\n", info->type, in rtw89_debug_priv_disable_dm_get()
4222 info->name, in rtw89_debug_priv_disable_dm_get()
4226 return p - buf; in rtw89_debug_priv_disable_dm_get()
4239 return -EINVAL; in rtw89_debug_priv_disable_dm_set()
4266 bool mlo_dm_dis = rtwdev->hal.disabled_dm_bitmap & BIT(RTW89_DM_MLO); in rtw89_debug_priv_mlo_mode_get()
4267 char *p = buf, *end = buf + bufsz; in rtw89_debug_priv_mlo_mode_get() local
4272 p += scnprintf(p, end - p, "MLD(s) status: (MLO DM: %s)\n", in rtw89_debug_priv_mlo_mode_get()
4280 p += scnprintf(p, end - p, in rtw89_debug_priv_mlo_mode_get()
4282 count++, rtwvif->mlo_mode, vif->valid_links, in rtw89_debug_priv_mlo_mode_get()
4283 vif->active_links); in rtw89_debug_priv_mlo_mode_get()
4287 p += scnprintf(p, end - p, "\t(None)\n"); in rtw89_debug_priv_mlo_mode_get()
4289 return p - buf; in rtw89_debug_priv_mlo_mode_get()
4302 return -EINVAL; in rtw89_debug_priv_mlo_mode_set()
4316 return -EOPNOTSUPP; in rtw89_debug_priv_mlo_mode_set()
4384 struct rtw89_debugfs_priv *priv = &rtwdev->debugfs->name; \
4385 priv->rtwdev = rtwdev; \
4431 rtwdev->debugfs = kmemdup(&rtw89_debugfs_templ, in rtw89_debugfs_init()
4433 if (!rtwdev->debugfs) in rtw89_debugfs_init()
4439 debugfs_topdir = debugfs_create_dir(dev_name(rtwdev->dev), in rtw89_debugfs_init()
4441 rtwdev->hw->wiphy->debugfsdir); in rtw89_debugfs_init()
4449 kfree(rtwdev->debugfs); in rtw89_debugfs_deinit()
4468 dev_printk(KERN_DEBUG, rtwdev->dev, "%pV", &vaf); in rtw89_debug()
4473 dev_printk(KERN_DEBUG, rtwdev->dev, "%s", str); in rtw89_debug()