ATH10K Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Greear <greearb@candelatech.com>
To: s.gottschall@dd-wrt.com, ath10k@lists.infradead.org,
	linux-wireless@vger.kernel.org
Cc: kvalo@codeaurora.org
Subject: Re: [PATCH v1] ath10k: fix band_center_freq handling for VHT160 in recent firmwares
Date: Thu, 26 Apr 2018 06:44:00 -0700	[thread overview]
Message-ID: <19b8766e-d474-31d3-ff38-993498ee670d@candelatech.com> (raw)
In-Reply-To: <20180426094357.24358-1-s.gottschall@dd-wrt.com>



On 04/26/2018 02:43 AM, s.gottschall@dd-wrt.com wrote:
> From: Sebastian Gottschall <s.gottschall@dd-wrt.com>
>
> starting with firmware 10.4.3.4.x series QCA changed the handling of the channel property band_center_freq1 and band_center_freq2 in vht160 operation mode
> likelly for backward compatiblity with vht80 only capable clients.
> this patch adjusts the handling to get vht160 to work again with official qca firmwares newer than 3.3
> consider that this patch will not work with older firmwares anymore. to avoid undefined behaviour this we disable vht160 capability for outdated firmwares

We should be able to use a feature-flag or otherwise determine if the firmware needs the old or new
API and make the driver able to handle both.

Thanks,
Ben

> ---
>  drivers/net/wireless/ath/ath10k/mac.c |  7 -------
>  drivers/net/wireless/ath/ath10k/wmi.c | 11 ++++++++---
>  2 files changed, 8 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
> index 5be6386ede8f..d1239d40ac19 100644
> --- a/drivers/net/wireless/ath/ath10k/mac.c
> +++ b/drivers/net/wireless/ath/ath10k/mac.c
> @@ -4449,13 +4449,6 @@ static struct ieee80211_sta_vht_cap ath10k_create_vht_cap(struct ath10k *ar)
>  		vht_cap.cap |= val;
>  	}
>
> -	/* Currently the firmware seems to be buggy, don't enable 80+80
> -	 * mode until that's resolved.
> -	 */
> -	if ((ar->vht_cap_info & IEEE80211_VHT_CAP_SHORT_GI_160) &&
> -	    (ar->vht_cap_info & IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK) == 0)
> -		vht_cap.cap |= IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ;
> -
>  	mcs_map = 0;
>  	for (i = 0; i < 8; i++) {
>  		if ((i < ar->num_rf_chains) && (ar->cfg_tx_chainmask & BIT(i)))
> diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
> index 2c36256a441d..d78b8857a513 100644
> --- a/drivers/net/wireless/ath/ath10k/wmi.c
> +++ b/drivers/net/wireless/ath/ath10k/wmi.c
> @@ -1671,13 +1671,18 @@ void ath10k_wmi_put_wmi_channel(struct wmi_channel *ch,
>  		flags |= WMI_CHAN_FLAG_HT40_PLUS;
>  	if (arg->chan_radar)
>  		flags |= WMI_CHAN_FLAG_DFS;
> -
> +	ch->band_center_freq2 = 0;
>  	ch->mhz = __cpu_to_le32(arg->freq);
>  	ch->band_center_freq1 = __cpu_to_le32(arg->band_center_freq1);
>  	if (arg->mode == MODE_11AC_VHT80_80)
>  		ch->band_center_freq2 = __cpu_to_le32(arg->band_center_freq2);
> -	else
> -		ch->band_center_freq2 = 0;
> +	if (arg->mode == MODE_11AC_VHT160)  {
> +		if (arg->freq < arg->band_center_freq1)
> +			ch->band_center_freq1 = __cpu_to_le32(arg->band_center_freq1 - 40);
> +		else
> +			ch->band_center_freq1 = __cpu_to_le32(arg->band_center_freq1 + 40);		
> +		ch->band_center_freq2 = __cpu_to_le32(arg->band_center_freq1);
> +	}
>  	ch->min_power = arg->min_power;
>  	ch->max_power = arg->max_power;
>  	ch->reg_power = arg->max_reg_power;
>

-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com

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

  reply	other threads:[~2018-04-26 13:44 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-26  9:43 [PATCH v1] ath10k: fix band_center_freq handling for VHT160 in recent firmwares s.gottschall
2018-04-26 13:44 ` Ben Greear [this message]
2018-04-26 15:12   ` Sebastian Gottschall
2018-05-25 14:44     ` Kalle Valo
2018-05-25 14:52       ` Ben Greear
2018-05-27 22:25         ` Sebastian Gottschall
2018-05-28 14:43           ` Ben Greear
2018-05-28 17:54             ` Sebastian Gottschall
2018-05-28 21:08               ` Ben Greear

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=19b8766e-d474-31d3-ff38-993498ee670d@candelatech.com \
    --to=greearb@candelatech.com \
    --cc=ath10k@lists.infradead.org \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=s.gottschall@dd-wrt.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox