Re: [PATCH] brcmfmac: sdio: Increase the default timeouts a bit
From: Sjoerd Simons <hidden>
Date: 2016-01-25 15:55:31
Also in:
linux-mmc, linux-rockchip, lkml, netdev
On Mon, 2016-01-25 at 16:36 +0100, Arend van Spriel wrote:
On 25-01-16 11:47, Sjoerd Simons wrote:quoted
On a Radxa Rock2 board with a Ampak AP6335 (Broadcom 4339 core) it seems the card responds very quickly most of the time, unfortunately during initialisation it sometimes seems to take just a bit over 2 seconds to respond. This results intialization failing with message like: brcmf_c_preinit_dcmds: Retreiving cur_etheraddr failed, -52 brcmf_bus_start: failed: -52 brcmf_sdio_firmware_callback: dongle is not responding Increasing the timeout to allow for a bit more headroom allows the card to initialize reliably.I would prefer to know where the 2 second response time comes from. Could be sdio retuning. Maybe the chromeos people can comment whether this has been root caused.
The only reference i could find for where the timeout came from was in the bcmdhd which has: #define IOCTL_RESP_TIMEOUT 2000 /* In milli second default value for Production FW */ But not sure if that's helpful :).
There is a mmc patch pending in which retuning procedure can be deferred by the driver. Using that API may resolve the issue as well and I would prefer that solution.quoted
A quick search online after diagnosing/fixing this showed that Google has a similar patch in their ChromeOS tree, so this doesn't seem specific to the board I'm using.As the retuning stuff is not in main line I guess we need this fix for now so... Acked-by: Arend van Spriel <redacted>quoted
Signed-off-by: Sjoerd Simons <redacted> ---Still would like to know whether it is firmware initialization or some mmc stack procedure. Any suggestions to debug this are welcome. Regards, Arend ---quoted
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c index dd66143..75ac4bd 100644--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c@@ -45,8 +45,8 @@#include "chip.h" #include "firmware.h" -#define DCMD_RESP_TIMEOUT msecs_to_jiffies(2000) -#define CTL_DONE_TIMEOUT msecs_to_jiffies(2000) +#define DCMD_RESP_TIMEOUT msecs_to_jiffies(2500) +#define CTL_DONE_TIMEOUT msecs_to_jiffies(2500) #ifdef DEBUG
-- Sjoerd Simons Collabora Ltd.