Larry Finger Larry.Finger@gmail.com wrote:
As discussed in the links below, the SDIO part of RTW8821CS fails to start correctly if such startup happens while the UART portion of the chip is initializing.
I checked with SDIO team internally, but they didn't meet this case, so we may take this workaround.
SDIO team wonder if something other than BT cause this failure, and after system boots everything will be well. Could you boot the system without WiFi/BT drivers, but insmod drivers manually after booting?
drivers/net/wireless/realtek/rtw88/sdio.c | 28 +++++++++++++++++++++++ 1 file changed, 28 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtw88/sdio.c b/drivers/net/wireless/realtek/rtw88/sdio.c index 0cae5746f540..eec0ad85be72 100644 --- a/drivers/net/wireless/realtek/rtw88/sdio.c +++ b/drivers/net/wireless/realtek/rtw88/sdio.c @@ -1325,6 +1325,34 @@ int rtw_sdio_probe(struct sdio_func *sdio_func,
[...]
mdelay(500);
Will it better to use sleep function?
On 4/10/24 9:13 PM, Ping-Ke Shih wrote:
Larry Finger Larry.Finger@gmail.com wrote:
As discussed in the links below, the SDIO part of RTW8821CS fails to start correctly if such startup happens while the UART portion of the chip is initializing.
I checked with SDIO team internally, but they didn't meet this case, so we may take this workaround.
SDIO team wonder if something other than BT cause this failure, and after system boots everything will be well. Could you boot the system without WiFi/BT drivers, but insmod drivers manually after booting?
I sent the request to the user with the problem. I do not have any SDIO devices.
drivers/net/wireless/realtek/rtw88/sdio.c | 28 +++++++++++++++++++++++ 1 file changed, 28 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtw88/sdio.c b/drivers/net/wireless/realtek/rtw88/sdio.c index 0cae5746f540..eec0ad85be72 100644 --- a/drivers/net/wireless/realtek/rtw88/sdio.c +++ b/drivers/net/wireless/realtek/rtw88/sdio.c @@ -1325,6 +1325,34 @@ int rtw_sdio_probe(struct sdio_func *sdio_func,
[...]
mdelay(500);
Will it better to use sleep function?
My thoughts were that a sleep function would tie up a CPU, whereas the delay would not. Initially, we tested an msleep(150) statement, but that only gave a 60% success rate, whereas mdelay(500) worked 20 straight tries.
Thanks for your comments.
Larry
Larry Finger larry.finger@gmail.com wrote:
On 4/10/24 9:13 PM, Ping-Ke Shih wrote:
Larry Finger Larry.Finger@gmail.com wrote:
mdelay(500);
Will it better to use sleep function?
My thoughts were that a sleep function would tie up a CPU, whereas the delay would not. Initially, we tested an msleep(150) statement, but that only gave a 60% success rate, whereas mdelay(500) worked 20 straight tries.
Sorry, I didn't consider the experimental results of msleep(150) and mdelay(500).
My point was busy waiting of mdelay(). I just want to say if msleep(500) is better than mdelay(500).
linux-stable-mirror@lists.linaro.org