From 56ce86e04f295e053dc15f04610b1ef115a83040 Mon Sep 17 00:00:00 2001 From: Jiachao Wu Date: Wed, 23 Aug 2017 15:27:11 +0800 Subject: [PATCH] qcacmn: Pass beacon tx rate value to FW Set bcn_tx_rate when send WMI_VDEV_START_REQUEST_CMDID to FW. Change-Id: I402d996fe4382d8dfd765e3bf7957d4696549b00 CRs-Fixed: 2097703 --- wmi/inc/wmi_unified_param.h | 20 ++++++++++++++++++++ wmi/src/wmi_unified_tlv.c | 4 ++++ 2 files changed, 24 insertions(+) diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h index 0a11f47ebe52..bc8e9994d924 100644 --- a/wmi/inc/wmi_unified_param.h +++ b/wmi/inc/wmi_unified_param.h @@ -609,6 +609,24 @@ struct mac_ssid { uint8_t mac_ssid[WMI_MAC_MAX_SSID_LENGTH]; } qdf_packed; +/** + * enum wmi_bcn_tx_rate_code - beacon tx rate code + */ +enum wmi_bcn_tx_rate_code { + WMI_BCN_TX_RATE_CODE_1_M = 0x43, + WMI_BCN_TX_RATE_CODE_2_M = 0x42, + WMI_BCN_TX_RATE_CODE_5_5_M = 0x41, + WMI_BCN_TX_RATE_CODE_6_M = 0x03, + WMI_BCN_TX_RATE_CODE_9_M = 0x07, + WMI_BCN_TX_RATE_CODE_11M = 0x40, + WMI_BCN_TX_RATE_CODE_12_M = 0x02, + WMI_BCN_TX_RATE_CODE_18_M = 0x06, + WMI_BCN_TX_RATE_CODE_24_M = 0x01, + WMI_BCN_TX_RATE_CODE_36_M = 0x05, + WMI_BCN_TX_RATE_CODE_48_M = 0x00, + WMI_BCN_TX_RATE_CODE_54_M = 0x04, +}; + /** * struct vdev_start_params - vdev start cmd parameter * @vdev_id: vdev id @@ -643,6 +661,7 @@ struct mac_ssid { * @dot11_mode: Phy mode (VHT20/VHT80...) * @disable_hw_ack: Disable hw ack if chan is dfs channel for cac * @channel_param: Channel params required by target. + * @bcn_tx_rate_code: Beacon tx rate code. * @ldpc_rx_enabled: Enable/Disable LDPC RX for this vdev */ struct vdev_start_params { @@ -677,6 +696,7 @@ struct vdev_start_params { uint8_t disable_hw_ack; struct channel_param channel; #endif + enum wmi_bcn_tx_rate_code bcn_tx_rate_code; bool ldpc_rx_enabled; }; diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index f8bffbc021da..bd2f07b8435c 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -343,6 +343,10 @@ static QDF_STATUS send_vdev_start_cmd_tlv(wmi_unified_t wmi_handle, cmd->beacon_interval = req->beacon_intval; cmd->dtim_period = req->dtim_period; + cmd->bcn_tx_rate = req->bcn_tx_rate_code; + if (req->bcn_tx_rate_code) + cmd->flags |= WMI_UNIFIED_VDEV_START_BCN_TX_RATE_PRESENT; + if (!req->is_restart) { cmd->beacon_interval = req->beacon_intval; cmd->dtim_period = req->dtim_period;