Commit | Line | Data |
---|---|---|
95752b75 SE |
1 | /* |
2 | * Copyright (c) 2013 Qualcomm Atheros, Inc. | |
3 | * | |
4 | * Permission to use, copy, modify, and/or distribute this software for any | |
5 | * purpose with or without fee is hereby granted, provided that the above | |
6 | * copyright notice and this permission notice appear in all copies. | |
7 | * | |
8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
15 | */ | |
16 | ||
17 | #ifndef SPECTRAL_COMMON_H | |
18 | #define SPECTRAL_COMMON_H | |
19 | ||
20 | #define SPECTRAL_HT20_NUM_BINS 56 | |
21 | #define SPECTRAL_HT20_40_NUM_BINS 128 | |
22 | ||
855aed12 SW |
23 | /* TODO: could possibly be 512, but no samples this large |
24 | * could be acquired so far. | |
25 | */ | |
26 | #define SPECTRAL_ATH10K_MAX_NUM_BINS 256 | |
27 | ||
95752b75 SE |
28 | /* FFT sample format given to userspace via debugfs. |
29 | * | |
30 | * Please keep the type/length at the front position and change | |
31 | * other fields after adding another sample type | |
32 | * | |
33 | * TODO: this might need rework when switching to nl80211-based | |
34 | * interface. | |
35 | */ | |
36 | enum ath_fft_sample_type { | |
37 | ATH_FFT_SAMPLE_HT20 = 1, | |
38 | ATH_FFT_SAMPLE_HT20_40, | |
855aed12 | 39 | ATH_FFT_SAMPLE_ATH10K, |
95752b75 SE |
40 | }; |
41 | ||
42 | struct fft_sample_tlv { | |
43 | u8 type; /* see ath_fft_sample */ | |
44 | __be16 length; | |
45 | /* type dependent data follows */ | |
46 | } __packed; | |
47 | ||
48 | struct fft_sample_ht20 { | |
49 | struct fft_sample_tlv tlv; | |
50 | ||
51 | u8 max_exp; | |
52 | ||
53 | __be16 freq; | |
54 | s8 rssi; | |
55 | s8 noise; | |
56 | ||
57 | __be16 max_magnitude; | |
58 | u8 max_index; | |
59 | u8 bitmap_weight; | |
60 | ||
61 | __be64 tsf; | |
62 | ||
63 | u8 data[SPECTRAL_HT20_NUM_BINS]; | |
64 | } __packed; | |
65 | ||
66 | struct fft_sample_ht20_40 { | |
67 | struct fft_sample_tlv tlv; | |
68 | ||
69 | u8 channel_type; | |
70 | __be16 freq; | |
71 | ||
72 | s8 lower_rssi; | |
73 | s8 upper_rssi; | |
74 | ||
75 | __be64 tsf; | |
76 | ||
77 | s8 lower_noise; | |
78 | s8 upper_noise; | |
79 | ||
80 | __be16 lower_max_magnitude; | |
81 | __be16 upper_max_magnitude; | |
82 | ||
83 | u8 lower_max_index; | |
84 | u8 upper_max_index; | |
85 | ||
86 | u8 lower_bitmap_weight; | |
87 | u8 upper_bitmap_weight; | |
88 | ||
89 | u8 max_exp; | |
90 | ||
91 | u8 data[SPECTRAL_HT20_40_NUM_BINS]; | |
92 | } __packed; | |
93 | ||
855aed12 SW |
94 | struct fft_sample_ath10k { |
95 | struct fft_sample_tlv tlv; | |
96 | u8 chan_width_mhz; | |
97 | __be16 freq1; | |
98 | __be16 freq2; | |
99 | __be16 noise; | |
100 | __be16 max_magnitude; | |
101 | __be16 total_gain_db; | |
102 | __be16 base_pwr_db; | |
103 | __be64 tsf; | |
104 | s8 max_index; | |
105 | u8 rssi; | |
106 | u8 relpwr_db; | |
107 | u8 avgpwr_db; | |
108 | u8 max_exp; | |
109 | ||
110 | u8 data[0]; | |
111 | } __packed; | |
112 | ||
95752b75 | 113 | #endif /* SPECTRAL_COMMON_H */ |