]> Pileus Git - ~andy/linux/blobdiff - net/mac80211/driver-ops.h
Merge branches 'slab/align', 'slab/cleanups', 'slab/fixes', 'slab/memhotadd' and...
[~andy/linux] / net / mac80211 / driver-ops.h
index c3d844093a2f9203127f1cb10ee1f1d9b97a68ae..4f2271316650d98f08de2f1c460b4b8fb283d752 100644 (file)
@@ -84,16 +84,14 @@ static inline void drv_bss_info_changed(struct ieee80211_local *local,
 }
 
 static inline u64 drv_prepare_multicast(struct ieee80211_local *local,
-                                       int mc_count,
-                                       struct dev_addr_list *mc_list)
+                                       struct netdev_hw_addr_list *mc_list)
 {
        u64 ret = 0;
 
        if (local->ops->prepare_multicast)
-               ret = local->ops->prepare_multicast(&local->hw, mc_count,
-                                                   mc_list);
+               ret = local->ops->prepare_multicast(&local->hw, mc_list);
 
-       trace_drv_prepare_multicast(local, mc_count, ret);
+       trace_drv_prepare_multicast(local, mc_list->count, ret);
 
        return ret;
 }
@@ -154,14 +152,15 @@ static inline void drv_update_tkip_key(struct ieee80211_local *local,
 }
 
 static inline int drv_hw_scan(struct ieee80211_local *local,
+                             struct ieee80211_sub_if_data *sdata,
                              struct cfg80211_scan_request *req)
 {
        int ret;
 
        might_sleep();
 
-       ret = local->ops->hw_scan(&local->hw, req);
-       trace_drv_hw_scan(local, req, ret);
+       ret = local->ops->hw_scan(&local->hw, &sdata->vif, req);
+       trace_drv_hw_scan(local, sdata, req, ret);
        return ret;
 }
 
@@ -346,6 +345,15 @@ static inline int drv_ampdu_action(struct ieee80211_local *local,
        return ret;
 }
 
+static inline int drv_get_survey(struct ieee80211_local *local, int idx,
+                               struct survey_info *survey)
+{
+       int ret = -EOPNOTSUPP;
+       if (local->ops->conf_tx)
+               ret = local->ops->get_survey(&local->hw, idx, survey);
+       /* trace_drv_get_survey(local, idx, survey, ret); */
+       return ret;
+}
 
 static inline void drv_rfkill_poll(struct ieee80211_local *local)
 {
@@ -363,4 +371,15 @@ static inline void drv_flush(struct ieee80211_local *local, bool drop)
        if (local->ops->flush)
                local->ops->flush(&local->hw, drop);
 }
+
+static inline void drv_channel_switch(struct ieee80211_local *local,
+                                    struct ieee80211_channel_switch *ch_switch)
+{
+       might_sleep();
+
+       local->ops->channel_switch(&local->hw, ch_switch);
+
+       trace_drv_channel_switch(local, ch_switch);
+}
+
 #endif /* __MAC80211_DRIVER_OPS */