power management on the 8686 chipset

Jeff Sutherland jeffs at fomsystems.com
Mon Aug 31 09:54:21 EDT 2009


On Wednesday 26 August 2009, Dongas wrote:
> Hi Bin,
>
> 2009/8/27, Bing Zhao <bzhao at marvell.com>:
> > Hi Dan,
> >
> > > -----Original Message-----
> > > From: Dan Williams [mailto:dcbw at redhat.com]
> > > Sent: Wednesday, August 26, 2009 8:37 AM
> > > To: Dongas
> > > Cc: Bing Zhao; libertas-dev at lists.infradead.org; Andrey Yurovsky; Jeff
> > > Sutherland Subject: Re: power management on the 8686 chipset
> > >
> > > On Wed, 2009-08-26 at 19:52 +0800, Dongas wrote:
> > > > Hi Bing,
> > > >
> > > > 2009/8/26, Bing Zhao <bzhao at marvell.com>:
> > > > > Hi Andrey,
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: libertas-dev-bounces at lists.infradead.org
> > > > > > [mailto:libertas-dev-bounces at lists.infradead.org]
> > >
> > > On
> > >
> > > > > > Behalf Of Andrey Yurovsky
> > > > > > Sent: Tuesday, August 25, 2009 9:44 AM
> > > > > > To: Jeff Sutherland
> > > > > > Cc: libertas-dev at lists.infradead.org
> > > > > > Subject: Re: power management on the 8686 chipset
> > > > > >
> > > > > > On Tue, Aug 25, 2009 at 9:34 AM, Jeff 
Sutherland<jeffs at fomsystems.com> wrote:
> > > > > > > Can someone enlighten me as to why there seems to be such a
> > > > > > > significant difference between the Marvell driver for the
> > > > > > > SD8686 and the libertas driver? Or am I just out of date in
> > > > > > > working with a 2.6.27 kernel?  I need to get power management
> > > > > > > going, especially would like to experiment with IEEE power
> > > > > > > saving and background scanning, plus be able to put the 8686
> > > > > > > into deep sleep mode via some software mechanism.  (I can't
> > > > > > > simply power down the module as that would kill the bluetooth
> > > > > > > part that I need to keep alive when out of wifi range). 
> > > > > > > Private ioctls aren't implemented in the 2.6.27 version as in
> > > > > > > the Marvell driver, and iwconfig seems unable to set power
> > > > > > > modes.  What is it that I am missing here?
> > > > > >
> > > > > > Hi Jeff.  IEEE PS was working for me last time I tried it with
> > > > > > 2.6.30 on both the SDIO and GSPI variants.  Deep Sleep mode is
> > > > > > not implemented in the libertas driver but there's no reason for
> > > > > > why it couldn't be added.  Please use compat-wireless or a more
> > > > > > recent kernel and confirm that IEEE PS is working (or not).
> > > > >
> > > > > The Deep Sleep support will be added to libertas driver soon.
> > > >
> > > > I'm also interested in implement deep sleep for Libertas.
> > > > One issue is that from the firmware spec 5.1 in page 90, it seems the
> > > > host needs to sends a signal through the GPIO to wakeup the WLAN
> > > > subsystem and this is HW dependent.
> > > > I wonder except for the GPIO wakeup method, is there a SW method to
> > > > do it?
> > >
> > > It does not appear that there is a SW method to do it.  But isn't that
> > > what Deep Sleep means?  If the firmware is sleeping, what is going to
> > > bring it out of deep sleep except for a hardware interrupt triggered by
> > > a GPIO?  Sleeping firmware can't execute commands...
> >
> > We do have a way to wake up the device through SDIO/SPI interface. We
> > will demonstrate the SDIO interface wakeup method in our next patch
> > submission for Deep Sleep support.
>
> I have watched the Marvell official driver that it just wakes up the
> chip from deep sleep mode by setting the 'Host Power Up' bit in
> Configuration register(offset 0x3).
> Then the DEEP SLEEP AWAKE event will be generated by firmware
> according to the awake follow.
> But in this event handler, Marvell driver clears CONFIGURATION
> register again by reset it to 0.
> All of this are odd and are not described in the firmware spec for
> such a special purpose.
>
> Would you help clarify a bit more if you know?
>
> Thanks
>
> Regards
> Dongas

I've backported the latest driver code from John's wireless-testing git repo 
to my 2.6.30 kernel, and whilst normal operation is fine, I still can't get 
the part into IEEE power saving mode using iwconfig or iwlist.  What is the 
command to put the libertas 8686 chip (sdio interface) into power saving 
mode?  Platform is PXA270 using the OpenEmbedded distro.

Regards,
-Jeff
-- 
FOM Systems Inc.   www.fomsystems.com
phone:  (USA) +1-330-628-2102 or 800-936-0561, (UK) +44-161-408-3072
mobile: (USA) +1-330-802-1364, (World) +44-7793-827386, Skype: Adekguru
=+=+=+=+=+=+=+=+=+=+=+=+=+=
And He saith unto them, "Follow me, and I will make you fishers of men."
(Matthew 4:19)



More information about the libertas-dev mailing list