OSDN Git Service

Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[uclinux-h8/linux.git] / drivers / net / wireless / ath / ath10k / core.h
index 7840cf3..a62b62a 100644 (file)
@@ -69,6 +69,7 @@ struct ath10k;
 
 enum ath10k_bus {
        ATH10K_BUS_PCI,
+       ATH10K_BUS_AHB,
 };
 
 static inline const char *ath10k_bus_str(enum ath10k_bus bus)
@@ -76,6 +77,8 @@ static inline const char *ath10k_bus_str(enum ath10k_bus bus)
        switch (bus) {
        case ATH10K_BUS_PCI:
                return "pci";
+       case ATH10K_BUS_AHB:
+               return "ahb";
        }
 
        return "unknown";
@@ -159,6 +162,7 @@ struct ath10k_fw_stats_peer {
        u32 peer_rssi;
        u32 peer_tx_rate;
        u32 peer_rx_rate; /* 10x only */
+       u32 rx_duration;
 };
 
 struct ath10k_fw_stats_vdev {
@@ -315,6 +319,7 @@ struct ath10k_sta {
 #ifdef CONFIG_MAC80211_DEBUGFS
        /* protected by conf_mutex */
        bool aggr_mode;
+       u64 rx_duration;
 #endif
 };
 
@@ -510,6 +515,15 @@ enum ath10k_fw_features {
        /* Firmware supports management frame protection */
        ATH10K_FW_FEATURE_MFP_SUPPORT = 12,
 
+       /* Firmware supports pull-push model where host shares it's software
+        * queue state with firmware and firmware generates fetch requests
+        * telling host which queues to dequeue tx from.
+        *
+        * Primary function of this is improved MU-MIMO performance with
+        * multiple clients.
+        */
+       ATH10K_FW_FEATURE_PEER_FLOW_CONTROL = 13,
+
        /* keep last */
        ATH10K_FW_FEATURE_COUNT,
 };
@@ -666,6 +680,12 @@ struct ath10k {
                /* The padding bytes's location is different on various chips */
                enum ath10k_hw_4addr_pad hw_4addr_pad;
 
+               u32 num_msdu_desc;
+               u32 qcache_active_peers;
+               u32 tx_chain_mask;
+               u32 rx_chain_mask;
+               u32 max_spatial_stream;
+
                struct ath10k_hw_params_fw {
                        const char *dir;
                        const char *fw;