1 /* SPDX-License-Identifier: ISC */ 2 /* 3 * Copyright (c) 2013-2015 Qualcomm Atheros, Inc. 4 */ 5 6 #ifndef SPECTRAL_H 7 #define SPECTRAL_H 8 9 #include "../spectral_common.h" 10 11 /** 12 * struct ath10k_spec_scan - parameters for Atheros spectral scan 13 * 14 * @count: number of scan results requested for manual mode 15 * @fft_size: number of bins to be requested = 2^(fft_size - bin_scale) 16 */ 17 struct ath10k_spec_scan { 18 u8 count; 19 u8 fft_size; 20 }; 21 22 /* enum ath10k_spectral_mode: 23 * 24 * @SPECTRAL_DISABLED: spectral mode is disabled 25 * @SPECTRAL_BACKGROUND: hardware sends samples when it is not busy with 26 * something else. 27 * @SPECTRAL_MANUAL: spectral scan is enabled, triggering for samples 28 * is performed manually. 29 */ 30 enum ath10k_spectral_mode { 31 SPECTRAL_DISABLED = 0, 32 SPECTRAL_BACKGROUND, 33 SPECTRAL_MANUAL, 34 }; 35 36 #ifdef CONFIG_ATH10K_SPECTRAL 37 38 int ath10k_spectral_process_fft(struct ath10k *ar, 39 struct wmi_phyerr_ev_arg *phyerr, 40 const struct phyerr_fft_report *fftr, 41 size_t bin_len, u64 tsf); 42 int ath10k_spectral_start(struct ath10k *ar); 43 int ath10k_spectral_vif_stop(struct ath10k_vif *arvif); 44 int ath10k_spectral_create(struct ath10k *ar); 45 void ath10k_spectral_destroy(struct ath10k *ar); 46 47 #else 48 49 static inline int 50 ath10k_spectral_process_fft(struct ath10k *ar, 51 struct wmi_phyerr_ev_arg *phyerr, 52 const struct phyerr_fft_report *fftr, 53 size_t bin_len, u64 tsf) 54 { 55 return 0; 56 } 57 58 static inline int ath10k_spectral_start(struct ath10k *ar) 59 { 60 return 0; 61 } 62 63 static inline int ath10k_spectral_vif_stop(struct ath10k_vif *arvif) 64 { 65 return 0; 66 } 67 68 static inline int ath10k_spectral_create(struct ath10k *ar) 69 { 70 return 0; 71 } 72 73 static inline void ath10k_spectral_destroy(struct ath10k *ar) 74 { 75 } 76 77 #endif /* CONFIG_ATH10K_SPECTRAL */ 78 79 #endif /* SPECTRAL_H */ 80