ATH10K Archive on lore.kernel.org
 help / color / Atom feed
From: Zefir Kurtisi <zefir.kurtisi@neratec.com>
To: Simon Wunderlich <sw@simonwunderlich.de>,
	ath10k@lists.infradead.org, ath9k-devel@qca.qualcomm.com
Cc: Julian Calaby <julian.calaby@gmail.com>,
	Ben Greear <greearb@candelatech.com>,
	Mathias Kretschmer <mathias.kretschmer@fit.fraunhofer.de>,
	linux-wireless@vger.kernel.org
Subject: Re: [PATCH 1/3] ath9k: Support channels in licensed bands
Date: Fri, 17 Mar 2017 14:40:50 +0100
Message-ID: <096bcee2-a991-eac1-8f4f-d7cf7c34730d@neratec.com> (raw)
In-Reply-To: <20170316151337.24163-2-sw@simonwunderlich.de>

On 03/16/2017 04:13 PM, Simon Wunderlich wrote:
> From: Ben Greear <greearb@candelatech.com>
> 
> 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: Ben Greear <greearb@candelatech.com>
> [Hide this support behind a Kconfig option]
> Signed-off-by: Julian Calaby <julian.calaby@gmail.com>
> [only use the 20 mhz channels, add 5 ghz, change to 4.9ghz to licensed bands]
> Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
> Signed-off-by: Mathias Kretschmer <mathias.kretschmer@fit.fraunhofer.de>
> ---
>  drivers/net/wireless/ath/ath9k/Kconfig       | 20 ++++++++++++++++
>  drivers/net/wireless/ath/ath9k/ath9k.h       |  2 +-
>  drivers/net/wireless/ath/ath9k/common-init.c | 35 +++++++++++++++++++++-------
>  drivers/net/wireless/ath/ath9k/hw.h          |  4 ++--
>  4 files changed, 50 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath9k/Kconfig b/drivers/net/wireless/ath/ath9k/Kconfig
> index 783a38f1a626..23b8abf4449a 100644
> --- a/drivers/net/wireless/ath/ath9k/Kconfig
> +++ b/drivers/net/wireless/ath/ath9k/Kconfig
> @@ -116,6 +116,26 @@ config ATH9K_DFS_CERTIFIED
>  	  developed. At this point enabling this option won't do anything
>  	  except increase code size.
>  
> +config ATH9K_LICENSED_CHAN
> +	bool "Support channels in licensed bands"
> +	depends on ATH9K && 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.
> +
>  config ATH9K_DYNACK
>  	bool "Atheros ath9k ACK timeout estimation algorithm (EXPERIMENTAL)"
>  	depends on ATH9K
> diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
> index cf076719c27e..d215c3f968d4 100644
> --- a/drivers/net/wireless/ath/ath9k/ath9k.h
> +++ b/drivers/net/wireless/ath/ath9k/ath9k.h
> @@ -996,7 +996,7 @@ struct ath_softc {
>  	struct device *dev;
>  
>  	struct survey_info *cur_survey;
> -	struct survey_info survey[ATH9K_NUM_CHANNELS];
> +	struct survey_info survey[ATH9K_MAX_NUM_CHANNELS];
>  
>  	spinlock_t intr_lock;
>  	struct tasklet_struct intr_tq;
> diff --git a/drivers/net/wireless/ath/ath9k/common-init.c b/drivers/net/wireless/ath/ath9k/common-init.c
> index 8b4f7fdabf58..0d632c22bc16 100644
> --- a/drivers/net/wireless/ath/ath9k/common-init.c
> +++ b/drivers/net/wireless/ath/ath9k/common-init.c
> @@ -86,6 +86,22 @@ static const struct ieee80211_channel ath9k_5ghz_chantable[] = {
>  	CHAN5G(5785, 35), /* Channel 157 */
>  	CHAN5G(5805, 36), /* Channel 161 */
>  	CHAN5G(5825, 37), /* Channel 165 */
> +
> +#ifdef CONFIG_ATH9K_LICENSED_CHAN
> +	/* 4.9Ghz channels, public safety channels, license is required in US
> +	 * and most other regulatory domains!
> +	 */
> +	/* 802.11j 4.9 GHz (20 MHz) */
> +	CHAN5G(4920, 38), /* channel 184 */
> +	CHAN5G(4940, 39), /* channel 188 */
> +	CHAN5G(4960, 40), /* channel 192 */
> +	CHAN5G(4980, 41), /* channel 196 */
> +	/* 802.11j 5.030 - 5.080 GHz (20 MHz) */
> +	CHAN5G(5040, 42), /* channel 8 */
> +	CHAN5G(5060, 43), /* channel 12 */
> +	CHAN5G(5080, 44), /* channel 16 */
> +#endif
> +#define ATH9K_NUM_LICENSED_CHANNELS 7
>  };
>  
>  /* Atheros hardware rate code addition for short premble */
> @@ -126,10 +142,14 @@ int ath9k_cmn_init_channels_rates(struct ath_common *common)
>  {
>  	struct ath_hw *ah = (struct ath_hw *)common->ah;
>  	void *channels;
> +	int num_5ghz_chan = ARRAY_SIZE(ath9k_5ghz_chantable);
> +
> +	if (!IS_ENABLED(CONFIG_ATH9K_LICENSED_CHAN))
> +		num_5ghz_chan -= ATH9K_NUM_LICENSED_CHANNELS;
These two lines seem wrong to me, since the extra channels are only added to the
list if CONFIG_ATH9K_LICENSED_CHAN is defined. If it is not, this cuts off the
last 7 regular channels, no?

Cheers,
Zefir


_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

  reply index

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-16 15:13 [PATCH 0/3] Channels in licensed bands, noise floor override Simon Wunderlich
2017-03-16 15:13 ` [PATCH 1/3] ath9k: Support channels in licensed bands Simon Wunderlich
2017-03-17 13:40   ` Zefir Kurtisi [this message]
2017-03-17 14:02     ` Simon Wunderlich
2017-03-17 16:00     ` [PATCHv2 " Simon Wunderlich
2017-03-16 15:13 ` [PATCH 2/3] ath10k: add support for " Simon Wunderlich
2017-03-17 18:49   ` Sebastian Gottschall
2017-03-23  9:00     ` Simon Wunderlich
2017-03-16 15:13 ` [PATCH 3/3] ath9k: add noise floor override option Simon Wunderlich
2017-03-17  8:48   ` Janusz Dziedzic
2017-03-17  8:55     ` Simon Wunderlich
2017-03-17 12:44       ` Janusz Dziedzic

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=096bcee2-a991-eac1-8f4f-d7cf7c34730d@neratec.com \
    --to=zefir.kurtisi@neratec.com \
    --cc=ath10k@lists.infradead.org \
    --cc=ath9k-devel@qca.qualcomm.com \
    --cc=greearb@candelatech.com \
    --cc=julian.calaby@gmail.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=mathias.kretschmer@fit.fraunhofer.de \
    --cc=sw@simonwunderlich.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ATH10K Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/ath10k/0 ath10k/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ath10k ath10k/ https://lore.kernel.org/ath10k \
		ath10k@lists.infradead.org
	public-inbox-index ath10k

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.infradead.lists.ath10k


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git