/* * RF Gain optimization * * Copyright (c) 2004-2009 Reyk Floeter <[email protected]> * Copyright (c) 2006-2009 Nick Kossifidis <[email protected]> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * */ /** * struct ath5k_ini_rfgain - RF Gain table * @rfg_register: RF Gain register address * @rfg_value: Register value for 5 and 2GHz * * Mode-specific RF Gain table (64bytes) for RF5111/5112 * (RF5110 only comes with AR5210 and only supports a/turbo a mode so initial * RF Gain values are included in AR5K_AR5210_INI) */ struct ath5k_ini_rfgain { … }; /* Initial RF Gain settings for RF5111 */ static const struct ath5k_ini_rfgain rfgain_5111[] = …; /* Initial RF Gain settings for RF5112 */ static const struct ath5k_ini_rfgain rfgain_5112[] = …; /* Initial RF Gain settings for RF2413 */ static const struct ath5k_ini_rfgain rfgain_2413[] = …; /* Initial RF Gain settings for AR2316 */ static const struct ath5k_ini_rfgain rfgain_2316[] = …; /* Initial RF Gain settings for RF5413 */ static const struct ath5k_ini_rfgain rfgain_5413[] = …; /* Initial RF Gain settings for RF2425 */ static const struct ath5k_ini_rfgain rfgain_2425[] = …; #define AR5K_GAIN_CRN_FIX_BITS_5111 … #define AR5K_GAIN_CRN_FIX_BITS_5112 … #define AR5K_GAIN_CRN_MAX_FIX_BITS … #define AR5K_GAIN_DYN_ADJUST_HI_MARGIN … #define AR5K_GAIN_DYN_ADJUST_LO_MARGIN … #define AR5K_GAIN_CCK_PROBE_CORR … #define AR5K_GAIN_CCK_OFDM_GAIN_DELTA … #define AR5K_GAIN_STEP_COUNT … /* Check if our current measurement is inside our * current variable attenuation window */ #define AR5K_GAIN_CHECK_ADJUST(_g) … /** * struct ath5k_gain_opt_step - An RF gain optimization step * @gos_param: Set of parameters * @gos_gain: Gain */ struct ath5k_gain_opt_step { … }; /** * struct ath5k_gain_opt - RF Gain optimization ladder * @go_default: The default step * @go_steps_count: How many optimization steps * @go_step: Array of &struct ath5k_gain_opt_step */ struct ath5k_gain_opt { … }; /* * RF5111 * Parameters on gos_param: * 1) Tx clip PHY register * 2) PWD 90 RF register * 3) PWD 84 RF register * 4) RFGainSel RF register */ static const struct ath5k_gain_opt rfgain_opt_5111 = …; /* * RF5112 * Parameters on gos_param: * 1) Mixgain ovr RF register * 2) PWD 138 RF register * 3) PWD 137 RF register * 4) PWD 136 RF register * 5) PWD 132 RF register * 6) PWD 131 RF register * 7) PWD 130 RF register */ static const struct ath5k_gain_opt rfgain_opt_5112 = …;