Jes Sorensen <Jes.Sorensen@xxxxxxxxxx> writes: > > Unfortunately, I ran into a case today where even 5000 loops was not > > enough after a cold boot. 5000 loops meant about 1.5 second delay > > between finishing the firmware checksum poll, while waiting for the > > firmware to start. It now appears to me that the number of required > > polling loops must be strongly bimodal. > > > > I added some logging, so that the driver reports to me the number of > > loops required for the firmware to start. > > This is bizarre, I wonder if the hardware is having issues in your > laptop? The other bug reports I linked to seem identical to what's happening to mine, so I doubt it is an issue with one specific instance of the hardware. > Another thing to try would be to do an additional reset of the > chip and wait a bit before trying to load the firmware? Thanks, I will give this a shot. Am I understanding your idea correctly? To put a loop around the 8051 reset and the firmware polling loop, with a delay between failure and retry? for (int retry=1; ii<=MAX_RETRIES; ii++) { for (retry=1; retry<=5; retry++) { /* Reset the 8051 */ priv->fops->reset_8051(priv); /* Wait for firmware to become ready */ for (i=0; i<RTL8XXXXU_FIRMWARE_POLL_MAX; i++) { ... } /* On failure, insert a delay before trying again */ if (i==RTL8XXXU_FIRMWARE_POLL_MAX) msleep(500); } } Thanks, Dan -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html