Linux wireless drivers development
 help / color / mirror / Atom feed
From: Luca Coelho <luca@coelho.fi>
To: Arik Nemtsov <arik@wizery.com>
Cc: Yegor Yefremov <yegorslists@googlemail.com>,
	"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
	kaloz@openwrt.org
Subject: Re: wl1271: tx stuck in firmware
Date: Wed, 09 Apr 2014 15:41:52 +0300	[thread overview]
Message-ID: <1397047312.4418.68.camel@dubbel> (raw)
In-Reply-To: <CA+XVXfcig5u1cQ8thxwO4B5_u=69x7FpdmORxMR4dFvpig_CZQ@mail.gmail.com>

On Wed, 2014-04-09 at 15:20 +0300, Arik Nemtsov wrote:
> >>
> >> # calibrator wlan0 plt power_mode on
> >> [   93.107215] wlcore: power up
> >> [   93.688714] wlcore: firmware booted in PLT mode PLT_ON (PLT 6.3.10.0.133)
> >> # [  139.232802] YY: wl1271_tx_allocate
> >> [  144.241849] wlcore: ERROR Tx stuck (in FW) for 5000 ms. Starting recovery
> >
> > Okay, you have a starting point. :)
> >
> > Now try to look from where this is being called and so on.  I don't
> > think we should be calling wl1271_tx_allocate() in PLT mode either.  Try
> > tracing back until you find where this is coming from.
> 
> Actually we've seen this bug before. At the time it was caused by FW
> requests for dummy packets during PLT mode, which forced us to issue
> Tx..

Ah, interesting, I hadn't heard about it.  Would it send it even if the
event was masked out? Masking it out (if it's not already) for PLT would
probably be the right thing to do.


> It was fixed in the FW, but I'm not sure this was ever upstreamed
> (customer specific fix, etc). Anyway it's pretty safe to disable the
> Tx watchdog during PLT - try something like this:
> 
> void wl12xx_rearm_tx_watchdog_locked(struct wl1271 *wl)
> {
>      if (wl->plt)
>          return;

Maybe this could be blocked even earlier, like here:

diff --git a/drivers/net/wireless/ti/wlcore/event.c b/drivers/net/wireless/ti/wlcore/event.c
index 1f9a360..c44d3c0 100644
--- a/drivers/net/wireless/ti/wlcore/event.c
+++ b/drivers/net/wireless/ti/wlcore/event.c
@@ -158,6 +158,9 @@ EXPORT_SYMBOL_GPL(wlcore_event_channel_switch);
 
 void wlcore_event_dummy_packet(struct wl1271 *wl)
 {
+       if (wl->plt)
+               return;
+
        wl1271_debug(DEBUG_EVENT, "DUMMY_PACKET_ID_EVENT_ID");
        wl1271_tx_dummy_packet(wl);
 }

--
Luca.


  reply	other threads:[~2014-04-09 12:42 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-08 15:28 wl1271: tx stuck in firmware Yegor Yefremov
2014-04-08 20:29 ` Luca Coelho
2014-04-09  9:14   ` Yegor Yefremov
2014-04-09  9:21     ` Luca Coelho
2014-04-09 10:16       ` Yegor Yefremov
2014-04-09 11:49         ` Luca Coelho
2014-04-09 12:20           ` Arik Nemtsov
2014-04-09 12:41             ` Luca Coelho [this message]
2014-04-09 13:07               ` Arik Nemtsov
2014-04-09 13:20                 ` Yegor Yefremov
2014-04-09 13:25                   ` Arik Nemtsov
2014-04-09 15:28                     ` Yegor Yefremov
2014-04-10  7:21                       ` Yegor Yefremov
2014-04-10  7:43                         ` Arik Nemtsov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1397047312.4418.68.camel@dubbel \
    --to=luca@coelho.fi \
    --cc=arik@wizery.com \
    --cc=kaloz@openwrt.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=yegorslists@googlemail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox