From: Johannes Berg <johannes@sipsolutions.net>
To: Kalle Valo <kvalo@codeaurora.org>, linux-wireless@vger.kernel.org
Cc: ath11k@lists.infradead.org, devicetree@vger.kernel.org
Subject: Re: [PATCH 31/49] ath11k: add mac.c
Date: Tue, 20 Aug 2019 22:46:37 +0200 [thread overview]
Message-ID: <4076919b34cad119eb4146025f587285ef40e37c.camel@sipsolutions.net> (raw)
In-Reply-To: <1566316095-27507-32-git-send-email-kvalo@codeaurora.org> (sfid-20190820_181539_894705_E3B317D0)
On Tue, 2019-08-20 at 18:47 +0300, Kalle Valo wrote:
> +static int ath11k_mac_op_config(struct ieee80211_hw *hw, u32 changed)
> +{
> + struct ath11k *ar = hw->priv;
> + int ret = 0;
> +
> + /* mac80211 requires this op to be present and that's why
> + * there's an empty function, this can be extended when
> + * required.
> + */
Well, oops. Maybe it shouldn't be required?
> + mutex_lock(&ar->conf_mutex);
> +
> + /* TODO: Handle configuration changes as appropriate */
> +
> + mutex_unlock(&ar->conf_mutex);
It's not actually empty though - why bother locking the mutex for
nothing?
> + if (sta->mfp) {
> + /* TODO: Need to check if FW supports PMF? */
Probably not? shouldn't get a sta with MFP unless you advertised support
for it. At least I'd think so, and consider it a mac80211 bug if you
still did.
> + /* This is a workaround for HT-enabled STAs which break the spec
> + * and have no HT capabilities RX mask (no HT RX MCS map).
> + *
> + * As per spec, in section 20.3.5 Modulation and coding scheme (MCS),
> + * MCS 0 through 7 are mandatory in 20MHz with 800 ns GI at all STAs.
Wouldn't that better be in mac80211?
> + ampdu_factor = (vht_cap->cap &
> + IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK) >>
> + IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_SHIFT;
consider u32_get_bits() or something like that from bitfield.h
> + /* Workaround: Some Netgear/Linksys 11ac APs set Rx A-MPDU factor to
> + * zero in VHT IE. Using it would result in degraded throughput.
> + * arg->peer_max_mpdu at this point contains HT max_mpdu so keep
> + * it if VHT max_mpdu is smaller.
> + */
> + arg->peer_max_mpdu = max(arg->peer_max_mpdu,
> + (1U << (IEEE80211_HT_MAX_AMPDU_FACTOR +
> + ampdu_factor)) - 1);
Wait, that seems familiar. Again, put it into mac80211?
> +static void ath11k_peer_assoc_h_smps(struct ieee80211_sta *sta,
> + struct peer_assoc_params *arg)
> +{
> + const struct ieee80211_sta_ht_cap *ht_cap = &sta->ht_cap;
> + int smps;
> +
> + if (!ht_cap->ht_supported)
> + return;
> +
> + smps = ht_cap->cap & IEEE80211_HT_CAP_SM_PS;
> + smps >>= IEEE80211_HT_CAP_SM_PS_SHIFT;
also here, u*_get_bits() or something might be nicer
(and yes, I've written tons of code like this myself before that
existed, which is why I'm pointing it out - it's much nicer)
> +void ath11k_mac_drain_tx(struct ath11k *ar)
> +{
> + /* make sure rcu-protected mac80211 tx path itself is drained */
> + synchronize_net();
Doesn't mac80211 ensure that in the relevant places like flush()? But
then again, not sure where you call this.
> + ath11k_dbg(ar->ab, ATH11K_DBG_MAC, "mac set fixed rate params vdev %i rate 0x%02hhx nss %hhu sgi %hhu\n",
> + arvif->vdev_id, rate, nss, sgi);
nit: that could use a line-break
> + vdev_param = WMI_VDEV_PARAM_FIXED_RATE;
> + ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id,
> + vdev_param, rate);
> + if (ret) {
> + ath11k_warn(ar->ab, "failed to set fixed rate param 0x%02x: %d\n",
>
> + /* TODO: Check if HT capability advertised from firmware is different
> + * for each band for a dual band capable radio. It will be tricky to
> + * handle it when the ht capability different for each band.
> + */
For each band shouldn't really be that tricky?
johannes
next prev parent reply other threads:[~2019-08-20 20:46 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-20 15:47 [PATCH 00/49] ath11k: driver for Qualcomm IEEE 802.11ax devices Kalle Valo
2019-08-20 15:47 ` [PATCH 01/49] dt: bindings: net: add qcom,ath11k.txt Kalle Valo
2019-08-27 17:13 ` Rob Herring
2019-09-05 13:18 ` Kalle Valo
2019-08-20 15:47 ` [PATCH 02/49] ath11k: add Kconfig Kalle Valo
2019-08-20 16:52 ` John Crispin
2019-08-20 15:47 ` [PATCH 03/49] ath11k: add Makefile Kalle Valo
2019-08-20 15:47 ` [PATCH 04/49] ath11k: add ahb.c Kalle Valo
2019-08-20 20:05 ` Johannes Berg
2019-08-21 9:29 ` Vasanthakumar Thiagarajan
2019-08-21 9:40 ` Johannes Berg
2019-08-21 17:10 ` Vasanthakumar Thiagarajan
2019-08-20 15:47 ` [PATCH 05/49] ath11k: add ahb.h Kalle Valo
2019-08-20 15:47 ` [PATCH 06/49] ath11k: add ce.c Kalle Valo
2019-08-20 20:23 ` Johannes Berg
2019-08-21 9:45 ` Vasanthakumar Thiagarajan
2019-08-20 15:47 ` [PATCH 07/49] ath11k: add ce.h Kalle Valo
2019-08-20 15:47 ` [PATCH 08/49] ath11k: add core.c Kalle Valo
2019-08-20 20:32 ` Johannes Berg
2019-09-05 11:37 ` Kalle Valo
2019-10-15 16:24 ` Kalle Valo
2019-08-20 15:47 ` [PATCH 09/49] ath11k: add core.h Kalle Valo
2019-08-20 15:47 ` [PATCH 10/49] ath11k: add debug.c Kalle Valo
2019-08-26 13:47 ` Sven Eckelmann
2019-08-27 7:33 ` Anilkumar Kolli
2019-08-27 7:35 ` Sven Eckelmann
2019-08-27 9:04 ` Anilkumar Kolli
2019-08-27 9:53 ` Sven Eckelmann
2019-08-27 10:04 ` Anilkumar Kolli
2019-08-27 10:49 ` Sven Eckelmann
2019-08-20 15:47 ` [PATCH 11/49] ath11k: add debug.h Kalle Valo
2019-08-20 15:47 ` [PATCH 12/49] ath11k: add debug_htt_stats.c Kalle Valo
2019-08-20 15:47 ` [PATCH 13/49] ath11k: add debug_htt_stats.h Kalle Valo
2019-08-20 15:47 ` [PATCH 14/49] ath11k: add debugfs_sta.c Kalle Valo
2019-08-20 15:47 ` [PATCH 15/49] ath11k: add dp.c Kalle Valo
2019-08-20 15:47 ` [PATCH 16/49] ath11k: add dp.h Kalle Valo
2019-08-20 15:47 ` [PATCH 17/49] ath11k: add dp_rx.c Kalle Valo
2019-08-20 15:47 ` [PATCH 18/49] ath11k: add dp_rx.h Kalle Valo
2019-08-20 15:47 ` [PATCH 19/49] ath11k: add dp_tx.c Kalle Valo
2019-08-20 15:47 ` [PATCH 20/49] ath11k: add dp_tx.h Kalle Valo
2019-08-20 15:47 ` [PATCH 21/49] ath11k: add hal.c Kalle Valo
2019-08-20 15:47 ` [PATCH 22/49] ath11k: add hal.h Kalle Valo
2019-08-20 15:47 ` [PATCH 23/49] ath11k: add hal_desc.h Kalle Valo
2019-08-20 15:47 ` [PATCH 24/49] ath11k: add hal_rx.c Kalle Valo
2019-08-20 15:47 ` [PATCH 25/49] ath11k: add hal_rx.h Kalle Valo
2019-08-20 15:47 ` [PATCH 26/49] ath11k: add hal_tx.c Kalle Valo
2019-08-20 15:47 ` [PATCH 27/49] ath11k: add hal_tx.h Kalle Valo
2019-08-20 15:47 ` [PATCH 28/49] ath11k: add htc.c Kalle Valo
2019-08-20 15:47 ` [PATCH 29/49] ath11k: add htc.h Kalle Valo
2019-08-20 15:47 ` [PATCH 30/49] ath11k: add hw.h Kalle Valo
2019-08-20 15:47 ` [PATCH 31/49] ath11k: add mac.c Kalle Valo
2019-08-20 16:51 ` Toke Høiland-Jørgensen
2019-08-21 5:02 ` Vasanthakumar Thiagarajan
2019-08-21 10:08 ` Toke Høiland-Jørgensen
2019-08-27 10:43 ` Vasanthakumar Thiagarajan
2019-08-27 17:27 ` Toke Høiland-Jørgensen
2019-08-27 19:13 ` Ben Greear
2019-08-20 20:46 ` Johannes Berg [this message]
2019-08-23 12:15 ` Vasanthakumar Thiagarajan
2019-09-05 11:24 ` Kalle Valo
2019-09-05 11:58 ` Vasanthakumar Thiagarajan
2019-09-05 12:29 ` Kalle Valo
2019-09-05 12:50 ` Johannes Berg
2019-08-21 6:16 ` Sven Eckelmann
2019-10-15 16:28 ` Kalle Valo
2019-08-23 15:02 ` Nicolas Cavallari
2019-08-27 10:51 ` Vasanthakumar Thiagarajan
2019-08-20 15:47 ` [PATCH 32/49] ath11k: add mac.h Kalle Valo
2019-08-20 15:47 ` [PATCH 33/49] ath11k: add peer.c Kalle Valo
2019-08-20 15:48 ` [PATCH 34/49] ath11k: add peer.h Kalle Valo
2019-08-20 15:48 ` [PATCH 35/49] ath11k: add qmi.c Kalle Valo
2019-08-20 15:48 ` [PATCH 36/49] ath11k: add qmi.h Kalle Valo
2019-08-20 15:48 ` [PATCH 37/49] ath11k: add reg.c Kalle Valo
2019-08-20 15:48 ` [PATCH 38/49] ath11k: add reg.h Kalle Valo
2019-08-20 15:48 ` [PATCH 39/49] ath11k: add rx_desc.h Kalle Valo
2019-08-20 15:48 ` [PATCH 40/49] ath11k: add testmode.c Kalle Valo
2019-08-20 15:48 ` [PATCH 41/49] ath11k: add testmode.h Kalle Valo
2019-08-20 15:48 ` [PATCH 42/49] ath11k: add testmode_i.h Kalle Valo
2019-08-20 15:48 ` [PATCH 43/49] ath11k: add trace.c Kalle Valo
2019-08-20 15:48 ` [PATCH 44/49] ath11k: add trace.h Kalle Valo
2019-08-20 15:48 ` [PATCH 45/49] ath11k: add wmi.c Kalle Valo
2019-08-20 15:48 ` [PATCH 46/49] ath11k: add wmi.h Kalle Valo
2019-08-20 20:29 ` Johannes Berg
2019-08-23 4:21 ` Vasanthakumar Thiagarajan
2019-08-20 15:48 ` [PATCH 47/49] ath: add ath11k to Makefile Kalle Valo
2019-08-20 15:48 ` [PATCH 48/49] ath: add ath11k to Kconfig Kalle Valo
2019-08-20 15:48 ` [PATCH 49/49] MAINTAINERS: add ath11k Kalle Valo
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=4076919b34cad119eb4146025f587285ef40e37c.camel@sipsolutions.net \
--to=johannes@sipsolutions.net \
--cc=ath11k@lists.infradead.org \
--cc=devicetree@vger.kernel.org \
--cc=kvalo@codeaurora.org \
--cc=linux-wireless@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).