39 lines
1.5 KiB
Diff
39 lines
1.5 KiB
Diff
From 02461d9368c59510ef51cc8a1db1f0f31cfbf9ad Mon Sep 17 00:00:00 2001
|
|
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
|
|
Date: Wed, 5 Apr 2023 22:07:25 +0200
|
|
Subject: [PATCH 28/45] wifi: rtw88: main: Reserve 8 bytes of extra TX headroom
|
|
for SDIO cards
|
|
|
|
For SDIO host controllers with DMA support the TX buffer physical memory
|
|
address need to be aligned at an 8-byte boundary. Reserve 8 bytes of
|
|
extra TX headroom so we can align the data without re-allocating the
|
|
transmit buffer.
|
|
|
|
While here, also remove the TODO comment regarding extra headroom for
|
|
USB and SDIO. For SDIO the extra headroom is now handled and for USB it
|
|
was not needed so far.
|
|
|
|
Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
|
|
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
|
|
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
|
Link: https://lore.kernel.org/r/20230405200729.632435-6-martin.blumenstingl@googlemail.com
|
|
---
|
|
drivers/net/wireless/realtek/rtw88/main.c | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
--- a/drivers/net/wireless/realtek/rtw88/main.c
|
|
+++ b/drivers/net/wireless/realtek/rtw88/main.c
|
|
@@ -2176,9 +2176,11 @@ int rtw_register_hw(struct rtw_dev *rtwd
|
|
int max_tx_headroom = 0;
|
|
int ret;
|
|
|
|
- /* TODO: USB & SDIO may need extra room? */
|
|
max_tx_headroom = rtwdev->chip->tx_pkt_desc_sz;
|
|
|
|
+ if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_SDIO)
|
|
+ max_tx_headroom += RTW_SDIO_DATA_PTR_ALIGN;
|
|
+
|
|
hw->extra_tx_headroom = max_tx_headroom;
|
|
hw->queues = IEEE80211_NUM_ACS;
|
|
hw->txq_data_size = sizeof(struct rtw_txq);
|