diff options
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00dev.c')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00dev.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index 10cf67267775..69097d1faeb6 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c | |||
@@ -1118,6 +1118,34 @@ void rt2x00lib_stop(struct rt2x00_dev *rt2x00dev) | |||
1118 | rt2x00dev->intf_associated = 0; | 1118 | rt2x00dev->intf_associated = 0; |
1119 | } | 1119 | } |
1120 | 1120 | ||
1121 | static inline void rt2x00lib_set_if_combinations(struct rt2x00_dev *rt2x00dev) | ||
1122 | { | ||
1123 | struct ieee80211_iface_limit *if_limit; | ||
1124 | struct ieee80211_iface_combination *if_combination; | ||
1125 | |||
1126 | /* | ||
1127 | * Build up AP interface limits structure. | ||
1128 | */ | ||
1129 | if_limit = &rt2x00dev->if_limits_ap; | ||
1130 | if_limit->max = rt2x00dev->ops->max_ap_intf; | ||
1131 | if_limit->types = BIT(NL80211_IFTYPE_AP); | ||
1132 | |||
1133 | /* | ||
1134 | * Build up AP interface combinations structure. | ||
1135 | */ | ||
1136 | if_combination = &rt2x00dev->if_combinations[IF_COMB_AP]; | ||
1137 | if_combination->limits = if_limit; | ||
1138 | if_combination->n_limits = 1; | ||
1139 | if_combination->max_interfaces = if_limit->max; | ||
1140 | if_combination->num_different_channels = 1; | ||
1141 | |||
1142 | /* | ||
1143 | * Finally, specify the possible combinations to mac80211. | ||
1144 | */ | ||
1145 | rt2x00dev->hw->wiphy->iface_combinations = rt2x00dev->if_combinations; | ||
1146 | rt2x00dev->hw->wiphy->n_iface_combinations = 1; | ||
1147 | } | ||
1148 | |||
1121 | /* | 1149 | /* |
1122 | * driver allocation handlers. | 1150 | * driver allocation handlers. |
1123 | */ | 1151 | */ |
@@ -1126,6 +1154,11 @@ int rt2x00lib_probe_dev(struct rt2x00_dev *rt2x00dev) | |||
1126 | int retval = -ENOMEM; | 1154 | int retval = -ENOMEM; |
1127 | 1155 | ||
1128 | /* | 1156 | /* |
1157 | * Set possible interface combinations. | ||
1158 | */ | ||
1159 | rt2x00lib_set_if_combinations(rt2x00dev); | ||
1160 | |||
1161 | /* | ||
1129 | * Allocate the driver data memory, if necessary. | 1162 | * Allocate the driver data memory, if necessary. |
1130 | */ | 1163 | */ |
1131 | if (rt2x00dev->ops->drv_data_size > 0) { | 1164 | if (rt2x00dev->ops->drv_data_size > 0) { |