Skip to content

Commit

Permalink
ath10k: Add new api to support TID specific configuration
Browse files Browse the repository at this point in the history
This patch add ops for set_tid_config to support TID
specific configuration. STA information along with the
TID config change mask to notify driver that which configuration
needs to be applied for this current command.
If the STA info not available in the command then the
configuration will be applied for all connected stations
in the vif. TID specific noack configuration requires
aggregation disabled and rate for the data TID packets
should be basic rates. So, if the TID already configured
with noack policy then driver will ignore the aggregation
or TX rate related configuration for the same data TID.
In TX rate configuration should be applied with highest
preamble configuration(HT rates should not be applied
for the station which supports vht rates).

Vif specific TID configuration will be applied for all
the connected stations except for the station which
already applied with the same configuration for the TID
through station specific command. Newly connecting stations
will be applied with vif TID configuration which will be stored
in ieee80211_vif.

Testing:
        * Tested HW: QCA9888
        * Tested FW: 10.4-3.5.1-00052

Signed-off-by: Tamizh chelvam <tamizhr@codeaurora.org>
  • Loading branch information
Tamizh chelvam authored and intel-lab-lkp committed Mar 8, 2019
1 parent 604b8d6 commit 2eab2d8
Show file tree
Hide file tree
Showing 2 changed files with 557 additions and 80 deletions.
6 changes: 6 additions & 0 deletions drivers/net/wireless/ath/ath10k/core.h
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@
/* Default Airtime weight multipler (Tuned for multiclient performance) */
#define ATH10K_AIRTIME_WEIGHT_MULTIPLIER 4

#define ATH10K_MAX_RETRY_COUNT 30

struct ath10k;

static inline const char *ath10k_bus_str(enum ath10k_bus bus)
Expand Down Expand Up @@ -504,6 +506,7 @@ struct ath10k_sta {
#endif
/* Protected with ar->data_lock */
u32 peer_ps_state;
struct work_struct tid_config_wk;
};

#define ATH10K_VDEV_SETUP_TIMEOUT_HZ (5 * HZ)
Expand Down Expand Up @@ -571,6 +574,9 @@ struct ath10k_vif {
struct work_struct ap_csa_work;
struct delayed_work connection_loss_work;
struct cfg80211_bitrate_mask bitrate_mask;
u32 tid_conf_changed[IEEE80211_TID_MAX];

struct ieee80211_tid_config *tid_config;
};

struct ath10k_vif_iter {
Expand Down
Loading

0 comments on commit 2eab2d8

Please sign in to comment.