On 9 March 2012 01:56, Larry Finger <Larry.Finger@xxxxxxxxxxxx> wrote: > On 03/08/2012 05:26 AM, jerome huang wrote: >> >> >> I found a interesting thing. >> >> Here is my original test steps: >> 1. plugin 8192 => at this step, modules will be inserted >> 2. ifconfig wlan0 up => at this step, firmware will be uploaded >> 3. iwlist wlan0 scanning => check if wlan0 works >> >> The original problem occurs at last step, >> there is "always" no ap list result. >> >> And I found a way to make it work "always": >> 1. plugin 8192 >> 2. ifconfig wlan0 up >> 3. ifconfig wlan0 down >> 4. ifconfig wlan0 up >> 5. iwlist wlan0 scanning >> If I up->down->up sequentially, (without scanning after first up), >> and then scanning(step 5), >> it works! >> >> Does this mean the firmware is not transfered or written correctly? > > > I did a bit of testing with debug level 4. For kernels 3.2 and older, the > firmware file is read by the kernel when the driver is loaded using the > synchronous method. I confirm that it is not loaded into the device until > the interface is brought up. The upload mechanism is supposed to be waiting > while the firmware is uploaded, but that may not be happening. > > When you did the original 3-step process, was there any delay between steps > 2 and 3? Does anything change if you wait for 30 sec between steps 2 and 3? > > with kernels 3.3 and later, there is a major change in the firmware loading > in that an asynchronous method is used. The probe routine run when the > driver is loaded places a firmware read request, but does not wait. The > interface startup is delayed until the callback routine is entered. This > change will not affect when the firmware is loaded into the device. > > Larry It still got no any result if I wait for 30 sec (or longer) between (original) step 2 and 3. I double confirmed that it always does not work for steps: plugin -> up -> scanning and always works for steps: plugin -> up -> down -> up -> scanning. And sometimes it works for next down->up->scanning, sometimes it doesn't. Is the change of firmware loading in kernel 3.3 made by rtlwifi only, or ring expansion in xhci is also necessary? BR, Jerome -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html