From: Felix Fietkau <nbd@openwrt.org>
To: ath9k-devel@lists.ath9k.org
Subject: [ath9k-devel] 3.4-rc ath9k regression (Re: 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;
WARNING: multiple messages have this Message-ID (diff)
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;
next prev parent reply other threads:[~2012-04-12 13:46 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-03 5:46 3.3.1 ath9k regression Kelly Anderson
2012-04-03 6:01 ` [ath9k-devel] " Ben Greear
2012-04-03 6:01 ` Ben Greear
2012-04-03 6:26 ` [ath9k-devel] " Mohammed Shafi
2012-04-03 6:26 ` Mohammed Shafi
2012-04-03 6:49 ` Kelly Anderson
2012-04-03 6:49 ` Kelly Anderson
2012-04-03 7:16 ` Mohammed Shafi
2012-04-03 7:16 ` Mohammed Shafi
2012-04-03 7:46 ` Kelly Anderson
2012-04-03 7:46 ` Kelly Anderson
2012-04-03 7:52 ` Mohammed Shafi
2012-04-03 7:52 ` Mohammed Shafi
2012-04-03 8:04 ` Mohammed Shafi
2012-04-03 8:04 ` Mohammed Shafi
2012-04-03 8:38 ` Kelly Anderson
2012-04-03 8:38 ` Kelly Anderson
2012-04-03 18:03 ` Michael Leun
2012-04-03 18:03 ` Michael Leun
2012-04-04 7:29 ` Mohammed Shafi
2012-04-04 7:29 ` Mohammed Shafi
2012-04-04 15:03 ` Mohammed Shafi
2012-04-04 15:03 ` Mohammed Shafi
2012-04-04 21:51 ` Michael Leun
2012-04-04 21:51 ` Michael Leun
2012-04-05 6:16 ` Mohammed Shafi
2012-04-05 6:16 ` Mohammed Shafi
2012-04-05 13:53 ` Michael Leun
2012-04-05 13:53 ` Michael Leun
2012-04-05 18:25 ` Ben Greear
2012-04-05 18:25 ` Ben Greear
2012-04-06 5:11 ` Mohammed Shafi
2012-04-06 5:11 ` Mohammed Shafi
2012-04-06 20:31 ` Ben Greear
2012-04-06 20:31 ` Ben Greear
2012-04-08 23:08 ` [ath9k-devel] 3.4-rc ath9k regression (Re: 3.3.1 ath9k regression) Michael Leun
2012-04-08 23:08 ` 3.4-rc ath9k regression (Re: [ath9k-devel] " Michael Leun
2012-04-09 6:28 ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Mohammed Shafi
2012-04-09 6:28 ` 3.4-rc ath9k regression (Re: [ath9k-devel] " Mohammed Shafi
2012-04-09 8:45 ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Sergio Correia
2012-04-09 8:45 ` 3.4-rc ath9k regression (Re: [ath9k-devel] " Sergio Correia
2012-04-09 10:25 ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Michael Leun
2012-04-09 10:25 ` 3.4-rc ath9k regression (Re: [ath9k-devel] " Michael Leun
2012-04-09 14:03 ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Michael Leun
2012-04-09 14:03 ` 3.4-rc ath9k regression (Re: [ath9k-devel] " Michael Leun
2012-04-09 14:22 ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Mohammed Shafi
2012-04-09 14:22 ` 3.4-rc ath9k regression (Re: [ath9k-devel] " Mohammed Shafi
2012-04-09 15:29 ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Michael Leun
2012-04-09 15:29 ` 3.4-rc ath9k regression (Re: [ath9k-devel] " Michael Leun
2012-04-10 5:48 ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Mohammed Shafi
2012-04-10 5:48 ` 3.4-rc ath9k regression (Re: [ath9k-devel] " Mohammed Shafi
2012-04-10 5:55 ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Peter Stuge
2012-04-10 10:05 ` Mohammed Shafi
2012-04-10 10:05 ` Mohammed Shafi
2012-04-12 13:46 ` Felix Fietkau [this message]
2012-04-12 13:46 ` 3.4-rc ath9k regression (Re: [ath9k-devel] " Felix Fietkau
2012-04-12 13:58 ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Felipe Contreras
2012-04-12 13:58 ` 3.4-rc ath9k regression (Re: [ath9k-devel] " Felipe Contreras
2012-04-12 15:35 ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Michael Leun
2012-04-12 15:35 ` 3.4-rc ath9k regression (Re: [ath9k-devel] " Michael Leun
2012-04-12 18:11 ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Felix Fietkau
2012-04-12 18:11 ` 3.4-rc ath9k regression (Re: [ath9k-devel] " Felix Fietkau
2012-04-12 19:28 ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Sergio Correia
2012-04-12 19:28 ` 3.4-rc ath9k regression (Re: [ath9k-devel] " Sergio Correia
2012-04-14 21:15 ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Felipe Contreras
2012-04-14 21:15 ` 3.4-rc ath9k regression (Re: [ath9k-devel] " Felipe Contreras
2012-04-12 22:01 ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Michael Leun
2012-04-12 22:01 ` 3.4-rc ath9k regression (Re: [ath9k-devel] " Michael Leun
2012-04-09 19:12 ` [ath9k-devel] 3.4-rc ath9k regression (Re: " Sujith Manoharan
2012-04-09 19:12 ` Sujith Manoharan
2012-04-09 21:21 ` Michael Leun
2012-04-09 21:21 ` Michael Leun
2012-04-09 6:52 ` [ath9k-devel] 3.3.1 ath9k regression Mohammed Shafi
2012-04-09 6:52 ` Mohammed Shafi
2012-04-04 10:40 ` Mantas M.
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@lists.ath9k.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.