From 4331e421ec9f26a810e4501385dfaa9ffd4b929c Mon Sep 17 00:00:00 2001 From: Om Prakash Tripathi Date: Wed, 6 Sep 2017 15:22:04 +0530 Subject: [PATCH] qcacmn: Add support to fetch min and max tx power Add support to fetch min and max tx power from target for a given set of mcs, nss, chainmask, bw, and other rate flags. Change-Id: Iafe082db81503a52bdc704d4b71d86d23788fddb CRs-Fixed: 2061802 --- wmi_unified_param.h | 78 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 77 insertions(+), 1 deletion(-) diff --git a/wmi_unified_param.h b/wmi_unified_param.h index 3e5d23a3d2..683f4fb4b2 100644 --- a/wmi_unified_param.h +++ b/wmi_unified_param.h @@ -4230,15 +4230,79 @@ struct periodic_chan_stats_params { bool enable; }; +/** + * enum wmi_host_packet_power_rate_flags: packer power rate flags + * @WMI_HOST_FLAG_RTSENA: RTS enabled + * @WMI_HOST_FLAG_CTSENA: CTS enabled + * @WMI_HOST_FLAG_STBC: STBC is set + * @WMI_HOST_FLAG_LDPC: LDPC is set + * @WMI_HOST_FLAG_TXBF: Tx Bf enabled + * @WMI_HOST_FLAG_MU2: MU2 data + * @WMI_HOST_FLAG_MU3: MU3 data + * @WMI_HOST_FLAG_SERIES1: Rate series 1 + * @WMI_HOST_FLAG_SGI: Short gaurd interval + */ +enum wmi_host_packet_power_rate_flags { + WMI_HOST_FLAG_RTSENA = 0x0001, + WMI_HOST_FLAG_CTSENA = 0x0002, + WMI_HOST_FLAG_STBC = 0x0004, + WMI_HOST_FLAG_LDPC = 0x0008, + WMI_HOST_FLAG_TXBF = 0x0010, + WMI_HOST_FLAG_MU2 = 0x0020, + WMI_HOST_FLAG_MU3 = 0x0040, + WMI_HOST_FLAG_SERIES1 = 0x0080, + WMI_HOST_FLAG_SGI = 0x0100, +}; + +/** + * enum wmi_host_su_mu_ofdma_flags: packer power su mu ofdma flags + * @WMI_HOST_FLAG_SU: SU Data + * @WMI_HOST_FLAG_DL_MU_MIMO_AC: DL AC MU data + * @WMI_HOST_FLAG_DL_MU_MIMO_AX: DL AX MU data + * @WMI_HOST_FLAG_DL_OFDMA: DL OFDMA data + * @WMI_HOST_FLAG_UL_OFDMA: UL OFDMA data + * @WMI_HOST_FLAG_UL_MU_MIMO: UL MU data + */ +enum wmi_host_su_mu_ofdma_flags { + WMI_HOST_FLAG_SU = 0x0001, + WMI_HOST_FLAG_DL_MU_MIMO_AC = 0x0002, + WMI_HOST_FLAG_DL_MU_MIMO_AX = 0x0003, + WMI_HOST_FLAG_DL_OFDMA = 0x0004, + WMI_HOST_FLAG_UL_OFDMA = 0x0005, + WMI_HOST_FLAG_UL_MU_MIMO = 0x0006, +}; + +/** + * enum wmi_host_preamble_type: preamble type + * @WMI_HOST_PREAMBLE_OFDM: ofdm rate + * @WMI_HOST_PREAMBLE_CCK: cck rate + * @WMI_HOST_PREAMBLE_HT: ht rate + * @WMI_HOST_PREAMBLE_VHT: vht rate + * @WMI_HOST_PREAMBLE_HE: 11ax he rate + */ +enum wmi_host_preamble_type { + WMI_HOST_PREAMBLE_OFDM = 0, + WMI_HOST_PREAMBLE_CCK = 1, + WMI_HOST_PREAMBLE_HT = 2, + WMI_HOST_PREAMBLE_VHT = 3, + WMI_HOST_PREAMBLE_HE = 4, +}; + /** * struct packet_power_info_params - packet power info params + * @chainmask: chain mask + * @chan_width: channel bandwidth * @rate_flags: rate flags + * @su_mu_ofdma: su/mu/ofdma flags * @nss: number of spatial streams * @preamble: preamble * @hw_rate: */ struct packet_power_info_params { + uint16_t chainmask; + uint16_t chan_width; uint16_t rate_flags; + uint16_t su_mu_ofdma; uint16_t nss; uint16_t preamble; uint16_t hw_rate; @@ -5807,6 +5871,18 @@ typedef struct { uint32_t pdev_id; } wmi_host_pdev_nfcal_power_all_channels_event; +/** + * enum wmi_host_pdev_tpc_event_offset: offsets of TPC events + * @WMI_HOST_TX_POWER_MAX: offset of max tx power + * @WMI_HOST_TX_POWER_MIN: offset of min tx power + * @WMI_HOST_TX_POWER_LEN: size of tpc values + */ +enum wmi_host_pdev_tpc_event_offset { + WMI_HOST_TX_POWER_MAX, + WMI_HOST_TX_POWER_MIN, + WMI_HOST_TX_POWER_LEN, +}; + /** * struct wmi_host_pdev_tpc_event - WMI host pdev TPC event * @pdev_id: pdev_id @@ -5814,7 +5890,7 @@ typedef struct { */ typedef struct { uint32_t pdev_id; - uint32_t tpc[1]; + int32_t tpc[WMI_HOST_TX_POWER_LEN]; } wmi_host_pdev_tpc_event; /**