48ca03f35a71c24ff998dd424cfd506f1f71ccbe
[openwrt-10.03/.git] / package / mac80211 / patches / 405-world_regd_fixup.patch
1 --- a/drivers/net/wireless/ath/regd.c
2 +++ b/drivers/net/wireless/ath/regd.c
3 @@ -37,7 +37,8 @@
4                                 NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_OFDM)
5  
6  /* We allow IBSS on these on a case by case basis by regulatory domain */
7 -#define ATH9K_5GHZ_5150_5350   REG_RULE(5150-10, 5350+10, 40, 0, 30,\
8 +#define ATH9K_5GHZ_5150_5350   REG_RULE(5150-10, 5250, 40, 0, 30, 0), \
9 +                               REG_RULE(5250, 5350+10, 40, 0, 30,\
10                                 NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS)
11  #define ATH9K_5GHZ_5470_5850   REG_RULE(5470-10, 5850+10, 40, 0, 30,\
12                                 NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS)
13 @@ -55,57 +56,56 @@
14  #define ATH9K_5GHZ_NO_MIDBAND  ATH9K_5GHZ_5150_5350, \
15                                 ATH9K_5GHZ_5725_5850
16  
17 +#define REGD_RULES(...) \
18 +       .reg_rules = { __VA_ARGS__ }, \
19 +       .n_reg_rules = ARRAY_SIZE(((struct ieee80211_reg_rule[]) { __VA_ARGS__ }))
20 +
21  /* Can be used for:
22   * 0x60, 0x61, 0x62 */
23  static const struct ieee80211_regdomain ath_world_regdom_60_61_62 = {
24 -       .n_reg_rules = 5,
25         .alpha2 =  "99",
26 -       .reg_rules = {
27 +       REGD_RULES(
28                 ATH9K_2GHZ_ALL,
29                 ATH9K_5GHZ_ALL,
30 -       }
31 +       )
32  };
33  
34  /* Can be used by 0x63 and 0x65 */
35  static const struct ieee80211_regdomain ath_world_regdom_63_65 = {
36 -       .n_reg_rules = 4,
37         .alpha2 =  "99",
38 -       .reg_rules = {
39 +       REGD_RULES(
40                 ATH9K_2GHZ_CH01_11,
41                 ATH9K_2GHZ_CH12_13,
42                 ATH9K_5GHZ_NO_MIDBAND,
43 -       }
44 +       )
45  };
46  
47  /* Can be used by 0x64 only */
48  static const struct ieee80211_regdomain ath_world_regdom_64 = {
49 -       .n_reg_rules = 3,
50         .alpha2 =  "99",
51 -       .reg_rules = {
52 +       REGD_RULES(
53                 ATH9K_2GHZ_CH01_11,
54                 ATH9K_5GHZ_NO_MIDBAND,
55 -       }
56 +       )
57  };
58  
59  /* Can be used by 0x66 and 0x69 */
60  static const struct ieee80211_regdomain ath_world_regdom_66_69 = {
61 -       .n_reg_rules = 3,
62         .alpha2 =  "99",
63 -       .reg_rules = {
64 +       REGD_RULES(
65                 ATH9K_2GHZ_CH01_11,
66                 ATH9K_5GHZ_ALL,
67 -       }
68 +       )
69  };
70  
71  /* Can be used by 0x67, 0x6A and 0x68 */
72  static const struct ieee80211_regdomain ath_world_regdom_67_68_6A = {
73 -       .n_reg_rules = 4,
74         .alpha2 =  "99",
75 -       .reg_rules = {
76 +       REGD_RULES(
77                 ATH9K_2GHZ_CH01_11,
78                 ATH9K_2GHZ_CH12_13,
79                 ATH9K_5GHZ_ALL,
80 -       }
81 +       )
82  };
83  
84  static inline bool is_wwr_sku(u16 regd)