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 | |