From: "Jérôme Pouiller" <Jerome.Pouiller@silabs.com> To: "devel@driverdev.osuosl.org" <devel@driverdev.osuosl.org>, "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org> Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>, "Kalle Valo" <kvalo@codeaurora.org>, "David S . Miller" <davem@davemloft.net>, "Jérôme Pouiller" <Jerome.Pouiller@silabs.com> Subject: [PATCH v2 07/55] staging: wfx: ensure that retry policy always fallbacks to MCS0 / 1Mbps Date: Tue, 17 Dec 2019 16:14:36 +0000 [thread overview] Message-ID: <20191217161318.31402-8-Jerome.Pouiller@silabs.com> (raw) In-Reply-To: <20191217161318.31402-1-Jerome.Pouiller@silabs.com> From: Jérôme Pouiller <jerome.pouiller@silabs.com> When not using HT mode, minstrel always includes 1Mbps as fallback rate. But, when using HT mode, this fallback is not included. Yet, it seems that it could save some frames. So, this patch add it unconditionally. Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com> --- drivers/staging/wfx/data_tx.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/staging/wfx/data_tx.c b/drivers/staging/wfx/data_tx.c index 46ad83b95f52..738a6ca5edad 100644 --- a/drivers/staging/wfx/data_tx.c +++ b/drivers/staging/wfx/data_tx.c @@ -538,6 +538,17 @@ static void wfx_tx_fixup_rates(struct ieee80211_tx_rate *rates) } } } while (!finished); + // Ensure that MCS0 or 1Mbps is present at the end of the retry list + for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) { + if (rates[i].idx == 0) + break; + if (rates[i].idx == -1) { + rates[i].idx = 0; + rates[i].count = 8; // == hw->max_rate_tries + rates[i].flags = rates[i - 1].flags & IEEE80211_TX_RC_MCS; + break; + } + } // All retries use long GI for (i = 1; i < IEEE80211_TX_MAX_RATES; i++) rates[i].flags &= ~IEEE80211_TX_RC_SHORT_GI; -- 2.24.0
WARNING: multiple messages have this Message-ID (diff)
From: "Jérôme Pouiller" <Jerome.Pouiller@silabs.com> To: "devel@driverdev.osuosl.org" <devel@driverdev.osuosl.org>, "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org> Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, "David S . Miller" <davem@davemloft.net>, Kalle Valo <kvalo@codeaurora.org> Subject: [PATCH v2 07/55] staging: wfx: ensure that retry policy always fallbacks to MCS0 / 1Mbps Date: Tue, 17 Dec 2019 16:14:36 +0000 [thread overview] Message-ID: <20191217161318.31402-8-Jerome.Pouiller@silabs.com> (raw) In-Reply-To: <20191217161318.31402-1-Jerome.Pouiller@silabs.com> From: Jérôme Pouiller <jerome.pouiller@silabs.com> When not using HT mode, minstrel always includes 1Mbps as fallback rate. But, when using HT mode, this fallback is not included. Yet, it seems that it could save some frames. So, this patch add it unconditionally. Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com> --- drivers/staging/wfx/data_tx.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/staging/wfx/data_tx.c b/drivers/staging/wfx/data_tx.c index 46ad83b95f52..738a6ca5edad 100644 --- a/drivers/staging/wfx/data_tx.c +++ b/drivers/staging/wfx/data_tx.c @@ -538,6 +538,17 @@ static void wfx_tx_fixup_rates(struct ieee80211_tx_rate *rates) } } } while (!finished); + // Ensure that MCS0 or 1Mbps is present at the end of the retry list + for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) { + if (rates[i].idx == 0) + break; + if (rates[i].idx == -1) { + rates[i].idx = 0; + rates[i].count = 8; // == hw->max_rate_tries + rates[i].flags = rates[i - 1].flags & IEEE80211_TX_RC_MCS; + break; + } + } // All retries use long GI for (i = 1; i < IEEE80211_TX_MAX_RATES; i++) rates[i].flags &= ~IEEE80211_TX_RC_SHORT_GI; -- 2.24.0 _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
next prev parent reply other threads:[~2019-12-17 16:20 UTC|newest] Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-12-17 16:14 [PATCH v2 00/55] Improve wfx driver Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 01/55] staging: wfx: fix the cache of rate policies on interface reset Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 02/55] staging: wfx: fix case of lack of tx_retry_policies Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 03/55] staging: wfx: fix counter overflow Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 04/55] staging: wfx: use boolean appropriately Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 05/55] staging: wfx: firmware does not support more than 32 total retries Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 06/55] staging: wfx: fix rate control handling Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller [this message] 2019-12-17 16:14 ` [PATCH v2 07/55] staging: wfx: ensure that retry policy always fallbacks to MCS0 / 1Mbps Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 08/55] staging: wfx: detect race condition in WEP authentication Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 09/55] staging: wfx: fix hif_set_mfp() with big endian hosts Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 10/55] staging: wfx: fix wrong error message Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 11/55] staging: wfx: increase SPI bus frequency limit Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 12/55] staging: wfx: don't print useless error messages Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 13/55] staging: wfx: avoid double warning when no more tx policy are available Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 14/55] staging: wfx: improve error message on unexpected confirmation Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 15/55] staging: wfx: take advantage of IS_ERR_OR_NULL() Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 16/55] staging: wfx: uniformize naming rule Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 17/55] staging: wfx: use meaningful names for CFG_BYTE_ORDER_* Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 18/55] staging: wfx: remove useless include Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 19/55] staging: wfx: simplify variable assignment Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 20/55] staging: wfx: make conditions easier to read Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 21/55] staging: wfx: ensure that traces never modify arguments Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:14 ` [PATCH v2 22/55] staging: wfx: ensure that received hif messages are never modified Jérôme Pouiller 2019-12-17 16:14 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 23/55] staging: wfx: fix typo in "num_of_ssi_ds" Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 24/55] staging: wfx: fix typo in "num_i_es" Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 25/55] staging: wfx: fix name of struct hif_req_start_scan_alt Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 26/55] staging: wfx: improve API of hif_req_join->infrastructure_bss_mode Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 27/55] staging: wfx: better naming for hif_req_join->short_preamble Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 28/55] staging: wfx: better naming for hif_mib_set_association_mode->greenfield Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 29/55] staging: wfx: simplify handling of tx_lock in wfx_do_join() Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 30/55] staging: wfx: firmware already handle powersave mode during scan Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 31/55] staging: wfx: declare wfx_set_pm() static Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 32/55] staging: wfx: drop useless argument from wfx_set_pm() Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 33/55] staging: wfx: remove redundant test while calling wfx_update_pm() Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 34/55] staging: wfx: drop unnecessary wvif->powersave_mode Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 35/55] staging: wfx: do not try to save call to hif_set_pm() Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 36/55] staging: wfx: fix pm_mode timeout Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 37/55] staging: wfx: simplify wfx_conf_tx() Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 38/55] staging: wfx: prefer a bitmask instead of an array of boolean Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 39/55] staging: wfx: simplify hif_set_uapsd_info() usage Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 40/55] staging: wfx: simplify hif_set_pm() usage Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 41/55] staging: wfx: drop struct wfx_edca_params Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 42/55] staging: wfx: remove unnecessary EDCA initialisation Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 43/55] staging: wfx: simplify hif_set_edca_queue_params() usage Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 44/55] staging: wfx: hif_scan() never fails Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 45/55] staging: wfx: device already handle sleep mode during scan Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 46/55] staging: wfx: drop useless wfx_scan_complete() Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 47/55] staging: wfx: simplify hif_scan() usage Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 48/55] staging: wfx: introduce update_probe_tmpl() Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 49/55] staging: wfx: simplify hif_set_template_frame() usage Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 50/55] staging: wfx: rewrite wfx_hw_scan() Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 51/55] staging: wfx: workaround bug with "iw scan" Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 52/55] staging: wfx: delayed_unjoin cannot happen Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 53/55] staging: wfx: delayed_link_loss " Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 54/55] staging: wfx: implement cancel_hw_scan() Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-17 16:15 ` [PATCH v2 55/55] staging: wfx: update TODO Jérôme Pouiller 2019-12-17 16:15 ` Jérôme Pouiller 2019-12-18 15:03 ` [PATCH v2 00/55] Improve wfx driver Greg Kroah-Hartman 2019-12-18 15:03 ` Greg Kroah-Hartman
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=20191217161318.31402-8-Jerome.Pouiller@silabs.com \ --to=jerome.pouiller@silabs.com \ --cc=davem@davemloft.net \ --cc=devel@driverdev.osuosl.org \ --cc=gregkh@linuxfoundation.org \ --cc=kvalo@codeaurora.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-wireless@vger.kernel.org \ --cc=netdev@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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.