Skip to content
This repository was archived by the owner on Oct 31, 2024. It is now read-only.

Commit ba6ebd4

Browse files
Bitterblue Smithgregkh
Bitterblue Smith
authored andcommittedOct 4, 2024
wifi: rtw88: Fix USB/SDIO devices not transmitting beacons
commit faa2e48 upstream. All USB devices supported by rtw88 have the same problem: they don't transmit beacons in AP mode. (Some?) SDIO devices are also affected. The cause appears to be clearing BIT_EN_BCNQ_DL of REG_FWHW_TXQ_CTRL before uploading the beacon reserved page, so don't clear the bit for USB and SDIO devices. Tested with RTL8811CU and RTL8723DU. Cc: <stable@vger.kernel.org> # 6.6.x Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/49de73b5-698f-4865-ab63-100e28dfc4a1@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent df3c63c commit ba6ebd4

File tree

1 file changed

+8
-5
lines changed
  • drivers/net/wireless/realtek/rtw88

1 file changed

+8
-5
lines changed
 

‎drivers/net/wireless/realtek/rtw88/fw.c

+8-5
Original file line numberDiff line numberDiff line change
@@ -1468,10 +1468,12 @@ int rtw_fw_write_data_rsvd_page(struct rtw_dev *rtwdev, u16 pg_addr,
14681468
val |= BIT_ENSWBCN >> 8;
14691469
rtw_write8(rtwdev, REG_CR + 1, val);
14701470

1471-
val = rtw_read8(rtwdev, REG_FWHW_TXQ_CTRL + 2);
1472-
bckp[1] = val;
1473-
val &= ~(BIT_EN_BCNQ_DL >> 16);
1474-
rtw_write8(rtwdev, REG_FWHW_TXQ_CTRL + 2, val);
1471+
if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_PCIE) {
1472+
val = rtw_read8(rtwdev, REG_FWHW_TXQ_CTRL + 2);
1473+
bckp[1] = val;
1474+
val &= ~(BIT_EN_BCNQ_DL >> 16);
1475+
rtw_write8(rtwdev, REG_FWHW_TXQ_CTRL + 2, val);
1476+
}
14751477

14761478
ret = rtw_hci_write_data_rsvd_page(rtwdev, buf, size);
14771479
if (ret) {
@@ -1496,7 +1498,8 @@ int rtw_fw_write_data_rsvd_page(struct rtw_dev *rtwdev, u16 pg_addr,
14961498
rsvd_pg_head = rtwdev->fifo.rsvd_boundary;
14971499
rtw_write16(rtwdev, REG_FIFOPAGE_CTRL_2,
14981500
rsvd_pg_head | BIT_BCN_VALID_V1);
1499-
rtw_write8(rtwdev, REG_FWHW_TXQ_CTRL + 2, bckp[1]);
1501+
if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_PCIE)
1502+
rtw_write8(rtwdev, REG_FWHW_TXQ_CTRL + 2, bckp[1]);
15001503
rtw_write8(rtwdev, REG_CR + 1, bckp[0]);
15011504

15021505
return ret;

0 commit comments

Comments
 (0)
This repository has been archived.