1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
---|---|
2 | /* |
3 | * This file is part of wl12xx |
4 | * |
5 | * Copyright (C) 1998-2009, 2011 Texas Instruments. All rights reserved. |
6 | * Copyright (C) 2009 Nokia Corporation |
7 | */ |
8 | |
9 | #ifndef __WL12XX_CMD_H__ |
10 | #define __WL12XX_CMD_H__ |
11 | |
12 | #include "conf.h" |
13 | |
14 | #define TEST_CMD_INI_FILE_RADIO_PARAM 0x19 |
15 | #define TEST_CMD_INI_FILE_GENERAL_PARAM 0x1E |
16 | |
17 | struct wl1271_general_parms_cmd { |
18 | struct wl1271_cmd_header header; |
19 | |
20 | struct wl1271_cmd_test_header test; |
21 | |
22 | struct wl1271_ini_general_params general_params; |
23 | |
24 | u8 sr_debug_table[WL1271_INI_MAX_SMART_REFLEX_PARAM]; |
25 | u8 sr_sen_n_p; |
26 | u8 sr_sen_n_p_gain; |
27 | u8 sr_sen_nrn; |
28 | u8 sr_sen_prn; |
29 | u8 padding[3]; |
30 | } __packed; |
31 | |
32 | struct wl128x_general_parms_cmd { |
33 | struct wl1271_cmd_header header; |
34 | |
35 | struct wl1271_cmd_test_header test; |
36 | |
37 | struct wl128x_ini_general_params general_params; |
38 | |
39 | u8 sr_debug_table[WL1271_INI_MAX_SMART_REFLEX_PARAM]; |
40 | u8 sr_sen_n_p; |
41 | u8 sr_sen_n_p_gain; |
42 | u8 sr_sen_nrn; |
43 | u8 sr_sen_prn; |
44 | u8 padding[3]; |
45 | } __packed; |
46 | |
47 | struct wl1271_radio_parms_cmd { |
48 | struct wl1271_cmd_header header; |
49 | |
50 | struct wl1271_cmd_test_header test; |
51 | |
52 | /* Static radio parameters */ |
53 | struct wl1271_ini_band_params_2 static_params_2; |
54 | struct wl1271_ini_band_params_5 static_params_5; |
55 | |
56 | /* Dynamic radio parameters */ |
57 | struct wl1271_ini_fem_params_2 dyn_params_2; |
58 | u8 padding2; |
59 | struct wl1271_ini_fem_params_5 dyn_params_5; |
60 | u8 padding3[2]; |
61 | } __packed; |
62 | |
63 | struct wl128x_radio_parms_cmd { |
64 | struct wl1271_cmd_header header; |
65 | |
66 | struct wl1271_cmd_test_header test; |
67 | |
68 | /* Static radio parameters */ |
69 | struct wl128x_ini_band_params_2 static_params_2; |
70 | struct wl128x_ini_band_params_5 static_params_5; |
71 | |
72 | u8 fem_vendor_and_options; |
73 | |
74 | /* Dynamic radio parameters */ |
75 | struct wl128x_ini_fem_params_2 dyn_params_2; |
76 | u8 padding2; |
77 | struct wl128x_ini_fem_params_5 dyn_params_5; |
78 | } __packed; |
79 | |
80 | #define TEST_CMD_INI_FILE_RF_EXTENDED_PARAM 0x26 |
81 | |
82 | struct wl1271_ext_radio_parms_cmd { |
83 | struct wl1271_cmd_header header; |
84 | |
85 | struct wl1271_cmd_test_header test; |
86 | |
87 | u8 tx_per_channel_power_compensation_2[CONF_TX_PWR_COMPENSATION_LEN_2]; |
88 | u8 tx_per_channel_power_compensation_5[CONF_TX_PWR_COMPENSATION_LEN_5]; |
89 | u8 padding[3]; |
90 | } __packed; |
91 | |
92 | struct wl12xx_cmd_channel_switch { |
93 | struct wl1271_cmd_header header; |
94 | |
95 | u8 role_id; |
96 | |
97 | /* The new serving channel */ |
98 | u8 channel; |
99 | /* Relative time of the serving channel switch in TBTT units */ |
100 | u8 switch_time; |
101 | /* Stop the role TX, should expect it after radar detection */ |
102 | u8 stop_tx; |
103 | /* The target channel tx status 1-stopped 0-open*/ |
104 | u8 post_switch_tx_disable; |
105 | |
106 | u8 padding[3]; |
107 | } __packed; |
108 | |
109 | int wl1271_cmd_general_parms(struct wl1271 *wl); |
110 | int wl128x_cmd_general_parms(struct wl1271 *wl); |
111 | int wl1271_cmd_radio_parms(struct wl1271 *wl); |
112 | int wl128x_cmd_radio_parms(struct wl1271 *wl); |
113 | int wl1271_cmd_ext_radio_parms(struct wl1271 *wl); |
114 | int wl12xx_cmd_channel_switch(struct wl1271 *wl, |
115 | struct wl12xx_vif *wlvif, |
116 | struct ieee80211_channel_switch *ch_switch); |
117 | |
118 | #endif /* __WL12XX_CMD_H__ */ |
119 |