#5418 NORM Future : powersave mode non-functional.

Zarro Boogs per Child bugtracker at laptop.org
Mon Dec 17 01:29:47 EST 2007


#5418: powersave mode non-functional.
-----------------------+----------------------------------------------------
  Reporter:  dwmw2     |       Owner:  mbletsas      
      Type:  defect    |      Status:  new           
  Priority:  normal    |   Milestone:  Future Release
 Component:  wireless  |     Version:                
Resolution:            |    Keywords:                
  Verified:  0         |  
-----------------------+----------------------------------------------------

Comment(by dwmw2):

 The firmware manual seems to suggest that the host should ignore the SLEEP
 event if it doesn't want to go to sleep -- and I've made the driver do
 just that if there are commands or data still to be sent.

 However, this causes a delay on incoming traffic. Obviously the device
 cannot know that we have ignored its SLEEP event, and seems to wait for a
 couple of seconds before sending us anything else.

 Is there a command we can send to actively NAK the SLEEP event? As a quick
 hack I tried resending the CONFIRM_WAKE command (not because I thought
 that was a sensible thing to do, but just because I happened to be able to
 test that with a one-line change). I thought it might hint to the device
 that the driver _isn't_ going into sleep mode. It doesn't...


 {{{
 [18795.582111] libertas cmd: EVENT: sleep
 [18795.586006] libertas cmd: EVENT: something to send; ignoring PS_SLEEP
 [18795.592599] libertas host: SEND_WAKEC_CMD: before download
 [18795.598228] usb8xxx usbd: 1-2:*** type = 1
 [18795.602446] usb8xxx usbd: 1-2:size after = 8
 [18795.606879] libertas host: SEND_WAKEC_CMD: sent confirm wake
 [18795.612790] usb8xxx usbd (INT): 1-2:Recv length = 0xc, Recv type =
 0xF00DFACE
 [18795.620191] libertas thread (INT): lbs_interrupt: intcounter=0
 [18795.626197] usb8xxx usbd (INT): 1-2:Wake up main thread to handle cmd
 response
 [18795.633932] usb8xxx usbd: 1-2:*** type = 0
 [18795.638097] usb8xxx usbd: 1-2:size after = 142
 [18795.642737] libertas thread: main-thread 111: intcounter=1
 currenttxskb=00000000 dnld_sent=1
 [18795.651425] libertas thread: main-thread 222 (waking up): intcounter=1
 currenttxskb=00000000 dnld_sent=0
 [18795.661152] libertas thread: main-thread 333: intcounter=1
 currenttxskb=00000000 dnld_sent=0
 [18795.669782] usb8xxx usbd: 1-2:Int cause is 0x8
 [18795.674305] libertas thread: main-thread 444: intcounter=0
 currenttxskb=00000000 dnld_sent=0
 [18795.682865] libertas thread: main-thread: cmd response ready
 [18795.691121] libertas host: CMD_RESP: cur_cmd is NULL
 [18795.696270] libertas thread: main-thread 111: intcounter=0
 currenttxskb=00000000 dnld_sent=0
 [18795.704938] libertas thread: main-thread sleeping... Conn=0 IntC=0
 PS_mode=1 PS_State=1
 [18797.650823] usb8xxx usbd (INT): 1-2:Recv length = 0x8, Recv type =
 0xBEEFFACE
 [18797.658123] usb8xxx usbd (INT): 1-2:**EVENT** 0xA
 }}}


 A ping is running, pinging this device from outside once as second. When
 the above happens, it (unsurprisingly) sees a couple of packets with high
 latency (>2s then >1s then back to normal).

-- 
Ticket URL: <http://dev.laptop.org/ticket/5418#comment:6>
One Laptop Per Child <http://dev.laptop.org>
OLPC bug tracking system



More information about the Bugs mailing list