diff options
Diffstat (limited to 'package/kernel/mac80211/patches/rt2x00/004-v6.1-rt2x00-move-up-and-reuse-busy-wait-functions.patch')
-rw-r--r-- | package/kernel/mac80211/patches/rt2x00/004-v6.1-rt2x00-move-up-and-reuse-busy-wait-functions.patch | 178 |
1 files changed, 0 insertions, 178 deletions
diff --git a/package/kernel/mac80211/patches/rt2x00/004-v6.1-rt2x00-move-up-and-reuse-busy-wait-functions.patch b/package/kernel/mac80211/patches/rt2x00/004-v6.1-rt2x00-move-up-and-reuse-busy-wait-functions.patch deleted file mode 100644 index c9b0d82b64..0000000000 --- a/package/kernel/mac80211/patches/rt2x00/004-v6.1-rt2x00-move-up-and-reuse-busy-wait-functions.patch +++ /dev/null @@ -1,178 +0,0 @@ -From patchwork Sat Sep 17 20:27:10 2022 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Daniel Golle <daniel@makrotopia.org> -X-Patchwork-Id: 12979245 -X-Patchwork-Delegate: kvalo@adurom.com -Return-Path: <linux-wireless-owner@kernel.org> -Date: Sat, 17 Sep 2022 21:27:10 +0100 -From: Daniel Golle <daniel@makrotopia.org> -To: linux-wireless@vger.kernel.org, Stanislaw Gruszka <stf_xl@wp.pl>, - Helmut Schaa <helmut.schaa@googlemail.com> -Cc: Kalle Valo <kvalo@kernel.org>, - "David S. Miller" <davem@davemloft.net>, - Eric Dumazet <edumazet@google.com>, - Jakub Kicinski <kuba@kernel.org>, - Paolo Abeni <pabeni@redhat.com>, - Johannes Berg <johannes.berg@intel.com> -Subject: [PATCH v3 04/16] rt2x00: move up and reuse busy wait functions -Message-ID: - <3fdb9dc15e76a9f9c1948b4a3a1308a7a5677bb8.1663445157.git.daniel@makrotopia.org> -References: <cover.1663445157.git.daniel@makrotopia.org> -MIME-Version: 1.0 -Content-Disposition: inline -In-Reply-To: <cover.1663445157.git.daniel@makrotopia.org> -Precedence: bulk -List-ID: <linux-wireless.vger.kernel.org> -X-Mailing-List: linux-wireless@vger.kernel.org - -Move bbp_ready and rf_ready busy wait functions up in the code so they -can more easily be used. Allow specifying register mask in rf_ready -function which is useful for calibration routines which will be added -in follow-up commits. - -Signed-off-by: Daniel Golle <daniel@makrotopia.org> -Acked-by: Stanislaw Gruszka <stf_xl@wp.pl> ---- - .../net/wireless/ralink/rt2x00/rt2800lib.c | 99 +++++++++---------- - 1 file changed, 46 insertions(+), 53 deletions(-) - ---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -2143,6 +2143,48 @@ void rt2800_config_erp(struct rt2x00_dev - } - EXPORT_SYMBOL_GPL(rt2800_config_erp); - -+static int rt2800_wait_bbp_rf_ready(struct rt2x00_dev *rt2x00dev, -+ const struct rt2x00_field32 mask) -+{ -+ unsigned int i; -+ u32 reg; -+ -+ for (i = 0; i < REGISTER_BUSY_COUNT; i++) { -+ reg = rt2800_register_read(rt2x00dev, MAC_STATUS_CFG); -+ if (!rt2x00_get_field32(reg, mask)) -+ return 0; -+ -+ udelay(REGISTER_BUSY_DELAY); -+ } -+ -+ rt2x00_err(rt2x00dev, "BBP/RF register access failed, aborting\n"); -+ return -EACCES; -+} -+ -+static int rt2800_wait_bbp_ready(struct rt2x00_dev *rt2x00dev) -+{ -+ unsigned int i; -+ u8 value; -+ -+ /* -+ * BBP was enabled after firmware was loaded, -+ * but we need to reactivate it now. -+ */ -+ rt2800_register_write(rt2x00dev, H2M_BBP_AGENT, 0); -+ rt2800_register_write(rt2x00dev, H2M_MAILBOX_CSR, 0); -+ msleep(1); -+ -+ for (i = 0; i < REGISTER_BUSY_COUNT; i++) { -+ value = rt2800_bbp_read(rt2x00dev, 0); -+ if ((value != 0xff) && (value != 0x00)) -+ return 0; -+ udelay(REGISTER_BUSY_DELAY); -+ } -+ -+ rt2x00_err(rt2x00dev, "BBP register access failed, aborting\n"); -+ return -EACCES; -+} -+ - static void rt2800_config_3572bt_ant(struct rt2x00_dev *rt2x00dev) - { - u32 reg; -@@ -3799,10 +3841,9 @@ static void rt2800_config_alc(struct rt2 - struct ieee80211_channel *chan, - int power_level) { - u16 eeprom, target_power, max_power; -- u32 mac_sys_ctrl, mac_status; -+ u32 mac_sys_ctrl; - u32 reg; - u8 bbp; -- int i; - - /* hardware unit is 0.5dBm, limited to 23.5dBm */ - power_level *= 2; -@@ -3838,16 +3879,8 @@ static void rt2800_config_alc(struct rt2 - /* Disable Tx/Rx */ - rt2800_register_write(rt2x00dev, MAC_SYS_CTRL, 0); - /* Check MAC Tx/Rx idle */ -- for (i = 0; i < 10000; i++) { -- mac_status = rt2800_register_read(rt2x00dev, MAC_STATUS_CFG); -- if (mac_status & 0x3) -- usleep_range(50, 200); -- else -- break; -- } -- -- if (i == 10000) -- rt2x00_warn(rt2x00dev, "Wait MAC Status to MAX !!!\n"); -+ if (unlikely(rt2800_wait_bbp_rf_ready(rt2x00dev, MAC_STATUS_CFG_BBP_RF_BUSY))) -+ rt2x00_warn(rt2x00dev, "RF busy while configuring ALC\n"); - - if (chan->center_freq > 2457) { - bbp = rt2800_bbp_read(rt2x00dev, 30); -@@ -6275,46 +6308,6 @@ static int rt2800_init_registers(struct - return 0; - } - --static int rt2800_wait_bbp_rf_ready(struct rt2x00_dev *rt2x00dev) --{ -- unsigned int i; -- u32 reg; -- -- for (i = 0; i < REGISTER_BUSY_COUNT; i++) { -- reg = rt2800_register_read(rt2x00dev, MAC_STATUS_CFG); -- if (!rt2x00_get_field32(reg, MAC_STATUS_CFG_BBP_RF_BUSY)) -- return 0; -- -- udelay(REGISTER_BUSY_DELAY); -- } -- -- rt2x00_err(rt2x00dev, "BBP/RF register access failed, aborting\n"); -- return -EACCES; --} -- --static int rt2800_wait_bbp_ready(struct rt2x00_dev *rt2x00dev) --{ -- unsigned int i; -- u8 value; -- -- /* -- * BBP was enabled after firmware was loaded, -- * but we need to reactivate it now. -- */ -- rt2800_register_write(rt2x00dev, H2M_BBP_AGENT, 0); -- rt2800_register_write(rt2x00dev, H2M_MAILBOX_CSR, 0); -- msleep(1); -- -- for (i = 0; i < REGISTER_BUSY_COUNT; i++) { -- value = rt2800_bbp_read(rt2x00dev, 0); -- if ((value != 0xff) && (value != 0x00)) -- return 0; -- udelay(REGISTER_BUSY_DELAY); -- } -- -- rt2x00_err(rt2x00dev, "BBP register access failed, aborting\n"); -- return -EACCES; --} - - static void rt2800_bbp4_mac_if_ctrl(struct rt2x00_dev *rt2x00dev) - { -@@ -9136,7 +9129,7 @@ int rt2800_enable_radio(struct rt2x00_de - /* - * Wait BBP/RF to wake up. - */ -- if (unlikely(rt2800_wait_bbp_rf_ready(rt2x00dev))) -+ if (unlikely(rt2800_wait_bbp_rf_ready(rt2x00dev, MAC_STATUS_CFG_BBP_RF_BUSY))) - return -EIO; - - /* |