* At86rf230 sleep state
@ 2015-09-09 12:26 Baptiste Clenet
2015-09-09 13:13 ` Alexander Aring
0 siblings, 1 reply; 3+ messages in thread
From: Baptiste Clenet @ 2015-09-09 12:26 UTC (permalink / raw)
To: linux-wpan
Hi,
I looked at the at86rf230 driver on bluetooth-next branch and I saw the
two functions concerning the sleep state:
at86rf230_sleep(struct at86rf230_local *lp)
at86rf230_awake(struct at86rf230_local *lp)
I'm wondering if the transceiver can wake up from a received frame if
it is in SLEEP State? As far as I can see on the datasheet, it is not
able to. Am I wrong?
Alex Aring?
Cheers,
--
Baptiste
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: At86rf230 sleep state
2015-09-09 12:26 At86rf230 sleep state Baptiste Clenet
@ 2015-09-09 13:13 ` Alexander Aring
2015-09-09 15:17 ` Baptiste Clenet
0 siblings, 1 reply; 3+ messages in thread
From: Alexander Aring @ 2015-09-09 13:13 UTC (permalink / raw)
To: Baptiste Clenet; +Cc: linux-wpan
Hi,
On Wed, Sep 09, 2015 at 02:26:27PM +0200, Baptiste Clenet wrote:
> Hi,
>
> I looked at the at86rf230 driver on bluetooth-next branch and I saw the
> two functions concerning the sleep state:
>
> at86rf230_sleep(struct at86rf230_local *lp)
>
> at86rf230_awake(struct at86rf230_local *lp)
>
>
> I'm wondering if the transceiver can wake up from a received frame if
> it is in SLEEP State? As far as I can see on the datasheet, it is not
> able to. Am I wrong?
>
The transceiver can't. The transceiver need to be inside RX_AACK_ON state
(or RX_ON, but we don't use this state).
What we currently support for powersaving is when the subsystem doesn't
use the transceiver then the transceiver goes into SLEEP state.
This happens when:
1. After device probing.
2. When _ALL_ interfaces which belongs to the transceiver (phy) are
down. -> Which is the state after probing. See 1.
3. When interfaces are up and you going into pm-suspend mode. (The
interfaces are still up, but the transceiver will call "stop"
callback before and this is the same like 2. -> It stops rx but when
stopping rx you can also go into sleep). When "resume" occurs the
subsystem call "start" callback and do a "awake" and acivate rx again.
Addtional note: we need to awake the transceiver to access registers,
there exists "direct or non-direct" nl802154 calls into the driver layer
to set registers. This is why we add before and after register access an
awake and sleep again. -> but this is very transceiver specifc, there
exists also transceiver which has register access while sleeping.
This is currently the stuff we support for powersaving, this has nothing
todo with 802.15.4 powersaving stuff like "beacon enabled mode". We
currently doesn't support this kind of stuff and I have also no idea how
it works and how we can implement this stuff for SoftMAC transceivers.
:-)
- Alex
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: At86rf230 sleep state
2015-09-09 13:13 ` Alexander Aring
@ 2015-09-09 15:17 ` Baptiste Clenet
0 siblings, 0 replies; 3+ messages in thread
From: Baptiste Clenet @ 2015-09-09 15:17 UTC (permalink / raw)
To: Alexander Aring; +Cc: linux-wpan
2015-09-09 15:13 GMT+02:00 Alexander Aring <alex.aring@gmail.com>:
> Hi,
>
> On Wed, Sep 09, 2015 at 02:26:27PM +0200, Baptiste Clenet wrote:
>> Hi,
>>
>> I looked at the at86rf230 driver on bluetooth-next branch and I saw the
>> two functions concerning the sleep state:
>>
>> at86rf230_sleep(struct at86rf230_local *lp)
>>
>> at86rf230_awake(struct at86rf230_local *lp)
>>
>>
>> I'm wondering if the transceiver can wake up from a received frame if
>> it is in SLEEP State? As far as I can see on the datasheet, it is not
>> able to. Am I wrong?
>>
>
> The transceiver can't. The transceiver need to be inside RX_AACK_ON state
> (or RX_ON, but we don't use this state).
>
> What we currently support for powersaving is when the subsystem doesn't
> use the transceiver then the transceiver goes into SLEEP state.
>
> This happens when:
>
> 1. After device probing.
> 2. When _ALL_ interfaces which belongs to the transceiver (phy) are
> down. -> Which is the state after probing. See 1.
> 3. When interfaces are up and you going into pm-suspend mode. (The
> interfaces are still up, but the transceiver will call "stop"
> callback before and this is the same like 2. -> It stops rx but when
> stopping rx you can also go into sleep). When "resume" occurs the
> subsystem call "start" callback and do a "awake" and acivate rx again.
>
> Addtional note: we need to awake the transceiver to access registers,
> there exists "direct or non-direct" nl802154 calls into the driver layer
> to set registers. This is why we add before and after register access an
> awake and sleep again. -> but this is very transceiver specifc, there
> exists also transceiver which has register access while sleeping.
>
Thank you for the answer! It is what I thought.
>
> This is currently the stuff we support for powersaving, this has nothing
> todo with 802.15.4 powersaving stuff like "beacon enabled mode". We
> currently doesn't support this kind of stuff and I have also no idea how
> it works and how we can implement this stuff for SoftMAC transceivers.
> :-)
>
Yes there is still some improvments to do :-)
> - Alex
--
Baptiste
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-09-09 15:17 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-09 12:26 At86rf230 sleep state Baptiste Clenet
2015-09-09 13:13 ` Alexander Aring
2015-09-09 15:17 ` Baptiste Clenet
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.