From patchwork Thu Mar 16 15:13:36 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Wunderlich X-Patchwork-Id: 9628629 X-Patchwork-Delegate: kvalo@adurom.com Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 87F526048C for ; Thu, 16 Mar 2017 15:14:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 79D01203C0 for ; Thu, 16 Mar 2017 15:14:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6E73826E4F; Thu, 16 Mar 2017 15:14:32 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 0D1DF28648 for ; Thu, 16 Mar 2017 15:14:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=VmwsXxbivigtHj5mv3ye6v3/cSetkq1iCXYudv6REdQ=; b=dIFO80VCVr7ErdmBWMGsXfu2EB M3galoCoEAnue8bnNUL99i7Vdh7vufZfnT4NVyb/6fYgvL0gxcGNRNXjuHvGFaBlpkyvWLuin32rg q18UXfzMLuVIxKoRe9c7hSwlFHL4a5nwuAC1WjML9KYu2u6S50jv6Tx8yvcNhuwa8kfWeRjxCxL45 yXj56nzv+1IG1IGCjqjG5Qgx2FF0GiiZWueUdBQPX1DzYf9+5twHABvdbei1QxPrdcJWOE+GDMWe+ mtL9AKYM+1sSxvVRLekS5nswIFA3eP5u1QkgRA/RmVc1Yn/iuSRuvrDs5PTgoBMKBAL6/Y6EnVA/P 1V5Dm7bg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1coX6X-0002Zq-VO; Thu, 16 Mar 2017 15:14:17 +0000 Received: from packetmixer.de ([79.140.42.25] helo=mail.mail.packetmixer.de) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1coX6P-0002Mq-Uj for ath10k@lists.infradead.org; Thu, 16 Mar 2017 15:14:15 +0000 Received: from kero.packetmixer.de (p2003007C6F58B00094A5DD1D27095BA3.dip0.t-ipconnect.de [IPv6:2003:7c:6f58:b000:94a5:dd1d:2709:5ba3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mail.packetmixer.de (Postfix) with ESMTPSA id A3AAB622EE; Thu, 16 Mar 2017 16:13:44 +0100 (CET) From: Simon Wunderlich To: ath10k@lists.infradead.org, ath9k-devel@qca.qualcomm.com Subject: [PATCH 2/3] ath10k: add support for channels in licensed bands Date: Thu, 16 Mar 2017 16:13:36 +0100 Message-Id: <20170316151337.24163-3-sw@simonwunderlich.de> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170316151337.24163-1-sw@simonwunderlich.de> References: <20170316151337.24163-1-sw@simonwunderlich.de> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170316_081410_362931_953D509B X-CRM114-Status: GOOD ( 13.60 ) X-BeenThere: ath10k@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mathias Kretschmer , linux-wireless@vger.kernel.org, Simon Wunderlich MIME-Version: 1.0 Sender: "ath10k" Errors-To: ath10k-bounces+patchwork-ath10k=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Many chips support channels in licensed bands. Add support for those, along with a corresponding kernel config option to disable them by default. Note that these channels are not selectable even if the option has been compiled unless the user modifies the regulatory database to explicitly enable the corresponding channels. NOTE: These channels must not be used in most regulatory domains unless you have a license from the FCC or similar! Signed-off-by: Simon Wunderlich Signed-off-by: Mathias Kretschmer --- drivers/net/wireless/ath/ath10k/Kconfig | 20 ++++++++++++++++++++ drivers/net/wireless/ath/ath10k/core.h | 4 ++++ drivers/net/wireless/ath/ath10k/mac.c | 9 +++++++++ drivers/net/wireless/ath/ath10k/wmi.c | 7 +++++-- 4 files changed, 38 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/Kconfig b/drivers/net/wireless/ath/ath10k/Kconfig index b4241cf9b7ed..13a23ed33f91 100644 --- a/drivers/net/wireless/ath/ath10k/Kconfig +++ b/drivers/net/wireless/ath/ath10k/Kconfig @@ -53,3 +53,23 @@ config ATH10K_DFS_CERTIFIED ---help--- This option enables DFS support for initiating radiation on ath10k. + +config ATH10K_LICENSED_CHAN + bool "Support channels in licensed bands" + depends on ATH10K && CFG80211_CERTIFICATION_ONUS + default n + ---help--- + This option enables support for licensed channels on such as + 4.9 GHz (public safety). + + These are PUBLIC SAFETY CHANNELS and MUST NOT BE USED in most + regulatory domains UNLESS YOU HAVE A FULL LICENSE for their use from + your local radio regulator, e.g. the FCC or equivalent. Using these + channels without proper authorisation may result in serious legal + consequences. + + You will also have to build a regulatory database with these channels + enabled to actually use them. + + If you are a distro kernel builder or have any doubt whatsoever about + your legal ability to use these channels, say N. diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h index d4b9a0ec1bdc..7674641537b4 100644 --- a/drivers/net/wireless/ath/ath10k/core.h +++ b/drivers/net/wireless/ath/ath10k/core.h @@ -46,7 +46,11 @@ #define WMI_READY_TIMEOUT (5 * HZ) #define ATH10K_FLUSH_TIMEOUT_HZ (5 * HZ) #define ATH10K_CONNECTION_LOSS_HZ (3 * HZ) +#ifdef CONFIG_ATH10K_LICENSED_CHAN +#define ATH10K_NUM_CHANS 47 +#else #define ATH10K_NUM_CHANS 40 +#endif /* Antenna noise floor */ #define ATH10K_DEFAULT_NOISE_FLOOR -95 diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index a25f0ec15cf8..23895af0fc63 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -7669,6 +7669,15 @@ static const struct ieee80211_channel ath10k_5ghz_channels[] = { CHAN5G(161, 5805, 0), CHAN5G(165, 5825, 0), CHAN5G(169, 5845, 0), +#ifdef CONFIG_ATH10K_LICENSED_CHAN + CHAN5G(184, 4920, 0), + CHAN5G(188, 4940, 0), + CHAN5G(192, 4960, 0), + CHAN5G(196, 4980, 0), + CHAN5G(8, 5040, 0), + CHAN5G(12, 5060, 0), + CHAN5G(16, 5080, 0), +#endif }; struct ath10k *ath10k_mac_create(size_t priv_size) diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c index 4e60caec7ab4..de7a4fa9d347 100644 --- a/drivers/net/wireless/ath/ath10k/wmi.c +++ b/drivers/net/wireless/ath/ath10k/wmi.c @@ -2323,10 +2323,13 @@ int ath10k_wmi_event_mgmt_rx(struct ath10k *ar, struct sk_buff *skb) /* Hardware can Rx CCK rates on 5GHz. In that case phy_mode is set to * MODE_11B. This means phy_mode is not a reliable source for the band * of mgmt rx. + * + * On the other hand, channel 8, 12 and 16 are defined in 5GHz as well + * (5040 - 5080 MHz), therefore apply the override only for channels <=7 */ - if (channel >= 1 && channel <= 14) { + if (channel >= 1 && channel <= 7) { status->band = NL80211_BAND_2GHZ; - } else if (channel >= 36 && channel <= 169) { + } else if (channel >= 8 && channel <= 196) { status->band = NL80211_BAND_5GHZ; } else { /* Shouldn't happen unless list of advertised channels to