diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/antenna.c')
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/antenna.c | 36 |
1 files changed, 8 insertions, 28 deletions
diff --git a/drivers/net/wireless/ath/ath9k/antenna.c b/drivers/net/wireless/ath/ath9k/antenna.c index dd1cc73d7946..bd048cc69a33 100644 --- a/drivers/net/wireless/ath/ath9k/antenna.c +++ b/drivers/net/wireless/ath/ath9k/antenna.c | |||
| @@ -332,7 +332,7 @@ static void ath_select_ant_div_from_quick_scan(struct ath_ant_comb *antcomb, | |||
| 332 | } | 332 | } |
| 333 | 333 | ||
| 334 | if (antcomb->rssi_lna2 > antcomb->rssi_lna1 + | 334 | if (antcomb->rssi_lna2 > antcomb->rssi_lna1 + |
| 335 | ATH_ANT_DIV_COMB_LNA1_LNA2_SWITCH_DELTA) | 335 | div_ant_conf->lna1_lna2_switch_delta) |
| 336 | div_ant_conf->main_lna_conf = ATH_ANT_DIV_COMB_LNA2; | 336 | div_ant_conf->main_lna_conf = ATH_ANT_DIV_COMB_LNA2; |
| 337 | else | 337 | else |
| 338 | div_ant_conf->main_lna_conf = ATH_ANT_DIV_COMB_LNA1; | 338 | div_ant_conf->main_lna_conf = ATH_ANT_DIV_COMB_LNA1; |
| @@ -554,42 +554,22 @@ static void ath_ant_div_conf_fast_divbias(struct ath_hw_antcomb_conf *ant_conf, | |||
| 554 | ant_conf->fast_div_bias = 0x1; | 554 | ant_conf->fast_div_bias = 0x1; |
| 555 | break; | 555 | break; |
| 556 | case 0x10: /* LNA2 A-B */ | 556 | case 0x10: /* LNA2 A-B */ |
| 557 | if ((antcomb->scan == 0) && | 557 | ant_conf->fast_div_bias = 0x2; |
| 558 | (alt_ratio > ATH_ANT_DIV_COMB_ALT_ANT_RATIO)) { | ||
| 559 | ant_conf->fast_div_bias = 0x3f; | ||
| 560 | } else { | ||
| 561 | ant_conf->fast_div_bias = 0x1; | ||
| 562 | } | ||
| 563 | break; | 558 | break; |
| 564 | case 0x12: /* LNA2 LNA1 */ | 559 | case 0x12: /* LNA2 LNA1 */ |
| 565 | ant_conf->fast_div_bias = 0x39; | 560 | ant_conf->fast_div_bias = 0x3f; |
| 566 | break; | 561 | break; |
| 567 | case 0x13: /* LNA2 A+B */ | 562 | case 0x13: /* LNA2 A+B */ |
| 568 | if ((antcomb->scan == 0) && | 563 | ant_conf->fast_div_bias = 0x2; |
| 569 | (alt_ratio > ATH_ANT_DIV_COMB_ALT_ANT_RATIO)) { | ||
| 570 | ant_conf->fast_div_bias = 0x3f; | ||
| 571 | } else { | ||
| 572 | ant_conf->fast_div_bias = 0x1; | ||
| 573 | } | ||
| 574 | break; | 564 | break; |
| 575 | case 0x20: /* LNA1 A-B */ | 565 | case 0x20: /* LNA1 A-B */ |
| 576 | if ((antcomb->scan == 0) && | 566 | ant_conf->fast_div_bias = 0x3; |
| 577 | (alt_ratio > ATH_ANT_DIV_COMB_ALT_ANT_RATIO)) { | ||
| 578 | ant_conf->fast_div_bias = 0x3f; | ||
| 579 | } else { | ||
| 580 | ant_conf->fast_div_bias = 0x4; | ||
| 581 | } | ||
| 582 | break; | 567 | break; |
| 583 | case 0x21: /* LNA1 LNA2 */ | 568 | case 0x21: /* LNA1 LNA2 */ |
| 584 | ant_conf->fast_div_bias = 0x6; | 569 | ant_conf->fast_div_bias = 0x3; |
| 585 | break; | 570 | break; |
| 586 | case 0x23: /* LNA1 A+B */ | 571 | case 0x23: /* LNA1 A+B */ |
| 587 | if ((antcomb->scan == 0) && | 572 | ant_conf->fast_div_bias = 0x3; |
| 588 | (alt_ratio > ATH_ANT_DIV_COMB_ALT_ANT_RATIO)) { | ||
| 589 | ant_conf->fast_div_bias = 0x3f; | ||
| 590 | } else { | ||
| 591 | ant_conf->fast_div_bias = 0x6; | ||
| 592 | } | ||
| 593 | break; | 573 | break; |
| 594 | case 0x30: /* A+B A-B */ | 574 | case 0x30: /* A+B A-B */ |
| 595 | ant_conf->fast_div_bias = 0x1; | 575 | ant_conf->fast_div_bias = 0x1; |
| @@ -638,7 +618,7 @@ static void ath_ant_try_scan(struct ath_ant_comb *antcomb, | |||
| 638 | antcomb->rssi_sub = alt_rssi_avg; | 618 | antcomb->rssi_sub = alt_rssi_avg; |
| 639 | antcomb->scan = false; | 619 | antcomb->scan = false; |
| 640 | if (antcomb->rssi_lna2 > | 620 | if (antcomb->rssi_lna2 > |
| 641 | (antcomb->rssi_lna1 + ATH_ANT_DIV_COMB_LNA1_LNA2_SWITCH_DELTA)) { | 621 | (antcomb->rssi_lna1 + conf->lna1_lna2_switch_delta)) { |
| 642 | /* use LNA2 as main LNA */ | 622 | /* use LNA2 as main LNA */ |
| 643 | if ((antcomb->rssi_add > antcomb->rssi_lna1) && | 623 | if ((antcomb->rssi_add > antcomb->rssi_lna1) && |
| 644 | (antcomb->rssi_add > antcomb->rssi_sub)) { | 624 | (antcomb->rssi_add > antcomb->rssi_sub)) { |
