> -----Original Message----- > From: Martin Blumenstingl <martin.blumenstingl@xxxxxxxxxxxxxx> > Sent: Tuesday, March 21, 2023 5:35 AM > To: linux-wireless@xxxxxxxxxxxxxxx > Cc: Yan-Hsuan Chuang <tony0620emma@xxxxxxxxx>; Kalle Valo <kvalo@xxxxxxxxxx>; Ulf Hansson > <ulf.hansson@xxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; > linux-mmc@xxxxxxxxxxxxxxx; Chris Morgan <macroalpha82@xxxxxxxxx>; Nitin Gupta <nitin.gupta981@xxxxxxxxx>; > Neo Jou <neojou@xxxxxxxxx>; Ping-Ke Shih <pkshih@xxxxxxxxxxx>; Jernej Skrabec <jernej.skrabec@xxxxxxxxx>; > Larry Finger <Larry.Finger@xxxxxxxxxxxx>; Martin Blumenstingl <martin.blumenstingl@xxxxxxxxxxxxxx> > Subject: [PATCH v3 5/9] 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. > > Signed-off-by: Martin Blumenstingl <martin.blumenstingl@xxxxxxxxxxxxxx> Reviewed-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx> > --- > Changes since v2: > - none > > Changes since v1: > - none > > > drivers/net/wireless/realtek/rtw88/main.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c > index cdc4703ead5f..1cb553485cff 100644 > --- a/drivers/net/wireless/realtek/rtw88/main.c > +++ b/drivers/net/wireless/realtek/rtw88/main.c > @@ -2163,9 +2163,11 @@ int rtw_register_hw(struct rtw_dev *rtwdev, struct ieee80211_hw *hw) > 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); > -- > 2.40.0