1 /* 2 * Copyright (c) 2011, 2017-2018 The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for 5 * any purpose with or without fee is hereby granted, provided that the 6 * above copyright notice and this permission notice appear in all 7 * copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16 * PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19 #ifndef _SPECTRAL_IOCTL_H_ 20 #define _SPECTRAL_IOCTL_H_ 21 22 #include <wlan_dfs_ioctl.h> 23 24 /* 25 * ioctl defines 26 */ 27 28 #define SPECTRAL_SET_CONFIG (DFS_LAST_IOCTL + 1) 29 #define SPECTRAL_GET_CONFIG (DFS_LAST_IOCTL + 2) 30 #define SPECTRAL_SHOW_INTERFERENCE (DFS_LAST_IOCTL + 3) 31 #define SPECTRAL_ENABLE_SCAN (DFS_LAST_IOCTL + 4) 32 #define SPECTRAL_DISABLE_SCAN (DFS_LAST_IOCTL + 5) 33 #define SPECTRAL_ACTIVATE_SCAN (DFS_LAST_IOCTL + 6) 34 #define SPECTRAL_STOP_SCAN (DFS_LAST_IOCTL + 7) 35 #define SPECTRAL_SET_DEBUG_LEVEL (DFS_LAST_IOCTL + 8) 36 #define SPECTRAL_IS_ACTIVE (DFS_LAST_IOCTL + 9) 37 #define SPECTRAL_IS_ENABLED (DFS_LAST_IOCTL + 10) 38 #define SPECTRAL_CLASSIFY_SCAN (DFS_LAST_IOCTL + 11) 39 #define SPECTRAL_GET_CLASSIFIER_CONFIG (DFS_LAST_IOCTL + 12) 40 #define SPECTRAL_EACS (DFS_LAST_IOCTL + 13) 41 #define SPECTRAL_ACTIVATE_FULL_SCAN (DFS_LAST_IOCTL + 14) 42 #define SPECTRAL_STOP_FULL_SCAN (DFS_LAST_IOCTL + 15) 43 #define SPECTRAL_GET_CAPABILITY_INFO (DFS_LAST_IOCTL + 16) 44 #define SPECTRAL_GET_DIAG_STATS (DFS_LAST_IOCTL + 17) 45 #define SPECTRAL_GET_CHAN_WIDTH (DFS_LAST_IOCTL + 18) 46 #define SPECTRAL_GET_CHANINFO (DFS_LAST_IOCTL + 19) 47 #define SPECTRAL_CLEAR_CHANINFO (DFS_LAST_IOCTL + 20) 48 #define SPECTRAL_SET_ICM_ACTIVE (DFS_LAST_IOCTL + 21) 49 #define SPECTRAL_GET_NOMINAL_NOISEFLOOR (DFS_LAST_IOCTL + 22) 50 #define SPECTRAL_GET_DEBUG_LEVEL (DFS_LAST_IOCTL + 23) 51 52 /* 53 * ioctl parameter types 54 */ 55 56 #define SPECTRAL_PARAM_FFT_PERIOD (1) 57 #define SPECTRAL_PARAM_SCAN_PERIOD (2) 58 #define SPECTRAL_PARAM_SCAN_COUNT (3) 59 #define SPECTRAL_PARAM_SHORT_REPORT (4) 60 #define SPECTRAL_PARAM_SPECT_PRI (5) 61 #define SPECTRAL_PARAM_FFT_SIZE (6) 62 #define SPECTRAL_PARAM_GC_ENA (7) 63 #define SPECTRAL_PARAM_RESTART_ENA (8) 64 #define SPECTRAL_PARAM_NOISE_FLOOR_REF (9) 65 #define SPECTRAL_PARAM_INIT_DELAY (10) 66 #define SPECTRAL_PARAM_NB_TONE_THR (11) 67 #define SPECTRAL_PARAM_STR_BIN_THR (12) 68 #define SPECTRAL_PARAM_WB_RPT_MODE (13) 69 #define SPECTRAL_PARAM_RSSI_RPT_MODE (14) 70 #define SPECTRAL_PARAM_RSSI_THR (15) 71 #define SPECTRAL_PARAM_PWR_FORMAT (16) 72 #define SPECTRAL_PARAM_RPT_MODE (17) 73 #define SPECTRAL_PARAM_BIN_SCALE (18) 74 #define SPECTRAL_PARAM_DBM_ADJ (19) 75 #define SPECTRAL_PARAM_CHN_MASK (20) 76 #define SPECTRAL_PARAM_ACTIVE (21) 77 #define SPECTRAL_PARAM_STOP (22) 78 #define SPECTRAL_PARAM_ENABLE (23) 79 80 struct spectral_ioctl_params { 81 int16_t spectral_fft_period; 82 int16_t pectral_period; 83 int16_t spectral_count; 84 uint16_t spectral_short_report; 85 uint16_t spectral_pri; 86 }; 87 88 /** 89 * spectral_cap_hw_gen: Definitions for the Spectral hardware generation. 90 * This corresponds to definitions in qca_wlan_vendor_spectral_scan_cap_hw_gen. 91 * @SPECTRAL_CAP_HW_GEN_1: Generation 1 92 * @SPECTRAL_CAP_HW_GEN_2: Generation 2 93 * @SPECTRAL_CAP_HW_GEN_3: Generation 3 94 */ 95 enum spectral_cap_hw_gen { 96 SPECTRAL_CAP_HW_GEN_1 = 0, 97 SPECTRAL_CAP_HW_GEN_2 = 1, 98 SPECTRAL_CAP_HW_GEN_3 = 2, 99 }; 100 101 /** 102 * struct spectral_caps - Spectral capabilities structure 103 * @phydiag_cap: Phydiag capability 104 * @radar_cap: Radar detection capability 105 * @spectral_cap: Spectral capability 106 * @advncd_spectral_cap: Advanced spectral capability 107 * @hw_gen: Spectral hw generation as defined in spectral_cap_hw_gen 108 */ 109 struct spectral_caps { 110 uint8_t phydiag_cap; 111 uint8_t radar_cap; 112 uint8_t spectral_cap; 113 uint8_t advncd_spectral_cap; 114 uint32_t hw_gen; 115 }; 116 117 #define SPECTRAL_IOCTL_PARAM_NOVAL (65535) 118 119 #endif 120