Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[firefly-linux-kernel-4.4.55.git] / include / net / mac80211.h
index 8b2c7506f5cb48db8da5a66a8c3ddc0d3b8a29d4..dd73b8c6746bdd1654c08bc5e2c10f77b59a0a1f 100644 (file)
@@ -93,9 +93,11 @@ struct device;
  * enum ieee80211_max_queues - maximum number of queues
  *
  * @IEEE80211_MAX_QUEUES: Maximum number of regular device queues.
+ * @IEEE80211_MAX_QUEUE_MAP: bitmap with maximum queues set
  */
 enum ieee80211_max_queues {
        IEEE80211_MAX_QUEUES =          16,
+       IEEE80211_MAX_QUEUE_MAP =       BIT(IEEE80211_MAX_QUEUES) - 1,
 };
 
 #define IEEE80211_INVAL_HW_QUEUE       0xff
@@ -2233,18 +2235,6 @@ enum ieee80211_roc_type {
  *     MAC address of the device going away.
  *     Hence, this callback must be implemented. It can sleep.
  *
- * @add_interface_debugfs: Drivers can use this callback to add debugfs files
- *     when a vif is added to mac80211. This callback and
- *     @remove_interface_debugfs should be within a CONFIG_MAC80211_DEBUGFS
- *     conditional. @remove_interface_debugfs must be provided for cleanup.
- *     This callback can sleep.
- *
- * @remove_interface_debugfs: Remove the debugfs files which were added using
- *     @add_interface_debugfs. This callback must remove all debugfs entries
- *     that were added because mac80211 only removes interface debugfs when the
- *     interface is destroyed, not when it is removed from the driver.
- *     This callback can sleep.
- *
  * @config: Handler for configuration requests. IEEE 802.11 code calls this
  *     function to change hardware configuration, e.g., channel.
  *     This function should never fail but returns a negative error code
@@ -2450,8 +2440,11 @@ enum ieee80211_roc_type {
  * @testmode_dump: Implement a cfg80211 test mode dump. The callback can sleep.
  *
  * @flush: Flush all pending frames from the hardware queue, making sure
- *     that the hardware queues are empty. If the parameter @drop is set
- *     to %true, pending frames may be dropped. The callback can sleep.
+ *     that the hardware queues are empty. The @queues parameter is a bitmap
+ *     of queues to flush, which is useful if different virtual interfaces
+ *     use different hardware queues; it may also indicate all queues.
+ *     If the parameter @drop is set to %true, pending frames may be dropped.
+ *     The callback can sleep.
  *
  * @channel_switch: Drivers that need (or want) to offload the channel
  *     switch operation for CSAs received from the AP may implement this
@@ -2665,12 +2658,6 @@ struct ieee80211_ops {
                                   struct ieee80211_vif *vif,
                                   struct ieee80211_sta *sta,
                                   struct dentry *dir);
-       void (*add_interface_debugfs)(struct ieee80211_hw *hw,
-                                     struct ieee80211_vif *vif,
-                                     struct dentry *dir);
-       void (*remove_interface_debugfs)(struct ieee80211_hw *hw,
-                                        struct ieee80211_vif *vif,
-                                        struct dentry *dir);
 #endif
        void (*sta_notify)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
                        enum sta_notify_cmd, struct ieee80211_sta *sta);
@@ -2705,7 +2692,7 @@ struct ieee80211_ops {
                             struct netlink_callback *cb,
                             void *data, int len);
 #endif
-       void (*flush)(struct ieee80211_hw *hw, bool drop);
+       void (*flush)(struct ieee80211_hw *hw, u32 queues, bool drop);
        void (*channel_switch)(struct ieee80211_hw *hw,
                               struct ieee80211_channel_switch *ch_switch);
        int (*napi_poll)(struct ieee80211_hw *hw, int budget);