mac80211: update brcmfmac including missing boardrev workaround
[openwrt.git] / package / kernel / mac80211 / patches / 600-0010-rt2x00-rt2800lib-add-rf_vals-for-RF3853.patch
1 From ecb394ccf248d8652c463133c4f404458a57a9c1 Mon Sep 17 00:00:00 2001
2 From: Gabor Juhos <juhosg@openwrt.org>
3 Date: Sun, 24 Mar 2013 19:26:26 +0100
4 Subject: [PATCH] rt2x00: rt2800lib: add rf_vals for RF3853
5
6 Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
7 ---
8  drivers/net/wireless/ralink/rt2x00/rt2800.h    |    4 +-
9  drivers/net/wireless/ralink/rt2x00/rt2800lib.c |   65 +++++++++++++++++++++++++++++++
10  2 files changed, 68 insertions(+), 1 deletion(-)
11
12 --- a/drivers/net/wireless/ralink/rt2x00/rt2800.h
13 +++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h
14 @@ -48,7 +48,8 @@
15   * RF2853 2.4G/5G 3T3R
16   * RF3320 2.4G 1T1R(RT3350/RT3370/RT3390)
17   * RF3322 2.4G 2T2R(RT3352/RT3371/RT3372/RT3391/RT3392)
18 - * RF3053 2.4G/5G 3T3R(RT3883/RT3563/RT3573/RT3593/RT3662)
19 + * RF3053 2.4G/5G 3T3R(RT3563/RT3573/RT3593)
20 + * RF3853 2.4G/5G 3T3R(RT3883/RT3662)
21   * RF5592 2.4G/5G 2T2R
22   * RF3070 2.4G 1T1R
23   * RF5360 2.4G 1T1R
24 @@ -72,6 +73,7 @@
25  #define RF5592                         0x000f
26  #define RF3070                         0x3070
27  #define RF3290                         0x3290
28 +#define RF3853                         0x3853
29  #define RF5360                         0x5360
30  #define RF5362                         0x5362
31  #define RF5370                         0x5370
32 --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
33 +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
34 @@ -7442,6 +7442,66 @@ static const struct rf_channel rf_vals_3
35         {173, 0x61, 0, 9},
36  };
37  
38 +static const struct rf_channel rf_vals_3853[] = {
39 +       {1,  241, 6, 2},
40 +       {2,  241, 6, 7},
41 +       {3,  242, 6, 2},
42 +       {4,  242, 6, 7},
43 +       {5,  243, 6, 2},
44 +       {6,  243, 6, 7},
45 +       {7,  244, 6, 2},
46 +       {8,  244, 6, 7},
47 +       {9,  245, 6, 2},
48 +       {10, 245, 6, 7},
49 +       {11, 246, 6, 2},
50 +       {12, 246, 6, 7},
51 +       {13, 247, 6, 2},
52 +       {14, 248, 6, 4},
53 +
54 +       {36, 0x56, 8, 4},
55 +       {38, 0x56, 8, 6},
56 +       {40, 0x56, 8, 8},
57 +       {44, 0x57, 8, 0},
58 +       {46, 0x57, 8, 2},
59 +       {48, 0x57, 8, 4},
60 +       {52, 0x57, 8, 8},
61 +       {54, 0x57, 8, 10},
62 +       {56, 0x58, 8, 0},
63 +       {60, 0x58, 8, 4},
64 +       {62, 0x58, 8, 6},
65 +       {64, 0x58, 8, 8},
66 +
67 +       {100, 0x5b, 8, 8},
68 +       {102, 0x5b, 8, 10},
69 +       {104, 0x5c, 8, 0},
70 +       {108, 0x5c, 8, 4},
71 +       {110, 0x5c, 8, 6},
72 +       {112, 0x5c, 8, 8},
73 +       {114, 0x5c, 8, 10},
74 +       {116, 0x5d, 8, 0},
75 +       {118, 0x5d, 8, 2},
76 +       {120, 0x5d, 8, 4},
77 +       {124, 0x5d, 8, 8},
78 +       {126, 0x5d, 8, 10},
79 +       {128, 0x5e, 8, 0},
80 +       {132, 0x5e, 8, 4},
81 +       {134, 0x5e, 8, 6},
82 +       {136, 0x5e, 8, 8},
83 +       {140, 0x5f, 8, 0},
84 +
85 +       {149, 0x5f, 8, 9},
86 +       {151, 0x5f, 8, 11},
87 +       {153, 0x60, 8, 1},
88 +       {157, 0x60, 8, 5},
89 +       {159, 0x60, 8, 7},
90 +       {161, 0x60, 8, 9},
91 +       {165, 0x61, 8, 1},
92 +       {167, 0x61, 8, 3},
93 +       {169, 0x61, 8, 5},
94 +       {171, 0x61, 8, 7},
95 +       {173, 0x61, 8, 9},
96 +};
97 +
98  static const struct rf_channel rf_vals_5592_xtal20[] = {
99         /* Channel, N, K, mod, R */
100         {1, 482, 4, 10, 3},
101 @@ -7669,6 +7729,11 @@ static int rt2800_probe_hw_mode(struct r
102                 spec->channels = rf_vals_3x;
103                 break;
104  
105 +       case RF3853:
106 +               spec->num_channels = ARRAY_SIZE(rf_vals_3853);
107 +               spec->channels = rf_vals_3853;
108 +               break;
109 +
110         case RF5592:
111                 rt2800_register_read(rt2x00dev, MAC_DEBUG_INDEX, &reg);
112                 if (rt2x00_get_field32(reg, MAC_DEBUG_INDEX_XTAL)) {