1 /* 2 * This file is part of wl12xx 3 * 4 * Copyright (C) 1998-2009, 2011 Texas Instruments. All rights reserved. 5 * Copyright (C) 2009 Nokia Corporation 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * version 2 as published by the Free Software Foundation. 10 * 11 * This program is distributed in the hope that it will be useful, but 12 * WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 19 * 02110-1301 USA 20 * 21 */ 22 23 #ifndef __WL12XX_CMD_H__ 24 #define __WL12XX_CMD_H__ 25 26 #include "conf.h" 27 28 #define TEST_CMD_INI_FILE_RADIO_PARAM 0x19 29 #define TEST_CMD_INI_FILE_GENERAL_PARAM 0x1E 30 31 struct wl1271_general_parms_cmd { 32 struct wl1271_cmd_header header; 33 34 struct wl1271_cmd_test_header test; 35 36 struct wl1271_ini_general_params general_params; 37 38 u8 sr_debug_table[WL1271_INI_MAX_SMART_REFLEX_PARAM]; 39 u8 sr_sen_n_p; 40 u8 sr_sen_n_p_gain; 41 u8 sr_sen_nrn; 42 u8 sr_sen_prn; 43 u8 padding[3]; 44 } __packed; 45 46 struct wl128x_general_parms_cmd { 47 struct wl1271_cmd_header header; 48 49 struct wl1271_cmd_test_header test; 50 51 struct wl128x_ini_general_params general_params; 52 53 u8 sr_debug_table[WL1271_INI_MAX_SMART_REFLEX_PARAM]; 54 u8 sr_sen_n_p; 55 u8 sr_sen_n_p_gain; 56 u8 sr_sen_nrn; 57 u8 sr_sen_prn; 58 u8 padding[3]; 59 } __packed; 60 61 struct wl1271_radio_parms_cmd { 62 struct wl1271_cmd_header header; 63 64 struct wl1271_cmd_test_header test; 65 66 /* Static radio parameters */ 67 struct wl1271_ini_band_params_2 static_params_2; 68 struct wl1271_ini_band_params_5 static_params_5; 69 70 /* Dynamic radio parameters */ 71 struct wl1271_ini_fem_params_2 dyn_params_2; 72 u8 padding2; 73 struct wl1271_ini_fem_params_5 dyn_params_5; 74 u8 padding3[2]; 75 } __packed; 76 77 struct wl128x_radio_parms_cmd { 78 struct wl1271_cmd_header header; 79 80 struct wl1271_cmd_test_header test; 81 82 /* Static radio parameters */ 83 struct wl128x_ini_band_params_2 static_params_2; 84 struct wl128x_ini_band_params_5 static_params_5; 85 86 u8 fem_vendor_and_options; 87 88 /* Dynamic radio parameters */ 89 struct wl128x_ini_fem_params_2 dyn_params_2; 90 u8 padding2; 91 struct wl128x_ini_fem_params_5 dyn_params_5; 92 } __packed; 93 94 #define TEST_CMD_INI_FILE_RF_EXTENDED_PARAM 0x26 95 96 struct wl1271_ext_radio_parms_cmd { 97 struct wl1271_cmd_header header; 98 99 struct wl1271_cmd_test_header test; 100 101 u8 tx_per_channel_power_compensation_2[CONF_TX_PWR_COMPENSATION_LEN_2]; 102 u8 tx_per_channel_power_compensation_5[CONF_TX_PWR_COMPENSATION_LEN_5]; 103 u8 padding[3]; 104 } __packed; 105 106 struct wl12xx_cmd_channel_switch { 107 struct wl1271_cmd_header header; 108 109 u8 role_id; 110 111 /* The new serving channel */ 112 u8 channel; 113 /* Relative time of the serving channel switch in TBTT units */ 114 u8 switch_time; 115 /* Stop the role TX, should expect it after radar detection */ 116 u8 stop_tx; 117 /* The target channel tx status 1-stopped 0-open*/ 118 u8 post_switch_tx_disable; 119 120 u8 padding[3]; 121 } __packed; 122 123 int wl1271_cmd_general_parms(struct wl1271 *wl); 124 int wl128x_cmd_general_parms(struct wl1271 *wl); 125 int wl1271_cmd_radio_parms(struct wl1271 *wl); 126 int wl128x_cmd_radio_parms(struct wl1271 *wl); 127 int wl1271_cmd_ext_radio_parms(struct wl1271 *wl); 128 int wl12xx_cmd_channel_switch(struct wl1271 *wl, 129 struct wl12xx_vif *wlvif, 130 struct ieee80211_channel_switch *ch_switch); 131 132 #endif /* __WL12XX_CMD_H__ */ 133