diff --git a/packages/linux/patches/default/linux-122-rtw88-sdio-pre-patches-from-next-6-3.patch b/packages/linux/patches/default/linux-122-rtw88-sdio-pre-patches-from-next-6-3.patch deleted file mode 100644 index f9d27c88d9..0000000000 --- a/packages/linux/patches/default/linux-122-rtw88-sdio-pre-patches-from-next-6-3.patch +++ /dev/null @@ -1,784 +0,0 @@ -From mboxrd@z Thu Jan 1 00:00:00 1970 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) - by smtp.lore.kernel.org (Postfix) with ESMTP id 00655C4708D - for ; Tue, 27 Dec 2022 23:30:41 +0000 (UTC) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S231630AbiL0Xaj (ORCPT - ); - Tue, 27 Dec 2022 18:30:39 -0500 -Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56954 "EHLO - lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S229583AbiL0Xai (ORCPT - ); - Tue, 27 Dec 2022 18:30:38 -0500 -Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [IPv6:2a00:1450:4864:20::533]) - by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C5A52B1D; - Tue, 27 Dec 2022 15:30:36 -0800 (PST) -Received: by mail-ed1-x533.google.com with SMTP id m21so20870944edc.3; - Tue, 27 Dec 2022 15:30:36 -0800 (PST) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=googlemail.com; s=20210112; - h=content-transfer-encoding:mime-version:message-id:date:subject:cc - :to:from:from:to:cc:subject:date:message-id:reply-to; - bh=gNI4glAP8RCHIX0Vc1rrjcz+Kvrw2hTC3GBQO91dTzE=; - b=PgAZ5aZt60CG6sLLPDEVEddXtgBvZGHfbo1q7Kaoz+jVwewez6JV0OjWtiLxgYp3go - ZB/sbiE+D/1GRwsm29iOS73d+TJblGHu+/6dMjl7e/jSdgsbZ/tGayRqj4SlrwUkN/FZ - 20AzPMvBQCXMRBBOu0pmzBPTV+LKLIwmHCYIzCZ9Byq6xzVZc808I0LoDRtTCmanS219 - exX6w96YxESVe38a7SieSwm7goZ0V3nfc3KZvT99EgrQY61Oj4Pn8V5Xk4wj0DchHoqf - QTAZxF1fH6HQJ3toICNcXwmpSgvjPw8fM9I8ujGwxoGCvJsV8013XlMduN9sXK9gJDN9 - Z4tA== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20210112; - h=content-transfer-encoding:mime-version:message-id:date:subject:cc - :to:from:x-gm-message-state:from:to:cc:subject:date:message-id - :reply-to; - bh=gNI4glAP8RCHIX0Vc1rrjcz+Kvrw2hTC3GBQO91dTzE=; - b=VOrEV6O+1RjGwO4f3/HGUDBv0qC4KE3TjMviH2gG1xZGiEZCmSnchLvIhWt5ZwTfND - IHdpgpN26/moSnH+rCHmt4agaoJGwgToAtyT2oUPypkDvq4olhr+47B0+jGEVAY3Dbz6 - 8H4bsFwv2VZdHwHANy9JYD2AzD7DKdGN9w/oFPIl42yJr7Usy//7ODNmTyHh2ZMKfm74 - 529x9FoIdFhSwwd/ltQvbT+EvcNxg6UPFyDKUMkUtKCcjdpI0rMjxuj1+NSmzuD8BO9y - ERvux4ECYoFKuc3wE62owLURxv0CaE5yliHrDIH/k/LjIcNNvvKtJtGofXZ0LDfkyKE7 - KnXA== -X-Gm-Message-State: AFqh2kpjcIzhUbpNiXXevs7B73TYFp9mtSj6UueOZdTehN46SwzQ9EqQ - wtIoxxp6N3frBG/ufdcyxHAng6jnWVA= -X-Google-Smtp-Source: AMrXdXtHXTSThumsWgqSjQD28Ytz9upkuh0X8wck3S2bYI+sMZUeOkNp1Rj+Gpe9CHiPCzeYET7Dhg== -X-Received: by 2002:a50:ec19:0:b0:46c:fabe:837b with SMTP id g25-20020a50ec19000000b0046cfabe837bmr19326490edr.41.1672183834861; - Tue, 27 Dec 2022 15:30:34 -0800 (PST) -Received: from localhost.localdomain (dynamic-2a01-0c23-c4cf-d900-0000-0000-0000-0e63.c23.pool.telefonica.de. [2a01:c23:c4cf:d900::e63]) - by smtp.googlemail.com with ESMTPSA id r7-20020aa7c147000000b0046cbcc86bdesm6489978edp.7.2022.12.27.15.30.33 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Tue, 27 Dec 2022 15:30:34 -0800 (PST) -From: Martin Blumenstingl -To: linux-wireless@vger.kernel.org -Cc: Yan-Hsuan Chuang , - Kalle Valo , - Ulf Hansson , - linux-kernel@vger.kernel.org, netdev@vger.kernel.org, - linux-mmc@vger.kernel.org, Chris Morgan , - Nitin Gupta , - Neo Jou , Pkshih , - Jernej Skrabec , - Martin Blumenstingl -Subject: [RFC PATCH v1 00/19] rtw88: Add SDIO support -Date: Wed, 28 Dec 2022 00:30:01 +0100 -Message-Id: <20221227233020.284266-1-martin.blumenstingl@googlemail.com> -X-Mailer: git-send-email 2.39.0 -MIME-Version: 1.0 -Content-Transfer-Encoding: 8bit -Precedence: bulk -List-ID: -X-Mailing-List: linux-wireless@vger.kernel.org - -Recently the rtw88 driver has gained locking support for the "slow" bus -types (USB, SDIO) as part of USB support. Thanks to everyone who helped -make this happen! - -Based on the USB work (especially the locking part and various -bugfixes) this series adds support for SDIO based cards. It's the -result of a collaboration between Jernej and myself. Neither of us has -access to the rtw88 datasheets. All of our work is based on studying -the RTL8822BS and RTL8822CS vendor drivers and trial and error. - -Jernej and myself have tested this with RTL8822BS and RTL8822CS cards. -Other users have confirmed that RTL8821CS support is working as well. -RTL8723DS may also work (we tried our best to handle rtw_chip_wcpu_11n -where needed) but has not been tested at this point. - -Jernej's results with a RTL8822BS: -- Main functionality works -- Had a case where no traffic got across the link until he issued a - scan - -My results with a RTL8822CS: -- 2.4GHz and 5GHz bands are both working -- TX throughput on a 5GHz network is between 50 Mbit/s and 90 Mbit/s -- RX throughput on a 5GHz network is at 19 Mbit/s -- Sometimes there are frequent reconnects (once every 1-5 minutes) - after the link has been up for a long time (multiple hours). Today - I was unable to reproduce this though (I only had reconnect in 8 - hours). - -Why is this an RFC? -- It needs a through review especially by the rtw88 maintainers -- It's not clear to me how the "mmc: sdio" patch will be merged (will - Ulf take this or can we merge it thorugh the rtw88/linux wireless - driver tree?) -- Any comments / debugging hints on the reconnect / no traffic issues - (see above) are welcome -- My understanding is that there's a discussion about the rtw88 Kconfig - symbols. We're adding four new ones within this series. It's not - clear to me what the conclusion is on this topic though. -- As with most patches: testing is very welcome. If things are working - fine then a Tested-by is appreciated (with some details about the - card, throughput, ...). If something doesn't work for you: please - still report back so we can investigate that problem! - - - -Jernej Skrabec (2): - rtw88: ps: Increase LEAVE_LPS_TRY_CNT for SDIO based chipsets - rtw88: Add support for the SDIO based RTL8822BS chipset - -Martin Blumenstingl (17): - rtw88: mac: Use existing interface mask macros in rtw_pwr_seq_parser() - rtw88: pci: Change type of rtw_hw_queue_mapping() and ac_to_hwq to - enum - rtw88: pci: Change queue datatype from u8 to enum rtw_tx_queue_type - rtw88: Move enum rtw_tx_queue_type mapping code to tx.{c,h} - mmc: sdio: add Realtek SDIO vendor ID and various wifi device IDs - rtw88: rtw8821c: Add support for parsing the RTL8821CS (SDIO) efuse - rtw88: rtw8822b: Add support for parsing the RTL8822BS (SDIO) efuse - rtw88: rtw8822c: Add support for parsing the RTL8822CS (SDIO) efuse - rtw88: hci: Add an optional power_switch() callback to rtw_hci_ops - rtw88: mac: Add support for the SDIO HCI in rtw_pwr_seq_parser() - rtw88: mac: Add support for the SDIO HCI in the TX/page table setup - rtw88: sdio: Add HCI implementation for SDIO based chipsets - rtw88: mac: Add support for SDIO specifics in the power on sequence - rtw88: main: Add the rpwm_addr and cpwm_addr for SDIO based chipsets - rtw88: main: Reserve 8 bytes of extra TX headroom for SDIO based cards - rtw88: Add support for the SDIO based RTL8822CS chipset - rtw88: Add support for the SDIO based RTL8821CS chipset - - drivers/net/wireless/realtek/rtw88/Kconfig | 36 + - drivers/net/wireless/realtek/rtw88/Makefile | 12 + - drivers/net/wireless/realtek/rtw88/debug.h | 1 + - drivers/net/wireless/realtek/rtw88/hci.h | 8 + - drivers/net/wireless/realtek/rtw88/mac.c | 62 +- - drivers/net/wireless/realtek/rtw88/mac.h | 1 - - drivers/net/wireless/realtek/rtw88/main.c | 9 +- - drivers/net/wireless/realtek/rtw88/pci.c | 50 +- - drivers/net/wireless/realtek/rtw88/ps.h | 2 +- - drivers/net/wireless/realtek/rtw88/reg.h | 10 + - drivers/net/wireless/realtek/rtw88/rtw8821c.c | 9 + - drivers/net/wireless/realtek/rtw88/rtw8821c.h | 6 + - .../net/wireless/realtek/rtw88/rtw8821cs.c | 34 + - drivers/net/wireless/realtek/rtw88/rtw8822b.c | 10 + - drivers/net/wireless/realtek/rtw88/rtw8822b.h | 6 + - .../net/wireless/realtek/rtw88/rtw8822bs.c | 34 + - drivers/net/wireless/realtek/rtw88/rtw8822c.c | 9 + - drivers/net/wireless/realtek/rtw88/rtw8822c.h | 6 + - .../net/wireless/realtek/rtw88/rtw8822cs.c | 34 + - drivers/net/wireless/realtek/rtw88/sdio.c | 1242 +++++++++++++++++ - drivers/net/wireless/realtek/rtw88/sdio.h | 175 +++ - drivers/net/wireless/realtek/rtw88/tx.c | 41 + - drivers/net/wireless/realtek/rtw88/tx.h | 3 + - include/linux/mmc/sdio_ids.h | 9 + - 24 files changed, 1763 insertions(+), 46 deletions(-) - create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8821cs.c - create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822bs.c - create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822cs.c - create mode 100644 drivers/net/wireless/realtek/rtw88/sdio.c - create mode 100644 drivers/net/wireless/realtek/rtw88/sdio.h - --- -2.39.0 - - -From mboxrd@z Thu Jan 1 00:00:00 1970 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) - by smtp.lore.kernel.org (Postfix) with ESMTP id 558E6C4708D - for ; Tue, 27 Dec 2022 23:30:45 +0000 (UTC) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S229583AbiL0Xam (ORCPT - ); - Tue, 27 Dec 2022 18:30:42 -0500 -Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56968 "EHLO - lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S231736AbiL0Xaj (ORCPT - ); - Tue, 27 Dec 2022 18:30:39 -0500 -Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [IPv6:2a00:1450:4864:20::533]) - by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CF060B1D; - Tue, 27 Dec 2022 15:30:38 -0800 (PST) -Received: by mail-ed1-x533.google.com with SMTP id m21so20871091edc.3; - Tue, 27 Dec 2022 15:30:38 -0800 (PST) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=googlemail.com; s=20210112; - h=content-transfer-encoding:mime-version:references:in-reply-to - :message-id:date:subject:cc:to:from:from:to:cc:subject:date - :message-id:reply-to; - bh=QgYIIlUvjlkzoxTeBuZUOBlSUY/sYjLMbmvA+ggqjk4=; - b=f8Q1fmpjOhzEzXHLPY1LdK57FaUha8exOzkLcZooLGGFKyh2mqirDEHC+lPYFj8jyo - SKnx/gUtLtgjouRtJ+hoK5JiIrDhns3umKoqi9vMl46y9NHIPWMWTcxTmC0IAq6Xxe9+ - AEZOtIsYqUPhA4+t1KuArfIY5wpJyjAqzd90dXmJAzmSfsbwYhcOGtMBs9ro+hgxYT8n - QTkSawKFC8jApbFf50mY5WTKBGwhnmk5wweKAEJhL67FxeS/igD3pz0SQnxpR7BW2Xql - EWVXA6jCutyT2rRrXCnw/foPbG5r2Y4gGw4eEGpkcPLBumD5JU+M+lpzuRQTDqpXIRR9 - ngIg== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20210112; - h=content-transfer-encoding:mime-version:references:in-reply-to - :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc - :subject:date:message-id:reply-to; - bh=QgYIIlUvjlkzoxTeBuZUOBlSUY/sYjLMbmvA+ggqjk4=; - b=z+81AYuSuJ7vmZn71AEZ0wD03rwVlSmGI/Ip+1g+QjtrWxmC5Wm6ARONowlxgttll3 - vT/Msad7/FO6QChqRrT+ys8Ut4EObVjGmt7qc9pXZrvqbD6LREhGZDxcHiR1KDC3jv26 - ZcPd5J3htqLqGHsAVpf9A58KSeei+4nhw8glWNxnRcU0e/Br8Xx2pti1malSVqDbHbXm - OD+YUwoVLFxLraedRepp9o/GHL/Ik1od6cs2c+wlloetGC6ywXIH9PuncOUk+l147aVO - wk4s356CVEQX3c3Qizp6aIc3XEi2vSNYFeYIlQ7IsEvoGJMHJUd5Yo5gKQWftlOjRN9h - u3KA== -X-Gm-Message-State: AFqh2krWqyUE1w/J7eUaY4dFUBAHCdD35rY/dm3eJ/23SGdhUpFDKGnP - xIO3r5XcIav26avEuk43FdE1TN4Ed7k= -X-Google-Smtp-Source: AMrXdXtYznvIwhA5xcrLA4jT1xTMSU2g3QGo4kymjSxBSJ4mdDphNO4Ov1B2Tad9ek0tC3WBKJRpCA== -X-Received: by 2002:a05:6402:550e:b0:45c:835b:ac64 with SMTP id fi14-20020a056402550e00b0045c835bac64mr19668822edb.31.1672183838243; - Tue, 27 Dec 2022 15:30:38 -0800 (PST) -Received: from localhost.localdomain (dynamic-2a01-0c23-c4cf-d900-0000-0000-0000-0e63.c23.pool.telefonica.de. [2a01:c23:c4cf:d900::e63]) - by smtp.googlemail.com with ESMTPSA id r7-20020aa7c147000000b0046cbcc86bdesm6489978edp.7.2022.12.27.15.30.37 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Tue, 27 Dec 2022 15:30:37 -0800 (PST) -From: Martin Blumenstingl -To: linux-wireless@vger.kernel.org -Cc: Yan-Hsuan Chuang , - Kalle Valo , - Ulf Hansson , - linux-kernel@vger.kernel.org, netdev@vger.kernel.org, - linux-mmc@vger.kernel.org, Chris Morgan , - Nitin Gupta , - Neo Jou , Pkshih , - Jernej Skrabec , - Martin Blumenstingl -Subject: [RFC PATCH v1 03/19] rtw88: pci: Change queue datatype from u8 to enum rtw_tx_queue_type -Date: Wed, 28 Dec 2022 00:30:04 +0100 -Message-Id: <20221227233020.284266-4-martin.blumenstingl@googlemail.com> -X-Mailer: git-send-email 2.39.0 -In-Reply-To: <20221227233020.284266-1-martin.blumenstingl@googlemail.com> -References: <20221227233020.284266-1-martin.blumenstingl@googlemail.com> -MIME-Version: 1.0 -Content-Transfer-Encoding: 8bit -Precedence: bulk -List-ID: -X-Mailing-List: linux-wireless@vger.kernel.org - -This makes it easier to understand which values are allowed for the -"queue" variable. - -Signed-off-by: Martin Blumenstingl ---- - drivers/net/wireless/realtek/rtw88/pci.c | 17 ++++++++++------- - 1 file changed, 10 insertions(+), 7 deletions(-) - -diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c -index 45ce7e624c03..5492107fc85b 100644 ---- a/drivers/net/wireless/realtek/rtw88/pci.c -+++ b/drivers/net/wireless/realtek/rtw88/pci.c -@@ -30,7 +30,8 @@ static u32 rtw_pci_tx_queue_idx_addr[] = { - [RTW_TX_QUEUE_H2C] = RTK_PCI_TXBD_IDX_H2CQ, - }; - --static u8 rtw_pci_get_tx_qsel(struct sk_buff *skb, u8 queue) -+static u8 rtw_pci_get_tx_qsel(struct sk_buff *skb, -+ enum rtw_tx_queue_type queue) - { - switch (queue) { - case RTW_TX_QUEUE_BCN: -@@ -542,7 +543,7 @@ static int rtw_pci_setup(struct rtw_dev *rtwdev) - static void rtw_pci_dma_release(struct rtw_dev *rtwdev, struct rtw_pci *rtwpci) - { - struct rtw_pci_tx_ring *tx_ring; -- u8 queue; -+ enum rtw_tx_queue_type queue; - - rtw_pci_reset_trx_ring(rtwdev); - for (queue = 0; queue < RTK_MAX_TX_QUEUE_NUM; queue++) { -@@ -608,8 +609,8 @@ static void rtw_pci_deep_ps_enter(struct rtw_dev *rtwdev) - { - struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv; - struct rtw_pci_tx_ring *tx_ring; -+ enum rtw_tx_queue_type queue; - bool tx_empty = true; -- u8 queue; - - if (rtw_fw_feature_check(&rtwdev->fw, FW_FEATURE_TX_WAKE)) - goto enter_deep_ps; -@@ -803,7 +804,8 @@ static void rtw_pci_flush_queues(struct rtw_dev *rtwdev, u32 queues, bool drop) - __rtw_pci_flush_queues(rtwdev, pci_queues, drop); - } - --static void rtw_pci_tx_kick_off_queue(struct rtw_dev *rtwdev, u8 queue) -+static void rtw_pci_tx_kick_off_queue(struct rtw_dev *rtwdev, -+ enum rtw_tx_queue_type queue) - { - struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv; - struct rtw_pci_tx_ring *ring; -@@ -822,7 +824,7 @@ static void rtw_pci_tx_kick_off_queue(struct rtw_dev *rtwdev, u8 queue) - static void rtw_pci_tx_kick_off(struct rtw_dev *rtwdev) - { - struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv; -- u8 queue; -+ enum rtw_tx_queue_type queue; - - for (queue = 0; queue < RTK_MAX_TX_QUEUE_NUM; queue++) - if (test_and_clear_bit(queue, rtwpci->tx_queued)) -@@ -831,7 +833,8 @@ static void rtw_pci_tx_kick_off(struct rtw_dev *rtwdev) - - static int rtw_pci_tx_write_data(struct rtw_dev *rtwdev, - struct rtw_tx_pkt_info *pkt_info, -- struct sk_buff *skb, u8 queue) -+ struct sk_buff *skb, -+ enum rtw_tx_queue_type queue) - { - struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv; - const struct rtw_chip_info *chip = rtwdev->chip; -@@ -949,9 +952,9 @@ static int rtw_pci_tx_write(struct rtw_dev *rtwdev, - struct rtw_tx_pkt_info *pkt_info, - struct sk_buff *skb) - { -+ enum rtw_tx_queue_type queue = rtw_hw_queue_mapping(skb); - struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv; - struct rtw_pci_tx_ring *ring; -- u8 queue = rtw_hw_queue_mapping(skb); - int ret; - - ret = rtw_pci_tx_write_data(rtwdev, pkt_info, skb, queue); --- -2.39.0 - - -From mboxrd@z Thu Jan 1 00:00:00 1970 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) - by smtp.lore.kernel.org (Postfix) with ESMTP id E9CD6C4332F - for ; Tue, 27 Dec 2022 23:30:47 +0000 (UTC) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S232147AbiL0Xao (ORCPT - ); - Tue, 27 Dec 2022 18:30:44 -0500 -Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56970 "EHLO - lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S231771AbiL0Xal (ORCPT - ); - Tue, 27 Dec 2022 18:30:41 -0500 -Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) - by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D661FB30; - Tue, 27 Dec 2022 15:30:37 -0800 (PST) -Received: by mail-ed1-x529.google.com with SMTP id i9so20869954edj.4; - Tue, 27 Dec 2022 15:30:37 -0800 (PST) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=googlemail.com; s=20210112; - h=content-transfer-encoding:mime-version:references:in-reply-to - :message-id:date:subject:cc:to:from:from:to:cc:subject:date - :message-id:reply-to; - bh=h1onIReQ5ODXVSyv0b1/9HLSWm0hUVA7Xk38y7M8c2U=; - b=Df8qMwCuW8cm4WyFWmo2vn9IeBhUpQbbxzTpBts52ctPvyR66nbu95qWp0nuVkXbWT - 8DyaeshDFmzvg48x2tAxGuhtJVxRNkOUGXewKplLtkyIqlTYqhF5uGRCHpSIrhBvAQYc - RRpwYhZWwGMfUK1yiyUq3/x6iPJaIk/OX3e9hdbsdhgTGwOTgoCBJPvEzJvg8VPhVcPt - 5AV6gzEeN4izFixPg2s6xkJFAkFrW0iEhFF6A9wHuADDb66qsSHKrCPuf38UX+u5ukH0 - 7LA7Vp7KcN/07WaXqq9rJnVs9jcJ2nkq8i7OOSgREVy3JxxCP/I1QNbiI7Y8/0dHsUo8 - v+vw== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20210112; - h=content-transfer-encoding:mime-version:references:in-reply-to - :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc - :subject:date:message-id:reply-to; - bh=h1onIReQ5ODXVSyv0b1/9HLSWm0hUVA7Xk38y7M8c2U=; - b=kSHgaspvNBV12/4toCVG0DQ3mgBqfhlGQAEXuyTD5OlgCf+evf7MiIer7SBNJE7ijJ - 4fEp7Uvb6pbzCSCrT8dkROtykvYF49capmceMXWGNx8sYezu26fUrrAeGBGmGmT4V042 - 6rHnWlSE8MqjdT4C6OnBxW4PKk3AqzaIpKOY+qHUpgUnBRKF4LQKDctB7cle7IALqtiu - 4+xWSG2kMSfTmx35pNIgcCqFihAwq+htzyDcPU+UdxsTBP4IW/YT4/aOeVCzqADnRtTA - tCb1u1V9eVNWw+9fSaDIudbt4vOkcvyIkZE79wd+Oam4KNiaNEue/eMzJ8NkKg3QwnHN - b0yg== -X-Gm-Message-State: AFqh2kp2eoYCRpyfxL0Ip3d0y0PQ33ppwyAwgR3bTpN2MwkKDECNhRtz - ObHug8L2k6/Yvsg/cYn/vsClevkl+1U= -X-Google-Smtp-Source: AMrXdXuC3Lrm0vqhcWSxgt9v2Dlw0EC+6jU6Yug/OR3FfYch83uV5zHH3+QRNBOfBNMFCGHdpUGU0g== -X-Received: by 2002:a05:6402:5145:b0:462:7b85:33aa with SMTP id n5-20020a056402514500b004627b8533aamr19561385edd.2.1672183835963; - Tue, 27 Dec 2022 15:30:35 -0800 (PST) -Received: from localhost.localdomain (dynamic-2a01-0c23-c4cf-d900-0000-0000-0000-0e63.c23.pool.telefonica.de. [2a01:c23:c4cf:d900::e63]) - by smtp.googlemail.com with ESMTPSA id r7-20020aa7c147000000b0046cbcc86bdesm6489978edp.7.2022.12.27.15.30.34 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Tue, 27 Dec 2022 15:30:35 -0800 (PST) -From: Martin Blumenstingl -To: linux-wireless@vger.kernel.org -Cc: Yan-Hsuan Chuang , - Kalle Valo , - Ulf Hansson , - linux-kernel@vger.kernel.org, netdev@vger.kernel.org, - linux-mmc@vger.kernel.org, Chris Morgan , - Nitin Gupta , - Neo Jou , Pkshih , - Jernej Skrabec , - Martin Blumenstingl -Subject: [RFC PATCH v1 01/19] rtw88: mac: Use existing interface mask macros in rtw_pwr_seq_parser() -Date: Wed, 28 Dec 2022 00:30:02 +0100 -Message-Id: <20221227233020.284266-2-martin.blumenstingl@googlemail.com> -X-Mailer: git-send-email 2.39.0 -In-Reply-To: <20221227233020.284266-1-martin.blumenstingl@googlemail.com> -References: <20221227233020.284266-1-martin.blumenstingl@googlemail.com> -MIME-Version: 1.0 -Content-Transfer-Encoding: 8bit -Precedence: bulk -List-ID: -X-Mailing-List: linux-wireless@vger.kernel.org - -Replace the magic numbers for the intf_mask with their existing -RTW_PWR_INTF_PCI_MSK and RTW_PWR_INTF_USB_MSK macros to make the code -easier to understand. - -Signed-off-by: Martin Blumenstingl ---- - drivers/net/wireless/realtek/rtw88/mac.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c -index 98777f294945..4e5c194aac29 100644 ---- a/drivers/net/wireless/realtek/rtw88/mac.c -+++ b/drivers/net/wireless/realtek/rtw88/mac.c -@@ -217,10 +217,10 @@ static int rtw_pwr_seq_parser(struct rtw_dev *rtwdev, - cut_mask = cut_version_to_mask(cut); - switch (rtw_hci_type(rtwdev)) { - case RTW_HCI_TYPE_PCIE: -- intf_mask = BIT(2); -+ intf_mask = RTW_PWR_INTF_PCI_MSK; - break; - case RTW_HCI_TYPE_USB: -- intf_mask = BIT(1); -+ intf_mask = RTW_PWR_INTF_USB_MSK; - break; - default: - return -EINVAL; --- -2.39.0 - - -From mboxrd@z Thu Jan 1 00:00:00 1970 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) - by smtp.lore.kernel.org (Postfix) with ESMTP id DFE7FC4332F - for ; Tue, 27 Dec 2022 23:30:50 +0000 (UTC) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S232384AbiL0Xar (ORCPT - ); - Tue, 27 Dec 2022 18:30:47 -0500 -Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56974 "EHLO - lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S231809AbiL0Xal (ORCPT - ); - Tue, 27 Dec 2022 18:30:41 -0500 -Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) - by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 174F4640A; - Tue, 27 Dec 2022 15:30:39 -0800 (PST) -Received: by mail-ed1-x529.google.com with SMTP id i15so20927597edf.2; - Tue, 27 Dec 2022 15:30:39 -0800 (PST) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=googlemail.com; s=20210112; - h=content-transfer-encoding:mime-version:references:in-reply-to - :message-id:date:subject:cc:to:from:from:to:cc:subject:date - :message-id:reply-to; - bh=On9zqZfBSd6xwFAzv2KqvU5VwSXHqqET7/qhE6YwsIw=; - b=SNTmAxZHbI4rGrDL7WSqhXiMSYLuok7XiLn5jsUBjNZsBWfLGdEDvkwzYn9kEt+ExM - yM01zDvSzvFF7btI3VKgLCuKWyCjzSN+oxtbnnNtANe7++q877ohJS16q7qtb+peoLGT - 379THwFkmXqEVK9LNWbZlaOwXWM9iWHwyXFNrN1L+LS62ez69W/wfVm9DP60TQxDcDMH - Q0KGjBV8EPo9dceholSgOX+RCkfC+K6D8rq7TOSrGFZrR73jNZaxK+dgq8e2H3dtwDCX - CRnRHBY8N6ymfOg0ZMvNjLoSF96sgPeplR8IkhyS5/ADf7al6pndKCfylPoELyjwhWSI - iE5A== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20210112; - h=content-transfer-encoding:mime-version:references:in-reply-to - :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc - :subject:date:message-id:reply-to; - bh=On9zqZfBSd6xwFAzv2KqvU5VwSXHqqET7/qhE6YwsIw=; - b=K3W+chiaRArHiKSV1lOoCmnCOznquzW+yTX7DxyPfSIN97SIOQ1y2ON66NPUVvF6U+ - +p+v1q9alH56ll9haMyhzLHslPLL0lQqfkAsBvXhXu4VPphbgPML8kRGF/Uf4/ESmlNo - UK9fIMdKWPNrOG/PXJbSVmdC1KlsF0rgYr8tsfwM8a3aFtlbk8l1qMRy76e6CY+QjhVR - xZvnFFYcIkSjC/q1Ie5tPQSSAF6KE484lmlxIAVJgiODnDbjWt5zMYQfynctbLZHrGpK - KW1NAuIYfYK1e5Z0N3m6QP31F/CG+Az5H7/fgGvrf1rtyyfvMzhpDpJb9TuapU7hAmcq - ojuw== -X-Gm-Message-State: AFqh2kqpzSyCyb18SioF6HlD7/0GVialvYtc/ue5762f5olQy8mkLmab - 3izNhsS8hHtpUW4UlzKqJyauiA8S13Y= -X-Google-Smtp-Source: AMrXdXuwosdtKiTC3mmRWDVuPEeTdqyk/vj73kPIT20gET9jjxQKc5Hyp65eea/c0ByvQPRSemJWOA== -X-Received: by 2002:a05:6402:754:b0:485:9d0f:6193 with SMTP id p20-20020a056402075400b004859d0f6193mr5697630edy.38.1672183837463; - Tue, 27 Dec 2022 15:30:37 -0800 (PST) -Received: from localhost.localdomain (dynamic-2a01-0c23-c4cf-d900-0000-0000-0000-0e63.c23.pool.telefonica.de. [2a01:c23:c4cf:d900::e63]) - by smtp.googlemail.com with ESMTPSA id r7-20020aa7c147000000b0046cbcc86bdesm6489978edp.7.2022.12.27.15.30.36 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Tue, 27 Dec 2022 15:30:36 -0800 (PST) -From: Martin Blumenstingl -To: linux-wireless@vger.kernel.org -Cc: Yan-Hsuan Chuang , - Kalle Valo , - Ulf Hansson , - linux-kernel@vger.kernel.org, netdev@vger.kernel.org, - linux-mmc@vger.kernel.org, Chris Morgan , - Nitin Gupta , - Neo Jou , Pkshih , - Jernej Skrabec , - Martin Blumenstingl -Subject: [RFC PATCH v1 02/19] rtw88: pci: Change type of rtw_hw_queue_mapping() and ac_to_hwq to enum -Date: Wed, 28 Dec 2022 00:30:03 +0100 -Message-Id: <20221227233020.284266-3-martin.blumenstingl@googlemail.com> -X-Mailer: git-send-email 2.39.0 -In-Reply-To: <20221227233020.284266-1-martin.blumenstingl@googlemail.com> -References: <20221227233020.284266-1-martin.blumenstingl@googlemail.com> -MIME-Version: 1.0 -Content-Transfer-Encoding: 8bit -Precedence: bulk -List-ID: -X-Mailing-List: linux-wireless@vger.kernel.org - -rtw_hw_queue_mapping() and ac_to_hwq[] hold values of type enum -rtw_tx_queue_type. Change their types to reflect this to make it easier -to understand this part of the code. - -While here, also change the array to be static const as it is not -supposed to be modified at runtime. - -Signed-off-by: Martin Blumenstingl ---- - drivers/net/wireless/realtek/rtw88/pci.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c -index 0975d27240e4..45ce7e624c03 100644 ---- a/drivers/net/wireless/realtek/rtw88/pci.c -+++ b/drivers/net/wireless/realtek/rtw88/pci.c -@@ -669,7 +669,7 @@ static void rtw_pci_deep_ps(struct rtw_dev *rtwdev, bool enter) - spin_unlock_bh(&rtwpci->irq_lock); - } - --static u8 ac_to_hwq[] = { -+static const enum rtw_tx_queue_type ac_to_hwq[] = { - [IEEE80211_AC_VO] = RTW_TX_QUEUE_VO, - [IEEE80211_AC_VI] = RTW_TX_QUEUE_VI, - [IEEE80211_AC_BE] = RTW_TX_QUEUE_BE, -@@ -678,12 +678,12 @@ static u8 ac_to_hwq[] = { - - static_assert(ARRAY_SIZE(ac_to_hwq) == IEEE80211_NUM_ACS); - --static u8 rtw_hw_queue_mapping(struct sk_buff *skb) -+static enum rtw_tx_queue_type rtw_hw_queue_mapping(struct sk_buff *skb) - { - struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; - __le16 fc = hdr->frame_control; - u8 q_mapping = skb_get_queue_mapping(skb); -- u8 queue; -+ enum rtw_tx_queue_type queue; - - if (unlikely(ieee80211_is_beacon(fc))) - queue = RTW_TX_QUEUE_BCN; --- -2.39.0 - - -From mboxrd@z Thu Jan 1 00:00:00 1970 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) - by smtp.lore.kernel.org (Postfix) with ESMTP id 2C430C4708D - for ; Tue, 27 Dec 2022 23:31:01 +0000 (UTC) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S231809AbiL0Xa5 (ORCPT - ); - Tue, 27 Dec 2022 18:30:57 -0500 -Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57126 "EHLO - lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S232081AbiL0Xan (ORCPT - ); - Tue, 27 Dec 2022 18:30:43 -0500 -Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) - by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D6C4DDEBA; - Tue, 27 Dec 2022 15:30:40 -0800 (PST) -Received: by mail-ed1-x52a.google.com with SMTP id u18so19465924eda.9; - Tue, 27 Dec 2022 15:30:40 -0800 (PST) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=googlemail.com; s=20210112; - h=content-transfer-encoding:mime-version:references:in-reply-to - :message-id:date:subject:cc:to:from:from:to:cc:subject:date - :message-id:reply-to; - bh=dm4pitK4ZNMJZL5DH9iTHJHi+FnWxGRFQtHIaCaoNGo=; - b=YWwi7CzLyKrwEdFyuUxmvizsWkIpPn2Rka2qKD03A3ewM59kw2KvC5v6EpON1xlSSq - UOaqKeBlhGa/2dVFREhtyFZmlTdOSWMO1pbXfH8y5NntpGghgcjPjDvN8RC0ny8CJtUE - oRcmdiMR1EXhw5f3m69RFo89af3ku7UJalnnCn2j9AaUyzDoDNRkmj7sz9Qm0sbaRxxa - 9Q4FSp2zIY2u6nwYxeV8CJuLjEjRaExTmMOd4hhCcfo6iBgouRLa6Rk4o1zSjDh3VLkA - PvqMl7qUCM5cvszlAUsHnWBFyyvBjergKkMhdQ1kidb6MaVWZNdfjMw6lNcFGCDqjsVz - PLeQ== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20210112; - h=content-transfer-encoding:mime-version:references:in-reply-to - :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc - :subject:date:message-id:reply-to; - bh=dm4pitK4ZNMJZL5DH9iTHJHi+FnWxGRFQtHIaCaoNGo=; - b=Sboh7uBIxISXXw6Qr5GGuWT/hc4Se5cb0ygTkz6fb0lRu22OLh+kwktWEv16Kap8cW - 7SQrpuPEQozdieKBmNN5vAlwtRWdba0fN9mNf2zrdMncYgOywN+BJHuK/zeA3GB8QpwL - YUuvfY12buRTXWwa2Y+AXn6s4qglulcwSKsKi015xjsfgJvmP+Uh2NGr301HC/4iyke6 - ge7BBUKsFQTiS+inqAeECr+hOQJKW2M2OxdZgWxq5jY18IPVZ7JM+n+pkADooXdqorPT - oDz4UIlAxvpQNsFtQ4VOMXLFgAgoV2z7YVDvpfusxDwSY+YkriJXjudSH2xjZc+Rk8ux - THQg== -X-Gm-Message-State: AFqh2krTLZPec1BeaePGH+yIM/xE7h7osKZ03oi5Uiwu7MZpW7C0abFJ - +dQ5oQLo4ccuSrHwaLUavao8oJNV+4Y= -X-Google-Smtp-Source: AMrXdXsS9hX335Fkht6+2053XGKLxjVMk10eknNraAxGKhiL8aCk1KR+3rgtmHKYD77nKNtWUI+8iA== -X-Received: by 2002:a05:6402:501f:b0:46c:a763:5889 with SMTP id p31-20020a056402501f00b0046ca7635889mr29038360eda.25.1672183839073; - Tue, 27 Dec 2022 15:30:39 -0800 (PST) -Received: from localhost.localdomain (dynamic-2a01-0c23-c4cf-d900-0000-0000-0000-0e63.c23.pool.telefonica.de. [2a01:c23:c4cf:d900::e63]) - by smtp.googlemail.com with ESMTPSA id r7-20020aa7c147000000b0046cbcc86bdesm6489978edp.7.2022.12.27.15.30.38 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Tue, 27 Dec 2022 15:30:38 -0800 (PST) -From: Martin Blumenstingl -To: linux-wireless@vger.kernel.org -Cc: Yan-Hsuan Chuang , - Kalle Valo , - Ulf Hansson , - linux-kernel@vger.kernel.org, netdev@vger.kernel.org, - linux-mmc@vger.kernel.org, Chris Morgan , - Nitin Gupta , - Neo Jou , Pkshih , - Jernej Skrabec , - Martin Blumenstingl -Subject: [RFC PATCH v1 04/19] rtw88: Move enum rtw_tx_queue_type mapping code to tx.{c,h} -Date: Wed, 28 Dec 2022 00:30:05 +0100 -Message-Id: <20221227233020.284266-5-martin.blumenstingl@googlemail.com> -X-Mailer: git-send-email 2.39.0 -In-Reply-To: <20221227233020.284266-1-martin.blumenstingl@googlemail.com> -References: <20221227233020.284266-1-martin.blumenstingl@googlemail.com> -MIME-Version: 1.0 -Content-Transfer-Encoding: 8bit -Precedence: bulk -List-ID: -X-Mailing-List: linux-wireless@vger.kernel.org - -This code is not specific to the PCIe bus type but can be re-used by USB -and SDIO bus types. Move it to tx.{c,h} to avoid code-duplication in the -future. While here, add checking of the ac argument in -rtw_tx_ac_to_hwq() so we're not accessing entries beyond the end of the -array. - -Signed-off-by: Martin Blumenstingl ---- - drivers/net/wireless/realtek/rtw88/pci.c | 35 ++------------------ - drivers/net/wireless/realtek/rtw88/tx.c | 41 ++++++++++++++++++++++++ - drivers/net/wireless/realtek/rtw88/tx.h | 3 ++ - 3 files changed, 46 insertions(+), 33 deletions(-) - -diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c -index 5492107fc85b..b4bd831c9845 100644 ---- a/drivers/net/wireless/realtek/rtw88/pci.c -+++ b/drivers/net/wireless/realtek/rtw88/pci.c -@@ -670,37 +670,6 @@ static void rtw_pci_deep_ps(struct rtw_dev *rtwdev, bool enter) - spin_unlock_bh(&rtwpci->irq_lock); - } - --static const enum rtw_tx_queue_type ac_to_hwq[] = { -- [IEEE80211_AC_VO] = RTW_TX_QUEUE_VO, -- [IEEE80211_AC_VI] = RTW_TX_QUEUE_VI, -- [IEEE80211_AC_BE] = RTW_TX_QUEUE_BE, -- [IEEE80211_AC_BK] = RTW_TX_QUEUE_BK, --}; -- --static_assert(ARRAY_SIZE(ac_to_hwq) == IEEE80211_NUM_ACS); -- --static enum rtw_tx_queue_type rtw_hw_queue_mapping(struct sk_buff *skb) --{ -- struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; -- __le16 fc = hdr->frame_control; -- u8 q_mapping = skb_get_queue_mapping(skb); -- enum rtw_tx_queue_type queue; -- -- if (unlikely(ieee80211_is_beacon(fc))) -- queue = RTW_TX_QUEUE_BCN; -- else if (unlikely(ieee80211_is_mgmt(fc) || ieee80211_is_ctl(fc))) -- queue = RTW_TX_QUEUE_MGMT; -- else if (is_broadcast_ether_addr(hdr->addr1) || -- is_multicast_ether_addr(hdr->addr1)) -- queue = RTW_TX_QUEUE_HI0; -- else if (WARN_ON_ONCE(q_mapping >= ARRAY_SIZE(ac_to_hwq))) -- queue = ac_to_hwq[IEEE80211_AC_BE]; -- else -- queue = ac_to_hwq[q_mapping]; -- -- return queue; --} -- - static void rtw_pci_release_rsvd_page(struct rtw_pci *rtwpci, - struct rtw_pci_tx_ring *ring) - { -@@ -798,7 +767,7 @@ static void rtw_pci_flush_queues(struct rtw_dev *rtwdev, u32 queues, bool drop) - } else { - for (i = 0; i < rtwdev->hw->queues; i++) - if (queues & BIT(i)) -- pci_queues |= BIT(ac_to_hwq[i]); -+ pci_queues |= BIT(rtw_tx_ac_to_hwq(i)); - } - - __rtw_pci_flush_queues(rtwdev, pci_queues, drop); -@@ -952,7 +921,7 @@ static int rtw_pci_tx_write(struct rtw_dev *rtwdev, - struct rtw_tx_pkt_info *pkt_info, - struct sk_buff *skb) - { -- enum rtw_tx_queue_type queue = rtw_hw_queue_mapping(skb); -+ enum rtw_tx_queue_type queue = rtw_tx_queue_mapping(skb); - struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv; - struct rtw_pci_tx_ring *ring; - int ret; -diff --git a/drivers/net/wireless/realtek/rtw88/tx.c b/drivers/net/wireless/realtek/rtw88/tx.c -index ab39245e9c2f..bb5c7492c98b 100644 ---- a/drivers/net/wireless/realtek/rtw88/tx.c -+++ b/drivers/net/wireless/realtek/rtw88/tx.c -@@ -682,3 +682,44 @@ void rtw_txq_cleanup(struct rtw_dev *rtwdev, struct ieee80211_txq *txq) - list_del_init(&rtwtxq->list); - spin_unlock_bh(&rtwdev->txq_lock); - } -+ -+static const enum rtw_tx_queue_type ac_to_hwq[] = { -+ [IEEE80211_AC_VO] = RTW_TX_QUEUE_VO, -+ [IEEE80211_AC_VI] = RTW_TX_QUEUE_VI, -+ [IEEE80211_AC_BE] = RTW_TX_QUEUE_BE, -+ [IEEE80211_AC_BK] = RTW_TX_QUEUE_BK, -+}; -+ -+static_assert(ARRAY_SIZE(ac_to_hwq) == IEEE80211_NUM_ACS); -+ -+enum rtw_tx_queue_type rtw_tx_ac_to_hwq(enum ieee80211_ac_numbers ac) -+{ -+ if (WARN_ON(unlikely(ac >= IEEE80211_NUM_ACS))) -+ return RTW_TX_QUEUE_BE; -+ -+ return ac_to_hwq[ac]; -+} -+EXPORT_SYMBOL(rtw_tx_ac_to_hwq); -+ -+enum rtw_tx_queue_type rtw_tx_queue_mapping(struct sk_buff *skb) -+{ -+ struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; -+ __le16 fc = hdr->frame_control; -+ u8 q_mapping = skb_get_queue_mapping(skb); -+ enum rtw_tx_queue_type queue; -+ -+ if (unlikely(ieee80211_is_beacon(fc))) -+ queue = RTW_TX_QUEUE_BCN; -+ else if (unlikely(ieee80211_is_mgmt(fc) || ieee80211_is_ctl(fc))) -+ queue = RTW_TX_QUEUE_MGMT; -+ else if (is_broadcast_ether_addr(hdr->addr1) || -+ is_multicast_ether_addr(hdr->addr1)) -+ queue = RTW_TX_QUEUE_HI0; -+ else if (WARN_ON_ONCE(q_mapping >= ARRAY_SIZE(ac_to_hwq))) -+ queue = ac_to_hwq[IEEE80211_AC_BE]; -+ else -+ queue = ac_to_hwq[q_mapping]; -+ -+ return queue; -+} -+EXPORT_SYMBOL(rtw_tx_queue_mapping); -diff --git a/drivers/net/wireless/realtek/rtw88/tx.h b/drivers/net/wireless/realtek/rtw88/tx.h -index a2f3ac326041..197d5868c8ad 100644 ---- a/drivers/net/wireless/realtek/rtw88/tx.h -+++ b/drivers/net/wireless/realtek/rtw88/tx.h -@@ -131,6 +131,9 @@ rtw_tx_write_data_h2c_get(struct rtw_dev *rtwdev, - struct rtw_tx_pkt_info *pkt_info, - u8 *buf, u32 size); - -+enum rtw_tx_queue_type rtw_tx_ac_to_hwq(enum ieee80211_ac_numbers ac); -+enum rtw_tx_queue_type rtw_tx_queue_mapping(struct sk_buff *skb); -+ - static inline - void fill_txdesc_checksum_common(u8 *txdesc, size_t words) - { --- -2.39.0