2016-05-22 23:05:08

by Daniel Lenski

[permalink] [raw]
Subject: Re: [PATCH] rtl8xxxu: increase polling timeout for firmware startup

Daniel Lenski wrote:

> - Hypothesis: since the rtl8xxxu driver does not explicitly power off the
> device before attempting to power it on, if it boots up in an unknown
> state, it will remain in this state until explicitly power-cycled.

I am now pretty sure that this is the true cause of fimware not starting.

I found that I can induce "Firmware failed to start" by using kexec --force to restart the kernel without a clean shutdown.

After this incomplete reboot, the firmware always fails to start. I guess the rtl8xxxu hardware must be left in some unknown state:

[ 2.794118] usb 1-1.4: Vendor: Realtek
[ 2.794121] usb 1-1.4: Product: 802.11n WLAN Adapter
[ 2.794124] usb 1-1.4: RTL8723AU rev B (TSMC) 1T1R, TX queues 2, WiFi=1, BT=1, GPS=0, HI PA=0
[ 2.794125] usb 1-1.4: RTL8723AU MAC: 20:16:d8:ce:5e:29
[ 2.794127] usb 1-1.4: rtl8xxxu: Loading firmware rtlwifi/rtl8723aufw_B_NoBT.bin
[ 2.797136] usb 1-1.4: Firmware revision 31.0 (signature 0x2302)
[ 2.878370] usb 1-1.4: Firmware checksum poll completed after 0 loops
[ 4.153567] usb 1-1.4: Firmware failed to start after 5000 loops

After power-off and retry of rtl8xxxu_init_device, it then starts correctly:

[ 4.153569] usb 1-1.4: Failed to init device, will retry 5 more times.
[ 4.746357] usb 1-1.4: Firmware checksum poll completed after 0 loops
[ 4.752456] usb 1-1.4: Firmware started after 23 loops
[ 5.194825] usb 1-1.4: Enabling HT_20_40 on the 2.4GHz band

Should I submit a new patch to retry rtl8xxxu_init_device after power cycling?

Thanks,
Dan