Re: [PATCH v7 0/6] wifi: rtw88: preparations for RTL8723B/RTL8723BS

Luka Gejak <[email protected]>
Newsgroups org.kernel.vger.linux-wireless,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On August 20, 2026 11:04:06 AM GMT+02:00, [email protected] wrote:
>From: Luka Gejak <[email protected]>
>
>This is the first of two series adding support for the Realtek RTL8723B
>802.11n chipset and its RTL8723BS SDIO variant to rtw88. It contains
>only the changes to the shared rtw88 core that the chip driver depends
>on. The chip itself, the build glue and the MAINTAINERS entry are a
>second series.
>

...

>Known limitation
>================
>
>After a long idle period the firmware intermittently fails to leave LPS,
>which rtw88 reports as "firmware failed to leave lps state". That check
>is the REG_TCR poll in __rtw_fw_leave_lps_check_reg(). On one occurrence
>here the warning was followed fourteen seconds later by a full
>reauthentication, so it is not only log noise.
>
>Power save is enabled on my test machine and it reproduces there,
>roughly once per day of mostly idle uptime, and the occurrences cluster.
>It was first reported on ARM SDIO boards, but it is not specific to slow
>hosts.
>
>Instrumenting the poll shows the wake is never immediate on this board.
>Over a run of a hundred consecutive wakes the bit was still set on the
>first read every time and cleared on the next 20 ms poll; logging only
>the outliers after that, the occasional wake takes two polls. So the
>budget is five polls and the ordinary cost is one, which also means
>every wake costs at least 20 ms here. A failure is then the far tail of
>that distribution, which leaves open whether the budget is simply too
>small. I would rather keep measuring than guess at a fix.
>
>It is not caused by anything in this series, and it needs the chip
>driver from the second series to be reachable at all, but it is open and
>I am chasing it.
>

...
Hi Ping-Ke,

A correction to the "Known limitation" section of the cover letter. I wrote
that a failure looks like the far tail of the wake time distribution,
leaving open whether the poll budget is too small. I have since debugged it
and that turns out not to be the case.

With a local debug patch logging REG_TCR on every poll of
__rtw_fw_leave_lps_check_reg(), I caught three failures. In every one
BIT_PWRMGT_HWDATA_EN was still set after 600 ms, six times the budget. And
there is no tail. Counting how many polls each successful wake needed, at
the third failure:

        poll0=25 poll1=27610 poll2=9 poll3=0 poll4=0 fails=3

No wake in roughly 27600 ever took three or four polls, yet failures happen.
The firmware either finishes within 40 ms or not at all.

A larger LEAVE_LPS_TRY_CNT would not help. This is firmware side, and the
existing code already does the sensible thing: give up, clear the bit, warn.
Nothing in this series changes. The rate is about one in 9200 wakes.

Best regards,
Luka Gejak
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.