diff --git a/src/common/qca-vendor.h b/src/common/qca-vendor.h index aee861efc..1476d17f4 100644 --- a/src/common/qca-vendor.h +++ b/src/common/qca-vendor.h @@ -1024,6 +1024,20 @@ enum qca_radiotap_vendor_ids { * * The attributes used with this subcommand are defined in * enum qca_wlan_vendor_attr_tx_latency. + * + * @QCA_NL80211_VENDOR_SUBCMD_REGULATORY_TPC_INFO: Vendor command is used to + * query transmit power information on STA interface from the driver for a + * connected AP. The attributes included in response are defined in + * enum qca_wlan_vendor_attr_tpc_links. In case of MLO STA, multiple links + * TPC info may be returned. The information includes regulatory maximum + * transmit power limit, AP local power constraint advertised from AP's + * Beacon and Probe Response frames. For PSD power mode, the information + * includes PSD power levels for each subchannel of operating bandwidth. + * The information is driver calculated power limits based on the current + * regulatory domain, AP local power constraint, and other IEs. The + * information will be set to target. Target will decide the final TX power + * based on this and chip specific power conformance test limits (CTL), and + * SAR limits. */ enum qca_nl80211_vendor_subcmds { QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0, @@ -1244,6 +1258,7 @@ enum qca_nl80211_vendor_subcmds { /* 234 - reserved for QCA */ QCA_NL80211_VENDOR_SUBCMD_SDWF_PHY_OPS = 235, QCA_NL80211_VENDOR_SUBCMD_SDWF_DEV_OPS = 236, + QCA_NL80211_VENDOR_SUBCMD_REGULATORY_TPC_INFO = 237, }; /* Compatibility defines for previously used subcmd names. @@ -16625,4 +16640,96 @@ enum qca_chan_width_update_type { QCA_CHAN_WIDTH_UPDATE_TYPE_TX_RX_EXT = 2, }; +/** + * enum qca_wlan_vendor_attr_tpc_pwr_level - Definition of attributes + * used inside nested attribute %QCA_WLAN_VENDOR_ATTR_TPC_PWR_LEVEL. + * + * @QCA_WLAN_VENDOR_ATTR_TPC_PWR_LEVEL_FREQUENCY: u32 channel center + * frequency (MHz): If PSD power, carries one 20 MHz sub-channel center + * frequency. If non PSD power, carries either 20 MHz bandwidth's center + * channel frequency or 40 MHz bandwidth's center channel frequency + * (or 80/160 MHz bandwidth's center channel frequency). + * + * @QCA_WLAN_VENDOR_ATTR_TPC_PWR_LEVEL_TX_POWER: s8 transmit power limit (dBm). + * If PSD power, carries PSD power value of the + * QCA_WLAN_VENDOR_ATTR_TPC_PWR_LEVEL_FREQUENCY mentioned sub-channel. + * If non PSD power, carries EIRP power value of bandwidth mentioned + * by QCA_WLAN_VENDOR_ATTR_TPC_PWR_LEVEL_FREQUENCY center frequency. + */ +enum qca_wlan_vendor_attr_tpc_pwr_level { + QCA_WLAN_VENDOR_ATTR_TPC_PWR_LEVEL_INVALID = 0, + QCA_WLAN_VENDOR_ATTR_TPC_PWR_LEVEL_FREQUENCY = 1, + QCA_WLAN_VENDOR_ATTR_TPC_PWR_LEVEL_TX_POWER = 2, + + /* keep last */ + QCA_WLAN_VENDOR_ATTR_TPC_PWR_LEVEL_AFTER_LAST, + QCA_WLAN_VENDOR_ATTR_TPC_PWR_LEVEL_MAX = + QCA_WLAN_VENDOR_ATTR_TPC_PWR_LEVEL_AFTER_LAST - 1, +}; + +/** + * enum qca_wlan_vendor_tpc - Definition of link attributes + * used inside nested attribute %QCA_WLAN_VENDOR_ATTR_TPC_LINKS. + * + * @QCA_WLAN_VENDOR_ATTR_TPC_BSSID: 6-bytes AP BSSID. + * For MLO STA, AP BSSID indicates the AP's link address. + * + * @QCA_WLAN_VENDOR_ATTR_TPC_PSD_POWER: PSD power flag + * Indicates using PSD power mode if this flag is present. + * + * @QCA_WLAN_VENDOR_ATTR_TPC_EIRP_POWER: s8 Regulatory EIRP power + * value in dBm + * + * @QCA_WLAN_VENDOR_ATTR_TPC_POWER_TYPE_6GHZ: u8 power type of 6 GHz + * AP, refer to Table E-12-Regulatory Info subfield encoding in + * IEEE P802.11-REVme/D4.0. Only present if link is connected to 6 GHz AP. + * + * @QCA_WLAN_VENDOR_ATTR_TPC_AP_CONSTRAINT_POWER: u8 Local Power Constraint + * (dBm) advertised by AP in Power Constraint element, refer to + * IEEE Std 802.11-2020, 9.4.2.13 Power Constraint element. + * + * @QCA_WLAN_VENDOR_ATTR_TPC_PWR_LEVEL: A nested attribute containing + * attributes defined by enum qca_wlan_vendor_attr_tpc_pwr_level. + * If PSD power, each power level describes each 20 MHz subchannel PSD + * power value. If non PSD power, each power level describes each supported + * bandwidth's EIRP power value (up to Max bandwidth of AP operating on), + * each level attribute contains corresponding bandwidth's center channel + * frequency and its EIRP power value. + */ +enum qca_wlan_vendor_attr_tpc { + QCA_WLAN_VENDOR_ATTR_TPC_INVALID = 0, + QCA_WLAN_VENDOR_ATTR_TPC_BSSID = 1, + QCA_WLAN_VENDOR_ATTR_TPC_PSD_POWER = 2, + QCA_WLAN_VENDOR_ATTR_TPC_EIRP_POWER = 3, + QCA_WLAN_VENDOR_ATTR_TPC_POWER_TYPE_6GHZ = 4, + QCA_WLAN_VENDOR_ATTR_TPC_AP_CONSTRAINT_POWER = 5, + QCA_WLAN_VENDOR_ATTR_TPC_PWR_LEVEL = 6, + + /* keep last */ + QCA_WLAN_VENDOR_ATTR_TPC_AFTER_LAST, + QCA_WLAN_VENDOR_ATTR_TPC_MAX = + QCA_WLAN_VENDOR_ATTR_TPC_AFTER_LAST - 1, +}; + +/** + * enum qca_wlan_vendor_attr_tpc_links - Definition of attributes + * for %QCA_NL80211_VENDOR_SUBCMD_REGULATORY_TPC_INFO subcommand + * + * @QCA_WLAN_VENDOR_ATTR_TPC_LINKS: A nested attribute containing + * per-link TPC information of all the active links of MLO STA. + * For non MLO STA, only one link TPC information will be returned + * for connected AP in this nested attribute. + * The attributes used inside this nested attributes are defined + * in enum qca_wlan_vendor_attr_tpc. + */ +enum qca_wlan_vendor_attr_tpc_links { + QCA_WLAN_VENDOR_ATTR_TPC_LINKS_INVALID = 0, + QCA_WLAN_VENDOR_ATTR_TPC_LINKS = 1, + + /* keep last */ + QCA_WLAN_VENDOR_ATTR_TPC_LINKS_AFTER_LAST, + QCA_WLAN_VENDOR_ATTR_TPC_LINKS_MAX = + QCA_WLAN_VENDOR_ATTR_TPC_AFTER_LAST - 1, +}; + #endif /* QCA_VENDOR_H */