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 ---