rfgain.h (d4bbf7e7759afc172e2bfbc5c416324590049cdd) | rfgain.h (c47faa364cfb249d5d7670fb7293a6f9acd8aa9e) |
---|---|
1/* 2 * RF Gain optimization 3 * 4 * Copyright (c) 2004-2009 Reyk Floeter <reyk@openbsd.org> 5 * Copyright (c) 2006-2009 Nick Kossifidis <mickflemm@gmail.com> 6 * 7 * Permission to use, copy, modify, and distribute this software for any 8 * purpose with or without fee is hereby granted, provided that the above --- 4 unchanged lines hidden (view full) --- 13 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 14 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 15 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 16 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 17 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 18 * 19 */ 20 | 1/* 2 * RF Gain optimization 3 * 4 * Copyright (c) 2004-2009 Reyk Floeter <reyk@openbsd.org> 5 * Copyright (c) 2006-2009 Nick Kossifidis <mickflemm@gmail.com> 6 * 7 * Permission to use, copy, modify, and distribute this software for any 8 * purpose with or without fee is hereby granted, provided that the above --- 4 unchanged lines hidden (view full) --- 13 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 14 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 15 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 16 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 17 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 18 * 19 */ 20 |
21/* | 21/** 22 * struct ath5k_ini_rfgain - RF Gain table 23 * @rfg_register: RF Gain register address 24 * @rfg_value: Register value for 5 and 2GHz 25 * |
22 * Mode-specific RF Gain table (64bytes) for RF5111/5112 23 * (RF5110 only comes with AR5210 and only supports a/turbo a mode so initial 24 * RF Gain values are included in AR5K_AR5210_INI) 25 */ 26struct ath5k_ini_rfgain { | 26 * Mode-specific RF Gain table (64bytes) for RF5111/5112 27 * (RF5110 only comes with AR5210 and only supports a/turbo a mode so initial 28 * RF Gain values are included in AR5K_AR5210_INI) 29 */ 30struct ath5k_ini_rfgain { |
27 u16 rfg_register; /* RF Gain register address */ | 31 u16 rfg_register; |
28 u32 rfg_value[2]; /* [freq (see below)] */ 29}; 30 31/* Initial RF Gain settings for RF5111 */ 32static const struct ath5k_ini_rfgain rfgain_5111[] = { 33 /* 5GHz 2GHz */ 34 { AR5K_RF_GAIN(0), { 0x000001a9, 0x00000000 } }, 35 { AR5K_RF_GAIN(1), { 0x000001e9, 0x00000040 } }, --- 414 unchanged lines hidden (view full) --- 450#define AR5K_GAIN_CCK_OFDM_GAIN_DELTA 15 451#define AR5K_GAIN_STEP_COUNT 10 452 453/* Check if our current measurement is inside our 454 * current variable attenuation window */ 455#define AR5K_GAIN_CHECK_ADJUST(_g) \ 456 ((_g)->g_current <= (_g)->g_low || (_g)->g_current >= (_g)->g_high) 457 | 32 u32 rfg_value[2]; /* [freq (see below)] */ 33}; 34 35/* Initial RF Gain settings for RF5111 */ 36static const struct ath5k_ini_rfgain rfgain_5111[] = { 37 /* 5GHz 2GHz */ 38 { AR5K_RF_GAIN(0), { 0x000001a9, 0x00000000 } }, 39 { AR5K_RF_GAIN(1), { 0x000001e9, 0x00000040 } }, --- 414 unchanged lines hidden (view full) --- 454#define AR5K_GAIN_CCK_OFDM_GAIN_DELTA 15 455#define AR5K_GAIN_STEP_COUNT 10 456 457/* Check if our current measurement is inside our 458 * current variable attenuation window */ 459#define AR5K_GAIN_CHECK_ADJUST(_g) \ 460 ((_g)->g_current <= (_g)->g_low || (_g)->g_current >= (_g)->g_high) 461 |
462/** 463 * struct ath5k_gain_opt_step - An RF gain optimization step 464 * @gos_param: Set of parameters 465 * @gos_gain: Gain 466 */ |
|
458struct ath5k_gain_opt_step { 459 s8 gos_param[AR5K_GAIN_CRN_MAX_FIX_BITS]; 460 s8 gos_gain; 461}; 462 | 467struct ath5k_gain_opt_step { 468 s8 gos_param[AR5K_GAIN_CRN_MAX_FIX_BITS]; 469 s8 gos_gain; 470}; 471 |
472/** 473 * struct ath5k_gain_opt - RF Gain optimization ladder 474 * @go_default: The default step 475 * @go_steps_count: How many optimization steps 476 * @go_step: Array of &struct ath5k_gain_opt_step 477 */ |
|
463struct ath5k_gain_opt { 464 u8 go_default; 465 u8 go_steps_count; 466 const struct ath5k_gain_opt_step go_step[AR5K_GAIN_STEP_COUNT]; 467}; 468 | 478struct ath5k_gain_opt { 479 u8 go_default; 480 u8 go_steps_count; 481 const struct ath5k_gain_opt_step go_step[AR5K_GAIN_STEP_COUNT]; 482}; 483 |
484 |
|
469/* | 485/* |
486 * RF5111 |
|
470 * Parameters on gos_param: 471 * 1) Tx clip PHY register 472 * 2) PWD 90 RF register 473 * 3) PWD 84 RF register 474 * 4) RFGainSel RF register 475 */ 476static const struct ath5k_gain_opt rfgain_opt_5111 = { 477 4, --- 7 unchanged lines hidden (view full) --- 485 { { 4, 0, 1, 0 }, -2 }, 486 { { 3, 1, 1, 0 }, -3 }, 487 { { 4, 0, 0, 0 }, -4 }, 488 { { 2, 1, 1, 0 }, -6 } 489 } 490}; 491 492/* | 487 * Parameters on gos_param: 488 * 1) Tx clip PHY register 489 * 2) PWD 90 RF register 490 * 3) PWD 84 RF register 491 * 4) RFGainSel RF register 492 */ 493static const struct ath5k_gain_opt rfgain_opt_5111 = { 494 4, --- 7 unchanged lines hidden (view full) --- 502 { { 4, 0, 1, 0 }, -2 }, 503 { { 3, 1, 1, 0 }, -3 }, 504 { { 4, 0, 0, 0 }, -4 }, 505 { { 2, 1, 1, 0 }, -6 } 506 } 507}; 508 509/* |
510 * RF5112 |
|
493 * Parameters on gos_param: 494 * 1) Mixgain ovr RF register 495 * 2) PWD 138 RF register 496 * 3) PWD 137 RF register 497 * 4) PWD 136 RF register 498 * 5) PWD 132 RF register 499 * 6) PWD 131 RF register 500 * 7) PWD 130 RF register --- 16 unchanged lines hidden --- | 511 * Parameters on gos_param: 512 * 1) Mixgain ovr RF register 513 * 2) PWD 138 RF register 514 * 3) PWD 137 RF register 515 * 4) PWD 136 RF register 516 * 5) PWD 132 RF register 517 * 6) PWD 131 RF register 518 * 7) PWD 130 RF register --- 16 unchanged lines hidden --- |