From: Kalle Valo <kvalo@qca.qualcomm.com>
To: Raja Mani <rmani@qca.qualcomm.com>
Cc: <linux-wireless@vger.kernel.org>, <ath6kl-devel@qualcomm.com>
Subject: Re: [PATCH] ath6kl: Check wow state before sending control and data pkt
Date: Tue, 7 Feb 2012 15:33:03 +0200 [thread overview]
Message-ID: <4F31280F.9000306@qca.qualcomm.com> (raw)
In-Reply-To: <4F30F980.9010206@qca.qualcomm.com>
On 02/07/2012 12:14 PM, Raja Mani wrote:
> On Monday 06 February 2012 07:44 PM, Kalle Valo wrote:
>> On 02/06/2012 03:56 PM, rmani@qca.qualcomm.com wrote:
>>>
>>> +enum ath6kl_wow_state {
>>> + ATH6KL_WOW_STATE_NONE,
>>> + ATH6KL_WOW_STATE_SUSPENDING,
>>> + ATH6KL_WOW_STATE_SUSPENDED,
>>> +};
>>> +
>>> struct ath6kl {
>>> struct device *dev;
>>> struct wiphy *wiphy;
>>>
>>> enum ath6kl_state state;
>>> + enum ath6kl_wow_state wow_state;
>>> unsigned int testmode;
>>
>> To be honest, adding a new state variable scares me. I don't see how we
>> are able to maintain two different state variables, the end result would
>> be a total mess.
>
> ath6kl_wow_state is a just sub state of WOW. It roles over only in WOW
> mode. However i understand your point.
It's not just a substate as it's separately checked in txrx.c.
>> I recommend to look at this problem by adding a new state to enum
>> ath6kl_state. That would make it a lot easier to handle all the
>> different states.
>
> The condition to stop ctrl and data pkt transfer are different.
> Ctrl pkt should be stopped when wow_suspended (after sending
> set_host_sleep_cmd_mode). Data pkt should be dropped before
> the moment we configure set_ip_cmd().
Don't think about dropping packets, instead try to make sure that the
packet flow is _stopped_. Dropping packets should be the last resort,
instead we need to go to the source of the packets. For data packets
this means that we need to stop netdev queues. For control packets we
need to make sure that cfg80211 ops in cfg80211.c don't issue any new
wmi commands. And maybe we should also consider debugfs and wmi events
as they can also issue new wmi commands.
> This where we need a state WOW_SUSPENDING and WOW_SUSPENDED.
> enum ath6kl_state has over all ath6kl suspend state (cut pwr, deep
> sleep,wow). IMHO, mixing WOW sub states there is not good approach.
How is this problem related only to WoW? Doesn't it apply to all suspend
modes?
> If you feel maintaining separate state is not good idea, i could think
> of introducing two new flag WOW_SUSPENDING, WOW_SUSPENDED in ar->flag.
After a quick thought having a SUSPENDING state makes, but I can't see
the reason for name WOW_SUSPENDING. WOW_SUSPENDED is unclear for me,
what's the difference to ATH6KL_STATE_WOW?
Kalle
next prev parent reply other threads:[~2012-02-07 13:33 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-06 13:56 [PATCH] ath6kl: Check wow state before sending control and data pkt rmani
2012-02-06 14:14 ` Kalle Valo
2012-02-07 10:14 ` Raja Mani
2012-02-07 13:33 ` Kalle Valo [this message]
2012-02-08 9:40 ` Raja Mani
2012-02-06 14:30 ` Kalle Valo
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=4F31280F.9000306@qca.qualcomm.com \
--to=kvalo@qca.qualcomm.com \
--cc=ath6kl-devel@qualcomm.com \
--cc=linux-wireless@vger.kernel.org \
--cc=rmani@qca.qualcomm.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).