diff options
Diffstat (limited to 'net/mac80211/driver-ops.h')
-rw-r--r-- | net/mac80211/driver-ops.h | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h index c3d844093a2f..4f2271316650 100644 --- a/net/mac80211/driver-ops.h +++ b/net/mac80211/driver-ops.h | |||
@@ -84,16 +84,14 @@ static inline void drv_bss_info_changed(struct ieee80211_local *local, | |||
84 | } | 84 | } |
85 | 85 | ||
86 | static inline u64 drv_prepare_multicast(struct ieee80211_local *local, | 86 | static inline u64 drv_prepare_multicast(struct ieee80211_local *local, |
87 | int mc_count, | 87 | struct netdev_hw_addr_list *mc_list) |
88 | struct dev_addr_list *mc_list) | ||
89 | { | 88 | { |
90 | u64 ret = 0; | 89 | u64 ret = 0; |
91 | 90 | ||
92 | if (local->ops->prepare_multicast) | 91 | if (local->ops->prepare_multicast) |
93 | ret = local->ops->prepare_multicast(&local->hw, mc_count, | 92 | ret = local->ops->prepare_multicast(&local->hw, mc_list); |
94 | mc_list); | ||
95 | 93 | ||
96 | trace_drv_prepare_multicast(local, mc_count, ret); | 94 | trace_drv_prepare_multicast(local, mc_list->count, ret); |
97 | 95 | ||
98 | return ret; | 96 | return ret; |
99 | } | 97 | } |
@@ -154,14 +152,15 @@ static inline void drv_update_tkip_key(struct ieee80211_local *local, | |||
154 | } | 152 | } |
155 | 153 | ||
156 | static inline int drv_hw_scan(struct ieee80211_local *local, | 154 | static inline int drv_hw_scan(struct ieee80211_local *local, |
155 | struct ieee80211_sub_if_data *sdata, | ||
157 | struct cfg80211_scan_request *req) | 156 | struct cfg80211_scan_request *req) |
158 | { | 157 | { |
159 | int ret; | 158 | int ret; |
160 | 159 | ||
161 | might_sleep(); | 160 | might_sleep(); |
162 | 161 | ||
163 | ret = local->ops->hw_scan(&local->hw, req); | 162 | ret = local->ops->hw_scan(&local->hw, &sdata->vif, req); |
164 | trace_drv_hw_scan(local, req, ret); | 163 | trace_drv_hw_scan(local, sdata, req, ret); |
165 | return ret; | 164 | return ret; |
166 | } | 165 | } |
167 | 166 | ||
@@ -346,6 +345,15 @@ static inline int drv_ampdu_action(struct ieee80211_local *local, | |||
346 | return ret; | 345 | return ret; |
347 | } | 346 | } |
348 | 347 | ||
348 | static inline int drv_get_survey(struct ieee80211_local *local, int idx, | ||
349 | struct survey_info *survey) | ||
350 | { | ||
351 | int ret = -EOPNOTSUPP; | ||
352 | if (local->ops->conf_tx) | ||
353 | ret = local->ops->get_survey(&local->hw, idx, survey); | ||
354 | /* trace_drv_get_survey(local, idx, survey, ret); */ | ||
355 | return ret; | ||
356 | } | ||
349 | 357 | ||
350 | static inline void drv_rfkill_poll(struct ieee80211_local *local) | 358 | static inline void drv_rfkill_poll(struct ieee80211_local *local) |
351 | { | 359 | { |
@@ -363,4 +371,15 @@ static inline void drv_flush(struct ieee80211_local *local, bool drop) | |||
363 | if (local->ops->flush) | 371 | if (local->ops->flush) |
364 | local->ops->flush(&local->hw, drop); | 372 | local->ops->flush(&local->hw, drop); |
365 | } | 373 | } |
374 | |||
375 | static inline void drv_channel_switch(struct ieee80211_local *local, | ||
376 | struct ieee80211_channel_switch *ch_switch) | ||
377 | { | ||
378 | might_sleep(); | ||
379 | |||
380 | local->ops->channel_switch(&local->hw, ch_switch); | ||
381 | |||
382 | trace_drv_channel_switch(local, ch_switch); | ||
383 | } | ||
384 | |||
366 | #endif /* __MAC80211_DRIVER_OPS */ | 385 | #endif /* __MAC80211_DRIVER_OPS */ |