Hello Tamizh, > Signed-off-by: Tamizh chelvam <tamizhr@xxxxxxxxxxxxxx> > --- > 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