ath11k: add handling for BSS color
This patch adds code to handle the BSS_CHANGED_BSS_COLOR flag. It will trigger the propagation of BSS color settings into the FW. Handling is slightly different between AP and STA interfaces. Signed-off-by: John Crispin <john@phrozen.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
@@ -1956,6 +1956,31 @@ static void ath11k_mac_op_bss_info_changed(struct ieee80211_hw *hw,
|
||||
ath11k_wmi_send_obss_spr_cmd(ar, arvif->vdev_id,
|
||||
&info->he_obss_pd);
|
||||
|
||||
if (changed & BSS_CHANGED_HE_BSS_COLOR) {
|
||||
if (vif->type == NL80211_IFTYPE_AP) {
|
||||
ret = ath11k_wmi_send_obss_color_collision_cfg_cmd(
|
||||
ar, arvif->vdev_id, info->he_bss_color.color,
|
||||
ATH11K_BSS_COLOR_COLLISION_DETECTION_AP_PERIOD_MS,
|
||||
!info->he_bss_color.disabled);
|
||||
if (ret)
|
||||
ath11k_warn(ar->ab, "failed to set bss color collision on vdev %i: %d\n",
|
||||
arvif->vdev_id, ret);
|
||||
} else if (vif->type == NL80211_IFTYPE_STATION) {
|
||||
ret = ath11k_wmi_send_bss_color_change_enable_cmd(ar,
|
||||
arvif->vdev_id,
|
||||
1);
|
||||
if (ret)
|
||||
ath11k_warn(ar->ab, "failed to enable bss color change on vdev %i: %d\n",
|
||||
arvif->vdev_id, ret);
|
||||
ret = ath11k_wmi_send_obss_color_collision_cfg_cmd(
|
||||
ar, arvif->vdev_id, 0,
|
||||
ATH11K_BSS_COLOR_COLLISION_DETECTION_STA_PERIOD_MS, 1);
|
||||
if (ret)
|
||||
ath11k_warn(ar->ab, "failed to set bss color collision on vdev %i: %d\n",
|
||||
arvif->vdev_id, ret);
|
||||
}
|
||||
}
|
||||
|
||||
mutex_unlock(&ar->conf_mutex);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user