blob: bcacb5f0eb622132fca389200dfb72f22bc7ec03 [file] [log] [blame]
/*
* Copyright (c) 2013-2017 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/*
* This file was originally distributed by Qualcomm Atheros, Inc.
* under proprietary terms before Copyright ownership was assigned
* to the Linux Foundation.
*/
#ifndef HDD_TGT_CFG_H
#define HDD_TGT_CFG_H
/* TODO: Find it from the max number of supported vdev */
#define INTF_MACADDR_MASK 0x7
struct hdd_tgt_services {
u_int32_t sta_power_save;
u_int32_t uapsd;
u_int32_t ap_dfs;
u_int32_t en_11ac;
u_int32_t arp_offload;
u_int32_t early_rx;
#ifdef FEATURE_WLAN_SCAN_PNO
v_BOOL_t pno_offload;
#endif
v_BOOL_t beacon_offload;
u_int32_t lte_coex_ant_share;
uint8_t chain_mask_2g;
uint8_t chain_mask_5g;
bool per_band_chainmask_supp;
#ifdef FEATURE_WLAN_TDLS
v_BOOL_t en_tdls;
v_BOOL_t en_tdls_offchan;
v_BOOL_t en_tdls_uapsd_buf_sta;
v_BOOL_t en_tdls_uapsd_sleep_sta;
#endif
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
v_BOOL_t en_roam_offload;
#endif
#ifdef SAP_AUTH_OFFLOAD
bool sap_auth_offload_service;
#endif
bool get_peer_info_enabled;
};
struct hdd_tgt_ht_cap {
u_int32_t mpdu_density;
bool ht_rx_stbc;
bool ht_tx_stbc;
bool ht_rx_ldpc;
bool ht_sgi_20;
bool ht_sgi_40;
u_int32_t num_rf_chains;
};
#ifdef WLAN_FEATURE_11AC
struct hdd_tgt_vht_cap {
u_int32_t vht_max_mpdu;
u_int32_t supp_chan_width;
u_int32_t vht_rx_ldpc;
u_int32_t vht_short_gi_80;
u_int32_t vht_short_gi_160;
u_int32_t vht_tx_stbc;
u_int32_t vht_rx_stbc;
u_int32_t vht_su_bformer;
u_int32_t vht_su_bformee;
u_int32_t vht_mu_bformer;
u_int32_t vht_mu_bformee;
u_int32_t vht_max_ampdu_len_exp;
u_int32_t vht_txop_ps;
};
#endif
struct hdd_tgt_cfg {
u_int32_t target_fw_version;
u_int8_t band_cap;
u_int32_t reg_domain;
u_int32_t eeprom_rd_ext;
v_MACADDR_t hw_macaddr;
struct hdd_tgt_services services;
struct hdd_tgt_ht_cap ht_cap;
#ifdef WLAN_FEATURE_11AC
struct hdd_tgt_vht_cap vht_cap;
#endif
v_U8_t max_intf_count;
#ifdef WLAN_FEATURE_LPSS
v_U8_t lpss_support;
#endif
uint8_t ap_arpns_support;
#ifdef FEATURE_GREEN_AP
bool egap_support;
#endif
uint32_t fine_time_measurement_cap;
bool bpf_enabled;
#ifdef FEATURE_WLAN_RA_FILTERING
bool is_ra_rate_limit_enabled;
#endif
uint16_t wmi_max_len;
#ifdef WLAN_FEATURE_NAN_DATAPATH
bool nan_datapath_enabled;
#endif
uint8_t max_mc_addr_list;
bool sub_20_support;
};
struct hdd_dfs_radar_ind {
u_int8_t ieee_chan_number;
u_int32_t chan_freq;
u_int32_t dfs_radar_status;
};
#endif /* HDD_TGT_CFG_H */