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
next prev parent 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