package/mac80211: Add linux 3.0 compatibility
[openwrt/svn-archive/archive.git] / package / mac80211 / patches / 565-ath9k-add-fast_div_bias-configuration-for-diversity-.patch
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
4 default:
5 break;
6 }
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;
15 + break;
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;
20 + break;
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;
25 + break;
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;
30 + else
31 + ant_conf->fast_div_bias = 0x1;
32 + ant_conf->main_gaintb = 0;
33 + ant_conf->alt_gaintb = 0;
34 + break;
35 + case 0x12: /* LNA2 LNA1 */
36 + ant_conf->fast_div_bias = 0x1;
37 + ant_conf->main_gaintb = 0;
38 + ant_conf->alt_gaintb = 0;
39 + break;
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;
44 + else
45 + ant_conf->fast_div_bias = 0x1;
46 + ant_conf->main_gaintb = 0;
47 + ant_conf->alt_gaintb = 0;
48 + break;
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;
53 + else
54 + ant_conf->fast_div_bias = 0x1;
55 + ant_conf->main_gaintb = 0;
56 + ant_conf->alt_gaintb = 0;
57 + break;
58 + case 0x21: /* LNA1 LNA2 */
59 + ant_conf->fast_div_bias = 0x1;
60 + ant_conf->main_gaintb = 0;
61 + ant_conf->alt_gaintb = 0;
62 + break;
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;
67 + else
68 + ant_conf->fast_div_bias = 0x1;
69 + ant_conf->main_gaintb = 0;
70 + ant_conf->alt_gaintb = 0;
71 + break;
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;
76 + break;
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;
81 + break;
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;
86 + break;
87 + default:
88 + break;
89 + }
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) |