|
@@ -563,6 +563,10 @@ typedef enum {
|
|
|
WMI_PDEV_ENABLE_WIFI_RADAR_CMDID,
|
|
|
/* WMI Command to enable xLNA */
|
|
|
WMI_PDEV_ENABLE_XLNA_CMDID,
|
|
|
+ /**
|
|
|
+ * WMI cmd to set custom TX power backoff value per band/chain/MCS to PHY.
|
|
|
+ */
|
|
|
+ WMI_PDEV_SET_CUSTOM_TX_POWER_PER_MCS_CMDID,
|
|
|
|
|
|
|
|
|
/* VDEV (virtual device) specific commands */
|
|
@@ -37446,6 +37450,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
|
|
|
WMI_RETURN_STRING(WMI_PDEV_ENABLE_WIFI_RADAR_CMDID);
|
|
|
WMI_RETURN_STRING(WMI_VDEV_GET_TWT_SESSION_STATS_INFO_CMDID);
|
|
|
WMI_RETURN_STRING(WMI_PDEV_ENABLE_XLNA_CMDID);
|
|
|
+ WMI_RETURN_STRING(WMI_PDEV_SET_CUSTOM_TX_POWER_PER_MCS_CMDID);
|
|
|
}
|
|
|
|
|
|
return (A_UINT8 *) "Invalid WMI cmd";
|
|
@@ -46930,6 +46935,91 @@ typedef struct {
|
|
|
A_UINT32 pdev_id; /* to identify for which pdev the response is received */
|
|
|
} wmi_pdev_set_tgtr2p_table_event_fixed_param;
|
|
|
|
|
|
+
|
|
|
+#define WMI_PDEV_SET_CUSTOM_TX_PWR_MAX_CHAIN_NUM 4
|
|
|
+
|
|
|
+#define WMI_PDEV_SET_CUSTOM_TX_PWR_MAX_2G_RATE_NUM 18
|
|
|
+
|
|
|
+#define WMI_PDEV_SET_CUSTOM_TX_PWR_MAX_5G_6G_RATE_NUM 24
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_custom_tx_power_per_mcs_cmd_fixed_param */
|
|
|
+ A_UINT32 pdev_id;
|
|
|
+
|
|
|
+ /* Every band's bitmap is per chain per mcs, the bit set indicate the txpower value existed
|
|
|
+ * in txpower_array, otherwise, it means no setting from up-layer and need treat the setting
|
|
|
+ * txpower as zero
|
|
|
+ */
|
|
|
+
|
|
|
+ /* currently 2GHz band has 2 chains (though space is allocated for up
|
|
|
+ * to 4 chains) and each chain has 18 rates.
|
|
|
+ * bitmap_of_2GHz_band[0] -> chain 0 bitmap:
|
|
|
+ * |bit 0|bit 1|......|bit 17|
|
|
|
+ * |rate 0|rate 1|......|rate 17|
|
|
|
+ *
|
|
|
+ * bitmap_of_2GHz_band[1] -> chain 1 bitmap:
|
|
|
+ * |bit 0|bit 1|......|bit 17|
|
|
|
+ * |rate 0|rate 1|......|rate 17|
|
|
|
+ *
|
|
|
+ * bitmap_of_2GHz_band[2] -> reserved
|
|
|
+ * bitmap_of_2GHz_band[3] -> reserved
|
|
|
+ */
|
|
|
+ A_UINT32 bitmap_of_2GHz_band[WMI_PDEV_SET_CUSTOM_TX_PWR_MAX_CHAIN_NUM];
|
|
|
+
|
|
|
+ /* 5GHz band has 4 chains and each chain has 24 rates.
|
|
|
+ * bitmap_of_5GHz_band[0] -> chain 0 bitmap:
|
|
|
+ * |bit 0|bit 1|......|bit 23|
|
|
|
+ * |rate 0|rate 1|......|rate 23|
|
|
|
+ *
|
|
|
+ * bitmap_of_5GHz_band[1] -> chain 1 bitmap:
|
|
|
+ * |bit 0|bit 1|......|bit 23|
|
|
|
+ * |rate 0|rate 1|......|rate 23|
|
|
|
+ *
|
|
|
+ * bitmap_of_5GHz_band[2] -> chain 2 bitmap:
|
|
|
+ * |bit 0|bit 1|......|bit 23|
|
|
|
+ * |rate 0|rate 1|......|rate 23|
|
|
|
+ *
|
|
|
+ * bitmap_of_5GHz_band[3] -> chain 3 bitmap:
|
|
|
+ * |bit 0|bit 1|......|bit 23|
|
|
|
+ * |rate 0|rate 1|......|rate 23|
|
|
|
+ */
|
|
|
+ A_UINT32 bitmap_of_5GHz_band[WMI_PDEV_SET_CUSTOM_TX_PWR_MAX_CHAIN_NUM];
|
|
|
+
|
|
|
+ /* 6GHz band has 4 chains and each chain has 24 rates.
|
|
|
+ * bitmap_of_6GHz_band[0] -> chain 0 bitmap:
|
|
|
+ * |bit 0|bit 1|......|bit 23|
|
|
|
+ * |rate 0|rate 1|......|rate 23|
|
|
|
+ *
|
|
|
+ * bitmap_of_6GHz_band[1] -> chain 1 bitmap:
|
|
|
+ * |bit 0|bit 1|......|bit 23|
|
|
|
+ * |rate 0|rate 1|......|rate 23|
|
|
|
+ *
|
|
|
+ * bitmap_of_6GHz_band[2] -> chain 2 bitmap:
|
|
|
+ * |bit 0|bit 1|......|bit 23|
|
|
|
+ * |rate 0|rate 1|......|rate 23|
|
|
|
+ *
|
|
|
+ * bitmap_of_6GHz_band[3] -> chain 3 bitmap:
|
|
|
+ * |bit 0|bit 1|......|bit 23|
|
|
|
+ * |rate 0|rate 1|......|rate 23|
|
|
|
+ */
|
|
|
+ A_UINT32 bitmap_of_6GHz_band[WMI_PDEV_SET_CUSTOM_TX_PWR_MAX_CHAIN_NUM];
|
|
|
+
|
|
|
+ A_UINT32 txpower_array_len;
|
|
|
+
|
|
|
+/* This TLV is followed by array of bytes:
|
|
|
+ * A_UINT8 txpower_bkoff_array[]:
|
|
|
+ * The txpower backoff value for each bit set within the per-band bitmaps
|
|
|
+ * above, in dB units.
|
|
|
+ * The elements from the 2GHz band occur first, then the elements from the
|
|
|
+ * 5GHz band, then the elements from the 6GHz band.
|
|
|
+ * Within each band, the elements from the lower chain numbers (i.e. the
|
|
|
+ * lower words within the bitmap array) occur first.
|
|
|
+ * Within each chain of each band, the element from the lower rate indices
|
|
|
+ * (i.e. the least significant bits within the bitmap word) occur first.
|
|
|
+ */
|
|
|
+} wmi_pdev_set_custom_tx_power_per_mcs_cmd_fixed_param;
|
|
|
+
|
|
|
+
|
|
|
typedef struct {
|
|
|
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mlo_vdev_get_link_info_cmd_fixed_param */
|
|
|
A_UINT32 vdev_id;
|