diff options
| author | Peng Xu <pxu@codeaurora.org> | 2017-05-09 16:51:22 -0700 |
|---|---|---|
| committer | snandini <snandini@codeaurora.org> | 2017-05-10 17:10:44 -0700 |
| commit | 55c7959d84fd7e1637c809a6e6a15c1cf08bb61d (patch) | |
| tree | def5c3861ab09a281c79337c0834978c75850ef2 /uapi/linux | |
| parent | 1f333225e2d4f4a56278ed81d1748822d3cfab2a (diff) | |
qcacld-3.0: Define Spectral Scan userspace interface structures
Define spectral scan user space interface structures to send corresponding
messages to user space.
Change-Id: I520615fc3cb416746f8cfb8f0cc3b177ca431ab9
CRs-fixed: 2036938
Diffstat (limited to 'uapi/linux')
| -rw-r--r-- | uapi/linux/spectral_scan_fmt.h | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/uapi/linux/spectral_scan_fmt.h b/uapi/linux/spectral_scan_fmt.h new file mode 100644 index 000000000000..207812a47272 --- /dev/null +++ b/uapi/linux/spectral_scan_fmt.h @@ -0,0 +1,157 @@ +/* + * Copyright (c) 2017 The Linux Foundation. All rights reserved. + * + * 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. + */ + +/** + * DOC: spectral_scan_fmt.h + * + * WLAN Host Device Driver Spectral Scan Implementation + */ + +#ifndef _SPECTRAL_SCAN_FMT_H_ +#define _SPECTRAL_SCAN_FMT_H_ + +#ifndef __ATTRIB_PACK +#define __ATTRIB_PACK __packed +#endif + +#define MAX_INTERF 10 /* 5 categories x (lower + upper) bands */ +#define MAX_NUM_BINS 520 +#define MAX_SPECTRAL_CHAINS 3 + +/** + * struct INTERF_RSP_INFO - Interference source info + * @interf_min_freq: Interference minimum frequency + * @interf_max_freq: Interference maximum frequency + * @interf_type: Interference type + */ +struct INTERF_RSP_INFO { + uint16_t interf_min_freq; + uint16_t interf_max_freq; + uint8_t interf_type; +} __ATTRIB_PACK; + +/** + * struct INTERF_SRC_RSP_INFO - Interference source info + * @count: number of interference sources + * @interf: interference info + */ +struct INTERF_SRC_RSP_INFO { + uint16_t count; + struct INTERF_RSP_INFO interf[MAX_INTERF]; +} __ATTRIB_PACK; + +/** + * struct samp_msg_data_info - FFT sampling data + * @spectral_tstamp: timestamp + * @spectral_last_tstamp: last time stamp + * @ch_width: channel width + * @spectral_data_len: bin size for the sampling data + * @spectral_data_len_sec80: bin size for secondary 80Mhz segment + * @spectral_rssi: RSSI value + * @spectral_rssi_sec80: RSSI value for secondary 80Mhz segment + * @spectral_bwinfo: bandwidth info + * @spectral_max_index: index of max magnitude + * @spectral_max_index_sec80: index of max magnitude for secondary 80Mhz segment + * @spectral_max_mag: maximum magnitude + * @spectral_max_mag_sec80: maximum magnitude for secondary 80Mhz segment + * @spectral_upper_max_index: index of max magnitude in upper band + * @spectral_lower_max_index: index of max magnitude in lower band + * @bin_pwr_count: number of FFT bins + * @bin_pwr_count_sec80: number of FFT bins in secondary 80MHz segment + * @noise_floor: current noise floor + * @noise_floor_sec80: current noise floor in secondary 80MHz segment + * @spectral_max_exp: maximum exp + * @spectral_combined_rssi: combined RSSI from all antennas + * @spectral_upper_rssi: RSSI of upper band + * @spectral_lower_rssi: RSSI of lower band + * @spectral_chain_ctl_rssi: RSSI for control channel, for all antennas + * @spectral_chain_ext_rssi: RSSI for extension channel, for all antennas + * @spectral_max_scale: scale factor + * @spectral_nb_upper: not used + * @spectral_nb_lower: not used + * @lb_edge_extrabins: number of extra bins on left band edge + * @rb_edge_extrabins: number of extra bins on right band edge + * @bin_pwr: FFT magnitudes + * @bin_pwr_sec80: FFT magnitudes in secondary 80MHz segment + * @interf_list: list of interference source + */ +struct samp_msg_data_info { + int32_t spectral_tstamp; + int32_t spectral_last_tstamp; + uint32_t ch_width; + int16_t spectral_data_len; + int16_t spectral_data_len_sec80; + int16_t spectral_rssi; + int16_t spectral_rssi_sec80; + int16_t spectral_bwinfo; + int16_t spectral_max_index; + int16_t spectral_max_index_sec80; + int16_t spectral_max_mag; + int16_t spectral_max_mag_sec80; + int16_t spectral_upper_max_index; + int16_t spectral_lower_max_index; + uint16_t bin_pwr_count; + uint16_t bin_pwr_count_sec80; + int16_t noise_floor; + int16_t noise_floor_sec80; + uint8_t spectral_max_exp; + int8_t spectral_combined_rssi; + int8_t spectral_upper_rssi; + int8_t spectral_lower_rssi; + int8_t spectral_chain_ctl_rssi[MAX_SPECTRAL_CHAINS]; + int8_t spectral_chain_ext_rssi[MAX_SPECTRAL_CHAINS]; + uint8_t spectral_max_scale; + uint8_t spectral_nb_upper; + uint8_t spectral_nb_lower; + uint8_t lb_edge_extrabins; + uint8_t rb_edge_extrabins; + uint8_t bin_pwr[MAX_NUM_BINS]; + uint8_t bin_pwr_sec80[MAX_NUM_BINS]; + struct INTERF_SRC_RSP_INFO interf_list; +} __ATTRIB_PACK; + +#define SPECTRAL_DCS_INT_NONE 0 +#define SPECTRAL_DCS_INT_CW 1 +#define SPECTRAL_DCS_INT_WIFI 2 + +#define SAMP_SIGNATURE 0xdeadbeef +/** + * struct spectral_samp_msg_info - FFT sampling data + * @signature: flag indicating it is a samp message (0xdeadbeef) + * @freq: Operating frequency in MHz + * @vhtop_ch_freq_seg1: VHT channel frequency segment 1 + * @vhtop_ch_freq_seg2: VHT channel frequency segment 2 + * @freq_loading: how busy was the channel + * @dcs_enabled: if DCS is enabled + * @int_type: DCS interface type, defined as above values 0, 1, 2 + * @macaddr: interface mac address + * @samp_data: sampling data + */ +struct spectral_samp_msg_info { + uint32_t signature; + uint16_t freq; + uint16_t vhtop_ch_freq_seg1; + uint16_t vhtop_ch_freq_seg2; + uint16_t freq_loading; + uint8_t dcs_enabled; + uint8_t int_type; + uint8_t macaddr[6]; + struct samp_msg_data_info samp_data; +} __ATTRIB_PACK; + +#endif /* _SPECTRAL_SCAN_FMT_H_ */ |
