Hello Tamizh,

> Signed-off-by: Tamizh chelvam <[email protected]>
> ---
>  drivers/net/wireless/ath/ath10k/core.h |  23 ++++
>  drivers/net/wireless/ath/ath10k/mac.c  | 240 
> +++++++++++++++++++++++++++++----
>  drivers/net/wireless/ath/ath10k/wmi.c  |   6 +-
>  drivers/net/wireless/ath/ath10k/wmi.h  |   1 +
>  4 files changed, 245 insertions(+), 25 deletions(-)

...

> +static int ath10k_mac_op_set_tid_conf(struct ieee80211_hw *hw,
> +                                     struct ieee80211_vif *vif,
> +                                     struct ieee80211_sta *sta,
> +                                     struct ieee80211_tid_conf *tid_conf,
> +                                     u8 changed)
> +{
> +       int ret;
> +       struct ath10k *ar = hw->priv;
> +       struct ath10k_vif *arvif = (void *)vif->drv_priv;
> +       struct ath10k_mac_iter_tid_config data = {};
> +       struct wmi_per_peer_per_tid_cfg_arg arg = {};
> +       struct ath10k_sta *arsta;
> +
> +       if (!(changed & TID_RETRY_CONF_CHANGED) &&
> +           !(changed & TID_AGGR_CONF_CHANGED))
> +               return 0;
> +
> +       mutex_lock(&ar->conf_mutex);
> +       arg.vdev_id = arvif->vdev_id;
> +       arg.tid = tid_conf->tid;
> +
> +       if (sta) {
> +               arsta = (struct ath10k_sta *)sta->drv_priv;
> +               ether_addr_copy(arg.peer_macaddr.addr, sta->addr);
> +
> +               if (changed & TID_RETRY_CONF_CHANGED) {
> +                       if (tid_conf->retry_long ==
> +                           arsta->retry_count[arg.tid]) {
> +                               ret = 0;
> +                               goto exit;
> +                       }
> +
> +                       if (tid_conf->retry_long == -1) {
> +                               if (arvif->retry_count[arg.tid])
> +                                       arg.retry_count =
> +                                               arvif->retry_count[arg.tid];
> +                               else
> +                                       arg.retry_count =
> +                                               ATH10K_MAX_RETRY_COUNT;
> +                       } else {
> +                               arg.retry_count = tid_conf->retry_long;
> +                       }
> +               }
> +               if (changed & TID_AGGR_CONF_CHANGED) {
> +                       if (tid_conf->aggr)
> +                               arg.aggr_control =
> +                                       WMI_TID_CONFIG_AGGR_CONTROL_ENABLE;
> +                       else
> +                               arg.aggr_control =
> +                                       WMI_TID_CONFIG_AGGR_CONTROL_DISABLE;
> +               }
> +
> +               ret = ath10k_wmi_set_per_peer_per_tid_cfg(ar, &arg);
> +               if (!ret) {
> +                       /* Store the configured parameters in success case */
> +                       if (changed & TID_RETRY_CONF_CHANGED)
> +                               arsta->retry_count[arg.tid] =
> +                                                       tid_conf->retry_long;
> +                       if (changed & TID_AGGR_CONF_CHANGED)
> +                               arsta->aggr_ctrl[arg.tid] = arg.aggr_control;
> +               }
> +
> +               goto exit;
> +       }
> +
> +       ret = 0;
> +
> +       if (changed & TID_RETRY_CONF_CHANGED)
> +               arvif->retry_count[tid_conf->tid] = tid_conf->retry_long;

Shouldn't it use default ATH10K_MAX_RETRY_COUNT value when
incoming retry_long value is -1 ?

Regards,
Sergey

Reply via email to