linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Felix Fietkau <nbd@openwrt.org>
To: Michael Leun <lkml20120218@newton.leun.net>
Cc: Mohammed Shafi <shafi.wireless@gmail.com>,
	Ben Greear <greearb@candelatech.com>,
	casteyde.christian@free.fr,
	Kelly Anderson <kelly@silka.with-linux.com>,
	"ath9k-devel@lists.ath9k.org" <ath9k-devel@venema.h4ckr.net>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-wireless Mailing List <linux-wireless@vger.kernel.org>,
	Sergio Correia <lists@uece.net>
Subject: Re: 3.4-rc ath9k regression (Re: [ath9k-devel] 3.3.1 ath9k regression)
Date: Thu, 12 Apr 2012 15:46:25 +0200	[thread overview]
Message-ID: <4F86DCB1.20507@openwrt.org> (raw)
In-Reply-To: <20120409172933.4ca4775a@xenia.leun.net>

On 2012-04-09 5:29 PM, Michael Leun wrote:
> On Mon, 9 Apr 2012 19:52:45 +0530
> Mohammed Shafi <shafi.wireless@gmail.com> wrote:
> 
>> On Mon, Apr 9, 2012 at 7:33 PM, Michael Leun
>> <lkml20120218@newton.leun.net> wrote:
>> > On Mon, 9 Apr 2012 12:25:49 +0200
>> > Michael Leun <lkml20120218@newton.leun.net> wrote:
>> >
>> >> On Mon, 9 Apr 2012 11:58:06 +0530
>> >> Mohammed Shafi <shafi.wireless@gmail.com> wrote:
>> >>
>> >> > On Mon, Apr 9, 2012 at 4:38 AM, Michael Leun
>> >> > <lkml20120218@newton.leun.net> wrote:
>> >> > > After an suspend to disk / resume cycle (in kernel suspend to
>> >> > > disk, openSuSE) with 3.4-rc2 my ath9k wireless does not ping
>> >> > > anymore.
>> >> > >
>> >> > > Output of iwconfig wlan0 looks just as usual (associated to
>> >> > > AP).
>> >> > >
>> >> > > iwconfig wlan0 essid <myssid> fixes this (causes an
>> >> > > deauthenticate/authenticate with AP) - then connectivity is
>> >> > > there again.
>> >> > >
>> >> > > Guess what: "Of course" does not happen when reverting
>> >> > > c1afdaff90538ef085b756454f12b29575411214 ath9k: fix going to
>> >> > > full-sleep on PS idle.
>> >> > >
>> >> > > So, in my opinion it should be seriously considered to revert
>> >> > > that patch until it is fully understood what is going on and
>> >> > > why.
>> >> >
>> >> > please try with the attached patch to see if it helps.
>> >>
>> >> Yes, this patch helps with the issue I see in 3.4-rc2 described
>> >> above.
>> >
>> > Sorry, but I have to partially rectify that:
>> >
>> > It works, if the time the machine was suspended is short, as it was
>> > when I did that testing.
>> >
>> > But I noticed it failing, when the machine was hibernated for some
>> > hours.
>> >
>> > I easily can reproduce that, when I reboot the AP while the
>> > notebook is down (btw: AP is TP-LINK TL-WR1043ND running OpenWRT
>> > backfire 10.03.1, also using ath9k).
>> >
>> > When I do this (hibernate notebook, reboot AP, resume notebook check
>> > connectivity) with 3.4-rc2 and your test.patch it fails in 100% of
>> > cases.
>> 
>> the test.patch is nothing but it reverts back to the code something
>> back 3.1.1 and there is something else is also there
>> , where we need to fix. unfortunately i cannot reproduce the issue in
>> 3.4-rc2 which you guys can easily recreate it.  i should try with
>> 3.3.1 tomorrow. i will go home today and see if i can find some thing
>> with my analysis.
> 
> Please do not mix up things. What I described above I see in 3.4-rc2,
> the thing in 3.3.1 looks different (altough it may (or may not) have the
> same root cause).
> 
> Between your test.patch and reverting
> c1afdaff90538ef085b756454f12b29575411214 is this diff:
> 
> @@ -118,13 +118,13 @@
>         if (--sc->ps_usecount != 0)
>                 goto unlock;
>  
> -       if (sc->ps_idle && (sc->ps_flags & PS_WAIT_FOR_TX_ACK))
> +       if (sc->ps_idle)
>                 mode = ATH9K_PM_FULL_SLEEP;
>         else if (sc->ps_enabled &&
>                  !(sc->ps_flags & (PS_WAIT_FOR_BEACON |
>                               PS_WAIT_FOR_CAB |
> -                             PS_WAIT_FOR_PSPOLL_DATA |
> -                             PS_WAIT_FOR_TX_ACK)))
> +                             PS_WAIT_FOR_TX_ACK |
> +                             PS_WAIT_FOR_PSPOLL_DATA)))
>                 mode = ATH9K_PM_NETWORK_SLEEP;
>         else
>                 goto unlock;
> 
> 
> Seems obvious to me, that this line
> 
> if (sc->ps_idle && (sc->ps_flags & PS_WAIT_FOR_TX_ACK))
> 
> makes the real difference.
Please try this patch with plain 3.3.1 or 3.4-rc2 to see if it fixes 
this issue:

diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -1584,6 +1584,7 @@ static int ath9k_config(struct ieee80211_hw *hw, u32 changed)
 	struct ath_hw *ah = sc->sc_ah;
 	struct ath_common *common = ath9k_hw_common(ah);
 	struct ieee80211_conf *conf = &hw->conf;
+	bool reset_channel = false;
 
 	ath9k_ps_wakeup(sc);
 	mutex_lock(&sc->mutex);
@@ -1592,6 +1593,12 @@ static int ath9k_config(struct ieee80211_hw *hw, u32 changed)
 		sc->ps_idle = !!(conf->flags & IEEE80211_CONF_IDLE);
 		if (sc->ps_idle)
 			ath_cancel_work(sc);
+		else
+			/*
+			 * The chip needs a reset to properly wake up from
+			 * full sleep
+			 */
+			reset_channel = ah->chip_fullsleep;
 	}
 
 	/*
@@ -1620,7 +1627,7 @@ static int ath9k_config(struct ieee80211_hw *hw, u32 changed)
 		}
 	}
 
-	if (changed & IEEE80211_CONF_CHANGE_CHANNEL) {
+	if ((changed & IEEE80211_CONF_CHANGE_CHANNEL) || reset_channel) {
 		struct ieee80211_channel *curchan = hw->conf.channel;
 		int pos = curchan->hw_value;
 		int old_pos = -1;


  parent reply	other threads:[~2012-04-12 13:46 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4F7A8EB7.4060200@silka.with-linux.com>
     [not found] ` <4F7A923D.5000002@candelatech.com>
2012-04-03  6:26   ` [ath9k-devel] 3.3.1 ath9k regression Mohammed Shafi
2012-04-03  6:49     ` Kelly Anderson
2012-04-03  7:16       ` Mohammed Shafi
2012-04-03  7:46         ` Kelly Anderson
2012-04-03  7:52           ` Mohammed Shafi
2012-04-03  8:04             ` Mohammed Shafi
2012-04-03  8:38               ` Kelly Anderson
2012-04-03 18:03                 ` Michael Leun
2012-04-04  7:29                   ` Mohammed Shafi
2012-04-04 15:03                     ` Mohammed Shafi
2012-04-04 21:51                       ` Michael Leun
2012-04-05  6:16                         ` Mohammed Shafi
2012-04-05 13:53                           ` Michael Leun
2012-04-05 18:25                         ` Ben Greear
2012-04-06  5:11                           ` Mohammed Shafi
2012-04-06 20:31                             ` Ben Greear
2012-04-08 23:08                               ` 3.4-rc ath9k regression (Re: [ath9k-devel] 3.3.1 ath9k regression) Michael Leun
2012-04-09  6:28                                 ` Mohammed Shafi
2012-04-09  8:45                                   ` Sergio Correia
2012-04-09 10:25                                   ` Michael Leun
2012-04-09 14:03                                     ` Michael Leun
2012-04-09 14:22                                       ` Mohammed Shafi
2012-04-09 15:29                                         ` Michael Leun
2012-04-10  5:48                                           ` Mohammed Shafi
2012-04-10 10:05                                             ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Mohammed Shafi
2012-04-12 13:46                                           ` Felix Fietkau [this message]
2012-04-12 13:58                                             ` 3.4-rc ath9k regression (Re: [ath9k-devel] " Felipe Contreras
2012-04-12 15:35                                               ` Michael Leun
2012-04-12 18:11                                                 ` Felix Fietkau
2012-04-12 19:28                                                   ` Sergio Correia
2012-04-14 21:15                                                     ` Felipe Contreras
2012-04-12 22:01                                                   ` Michael Leun
2012-04-09 19:12                                 ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Sujith Manoharan
2012-04-09 21:21                                   ` Michael Leun
2012-04-09  6:52                               ` [ath9k-devel] 3.3.1 ath9k regression Mohammed Shafi

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=4F86DCB1.20507@openwrt.org \
    --to=nbd@openwrt.org \
    --cc=ath9k-devel@venema.h4ckr.net \
    --cc=casteyde.christian@free.fr \
    --cc=greearb@candelatech.com \
    --cc=kelly@silka.with-linux.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=lists@uece.net \
    --cc=lkml20120218@newton.leun.net \
    --cc=shafi.wireless@gmail.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;
as well as URLs for NNTP newsgroup(s).