Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp999934ybl; Fri, 13 Dec 2019 07:59:10 -0800 (PST) X-Google-Smtp-Source: APXvYqya6uTpJ9uaMfeFbIXFawFPDGflEr93S/8UniI4Ti0JpHT8H6ba+4kCfoLfcbIBGs8WXUmM X-Received: by 2002:a9d:5552:: with SMTP id h18mr14778057oti.122.1576252750834; Fri, 13 Dec 2019 07:59:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576252750; cv=none; d=google.com; s=arc-20160816; b=UK9j8VOMPL9X3wZL5kPydGvhtPPswZu2r8n6JogoQmzA3RFXl21zVpYe99ecQZiID4 3Iooew9Phy+ugQMIc8coWiHO1+kp5IbNiM/IVsEZopGY7UDH70zMTmuVjquYtD9Zyhkh q2Je0xDair+6GDrhwjTkUwfcjDe4Dv3kbVKg9aK4NmelxasWtdtoyFvcNrBRzYlFwiAG DUvpXdUj4LtgUhwoGDTfoLDPvkgSfCjy5TBvvgLPI6HdZrSsOdDOUmVxEgzBxaqk5m8g 26GYpTWNWkeIvZTIcIwQ2xtdyiiBKRlvtYXsTCdi7PJ9O8F9PYXHaR6MWkn6dEPZniAo 4Ukw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=t4NegEuKynlIqrnVQOjsiwhFrbgXaJzKy6jPPhRbHYo=; b=LlQbdqvIlHRDDYz0DXATLNW9mAx1Kr+YxfObAgs+/BoeIYVXDDa4dAlX2Cvy9nwv6W CWklpB5DG3w5QSpYCnwhsoK2aKjYECHtcwnLxfFNLG9jo8aF6zMmmRtjeiShqteoadGA ne5QJZ7BtzJvo73eNKK7SOeyI3QGyTR3aSbYHycsXj2hcgGRfvZBZNuKbUm6EN4zbcyt IaatIW30MIElbOQvQ9UbA9wS9ezqY8EDngdHc0VvWJi6t2NZzU7UGlAt4/8eUYbXWqtk yi2sHqbUSCrypE1OLxLClNto+Q6b//95BVBXk336k7T+U/SOsmscmRFvf0gs5sxhoOEy Kumg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p67si5278726oig.256.2019.12.13.07.59.00; Fri, 13 Dec 2019 07:59:10 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728065AbfLMP6S (ORCPT + 99 others); Fri, 13 Dec 2019 10:58:18 -0500 Received: from nbd.name ([46.4.11.11]:56236 "EHLO nbd.name" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728018AbfLMP6O (ORCPT ); Fri, 13 Dec 2019 10:58:14 -0500 Received: from pd95fd344.dip0.t-ipconnect.de ([217.95.211.68] helo=bertha.fritz.box) by ds12 with esmtpa (Exim 4.89) (envelope-from ) id 1ifnKW-00073u-Ii; Fri, 13 Dec 2019 16:58:12 +0100 From: John Crispin To: Johannes Berg , Kalle Valo Cc: linux-wireless@vger.kernel.org, ath11k@lists.infradead.org, John Crispin Subject: [PATCH v2 7/7] ath11k: add handling for BSS color Date: Fri, 13 Dec 2019 16:58:02 +0100 Message-Id: <20191213155802.25491-7-john@phrozen.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191213155802.25491-1-john@phrozen.org> References: <20191213155802.25491-1-john@phrozen.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org 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 Changes in V2 * handle return codes --- drivers/net/wireless/ath/ath11k/mac.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c index 6a8c1c3b8da2..fec268b9b711 100644 --- a/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c @@ -1928,6 +1928,33 @@ 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); } -- 2.20.1