Search Linux Wireless

RE: [PATCH rtw-next v2 1/2] wifi: rtw89: Lower the timeout in rtw89_fw_read_c2h_reg() for USB

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Bitterblue Smith <rtl8821cerfe2@xxxxxxxxx> wrote:
> On 16/07/2025 03:17, Ping-Ke Shih wrote:
> > Bitterblue Smith <rtl8821cerfe2@xxxxxxxxx> wrote:
> >> This read_poll_timeout_atomic() with a delay of 1 µs and a timeout of
> >> 1000000 µs can take ~250 seconds in the worst case because sending a
> >> USB control message takes ~250 µs.
> >>
> >> Lower the timeout to 4000 for USB in order to reduce the maximum polling
> >> time to ~1 second.
> >>
> >> This problem was observed with RTL8851BU while suspending to RAM with
> >> WOWLAN enabled. The computer sat for 4 minutes with a black screen
> >> before suspending.
> >>
> >> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@xxxxxxxxx>
> >> ---
> >> v2:
> >>  - Lower the timeout for USB instead of increasing the delay.
> >> ---
> >>  drivers/net/wireless/realtek/rtw89/fw.c | 9 +++++++--
> >>  drivers/net/wireless/realtek/rtw89/fw.h | 2 ++
> >>  2 files changed, 9 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c
> >> index 73a4ec988d16..b774a329e7c7 100644
> >> --- a/drivers/net/wireless/realtek/rtw89/fw.c
> >> +++ b/drivers/net/wireless/realtek/rtw89/fw.c
> >> @@ -6755,13 +6755,18 @@ static int rtw89_fw_read_c2h_reg(struct rtw89_dev *rtwdev,
> >>         const struct rtw89_chip_info *chip = rtwdev->chip;
> >>         struct rtw89_fw_info *fw_info = &rtwdev->fw;
> >>         const u32 *c2h_reg = chip->c2h_regs;
> >> -       u32 ret;
> >> +       u32 ret, timeout;
> >>         u8 i, val;
> >>
> >>         info->id = RTW89_FWCMD_C2HREG_FUNC_NULL;
> >>
> >> +       if (rtwdev->hci.type == RTW89_HCI_TYPE_USB)
> >> +               timeout = RTW89_C2H_TIMEOUT_USB;
> >
> > Should we have different timeout times for USB2 and USB3?
> > The same question for patch 2/2.
> >
> 
> I measured the time it takes to read R_AX_WCPU_FW_CTRL (patch 2/2):
> 
>                 USB 2           USB 3
> RTL8851BU       125 µs          not supported
> RTL8852BU       250 µs          40 µs
> RTL8852CU       375 µs          40 µs
> 
> In my setup the same timeout works for both. Even with the faster reads
> it still waits long enough.

Thanks for the info. 






[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux