diff options
Diffstat (limited to 'drivers/net/wireless/ath/spectral_common.h')
-rw-r--r-- | drivers/net/wireless/ath/spectral_common.h | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/spectral_common.h b/drivers/net/wireless/ath/spectral_common.h new file mode 100644 index 000000000000..0d742acb1599 --- /dev/null +++ b/drivers/net/wireless/ath/spectral_common.h | |||
@@ -0,0 +1,113 @@ | |||
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 | |||
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 | |||
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, | ||
39 | ATH_FFT_SAMPLE_ATH10K, | ||
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 | |||
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 | |||
113 | #endif /* SPECTRAL_COMMON_H */ | ||