We have read TX power from firmware file (named firmware elements), and then write TX power values to registers by this patchset. The register addresses between WiFi 6 and 7 chips are different, and tables for WiFi 7 are larger. But we still try to reuse functions if possible, otherwise implement separate functions for each of them. The registers of TX power can be categorized: 1. TX power by rate: a value for a rate section (RS for short in code) 2. TX power offset: a offset value from base of rate section above. This uses less register bits than TX power by rate. 3. TX power limit: the power to follow regulation, so output power is min(TX_power_by_rate, TX_power_limit) basically. 4. TX power RU limit: like above, but for OFDMA RU. Since there are many TX power values, we need to convert them to human readable format to quickly check if values are expected. The last two patches of this patchset are to extend existing debugfs to show current TX power for all chips. Zong-Zhe Yang (7): wifi: rtw89: mac: get TX power control register according to chip gen wifi: rtw89: phy: set TX power by rate according to chip gen wifi: rtw89: phy: set TX power offset according to chip gen wifi: rtw89: phy: set TX power limit according to chip gen wifi: rtw89: phy: set TX power RU limit according to chip gen wifi: rtw89: debug: show txpwr table according to chip gen wifi: rtw89: debug: txpwr table supports Wi-Fi 7 chips drivers/net/wireless/realtek/rtw89/core.h | 30 -- drivers/net/wireless/realtek/rtw89/debug.c | 272 +++++++++- drivers/net/wireless/realtek/rtw89/mac.c | 14 +- drivers/net/wireless/realtek/rtw89/mac.h | 16 +- drivers/net/wireless/realtek/rtw89/mac_be.c | 40 ++ drivers/net/wireless/realtek/rtw89/phy.c | 173 +++--- drivers/net/wireless/realtek/rtw89/phy.h | 120 ++++- drivers/net/wireless/realtek/rtw89/phy_be.c | 568 ++++++++++++++++++++ drivers/net/wireless/realtek/rtw89/reg.h | 50 +- 9 files changed, 1126 insertions(+), 157 deletions(-) -- 2.25.1