1 --- a/drivers/net/wireless/ath/ath9k/recv.c
2 +++ b/drivers/net/wireless/ath/ath9k/recv.c
3 @@ -1366,6 +1366,89 @@ static void ath_ant_div_conf_fast_divbia
7 + } else if (ant_conf->div_group == 1) {
8 + /* Adjust the fast_div_bias based on main and alt_lna_conf */
9 + switch ((ant_conf->main_lna_conf << 4) |
10 + ant_conf->alt_lna_conf) {
11 + case 0x01: /* A-B LNA2 */
12 + ant_conf->fast_div_bias = 0x1;
13 + ant_conf->main_gaintb = 0;
14 + ant_conf->alt_gaintb = 0;
16 + case 0x02: /* A-B LNA1 */
17 + ant_conf->fast_div_bias = 0x1;
18 + ant_conf->main_gaintb = 0;
19 + ant_conf->alt_gaintb = 0;
21 + case 0x03: /* A-B A+B */
22 + ant_conf->fast_div_bias = 0x1;
23 + ant_conf->main_gaintb = 0;
24 + ant_conf->alt_gaintb = 0;
26 + case 0x10: /* LNA2 A-B */
27 + if (!(antcomb->scan) &&
28 + (alt_ratio > ATH_ANT_DIV_COMB_ALT_ANT_RATIO))
29 + ant_conf->fast_div_bias = 0x3f;
31 + ant_conf->fast_div_bias = 0x1;
32 + ant_conf->main_gaintb = 0;
33 + ant_conf->alt_gaintb = 0;
35 + case 0x12: /* LNA2 LNA1 */
36 + ant_conf->fast_div_bias = 0x1;
37 + ant_conf->main_gaintb = 0;
38 + ant_conf->alt_gaintb = 0;
40 + case 0x13: /* LNA2 A+B */
41 + if (!(antcomb->scan) &&
42 + (alt_ratio > ATH_ANT_DIV_COMB_ALT_ANT_RATIO))
43 + ant_conf->fast_div_bias = 0x3f;
45 + ant_conf->fast_div_bias = 0x1;
46 + ant_conf->main_gaintb = 0;
47 + ant_conf->alt_gaintb = 0;
49 + case 0x20: /* LNA1 A-B */
50 + if (!(antcomb->scan) &&
51 + (alt_ratio > ATH_ANT_DIV_COMB_ALT_ANT_RATIO))
52 + ant_conf->fast_div_bias = 0x3f;
54 + ant_conf->fast_div_bias = 0x1;
55 + ant_conf->main_gaintb = 0;
56 + ant_conf->alt_gaintb = 0;
58 + case 0x21: /* LNA1 LNA2 */
59 + ant_conf->fast_div_bias = 0x1;
60 + ant_conf->main_gaintb = 0;
61 + ant_conf->alt_gaintb = 0;
63 + case 0x23: /* LNA1 A+B */
64 + if (!(antcomb->scan) &&
65 + (alt_ratio > ATH_ANT_DIV_COMB_ALT_ANT_RATIO))
66 + ant_conf->fast_div_bias = 0x3f;
68 + ant_conf->fast_div_bias = 0x1;
69 + ant_conf->main_gaintb = 0;
70 + ant_conf->alt_gaintb = 0;
72 + case 0x30: /* A+B A-B */
73 + ant_conf->fast_div_bias = 0x1;
74 + ant_conf->main_gaintb = 0;
75 + ant_conf->alt_gaintb = 0;
77 + case 0x31: /* A+B LNA2 */
78 + ant_conf->fast_div_bias = 0x1;
79 + ant_conf->main_gaintb = 0;
80 + ant_conf->alt_gaintb = 0;
82 + case 0x32: /* A+B LNA1 */
83 + ant_conf->fast_div_bias = 0x1;
84 + ant_conf->main_gaintb = 0;
85 + ant_conf->alt_gaintb = 0;
90 } else if (ant_conf->div_group == 2) {
91 /* Adjust the fast_div_bias based on main and alt_lna_conf */
92 switch ((ant_conf->main_lna_conf << 4) |