Hello
On Sat, Dec 6, 2014 at 9:09 PM, Vladimir 'φ-coder/phcoder' Serbinenko < phcoder@gmail.com> wrote:
Example: I have a wwan card, but I mostly use it for GPS. I can save some power by turning it off without rebooting, while keeping wifi on
with: I'd like to see some real figures on power saved between idle wwan and disabled wwan, I really doubt it's anything noticeable
Correct.
I don't have a x60 with an "official" wwan module, so can't test how it works with lenovo bios (saving more or less power?), but from the datasheet of a Huawei 770, with idle meaning usb connected, and disabled meaning rfkill (hardware switch or using ec_access to write to the H8) : - in idle mode it goes from ~92 mA when it's disabled to about ~100mA when it's not (I'm using an average of 3G and 2G power consumption, but they only differ by about 4 mA) - when it's suspended, between 3 and 4mA (tell me if you want a copy of the datasheet. I guess it's similar to other modules)
So basically, the hardware switch or the ec_access command disable currently saves 8 mA, about 0.026W at 3.3.V, ie almost nothing, while properly suspending wwan and not letting it come back in idle mode (or even disconnecting it from the USB bus) would save 90 mA so 0.330 W, which starts becoming interesting.
The latter can be already be done with ec_access and echo -n "suspend" > /sys/bus/usb/drivers/whatever/power/level, but that's not very user friendly, and I don't know if the module won't try to wake-up from suspend.
wwan module is powered unconditionally. So if you don't trust it - remove
it.
It can be powered, since in the X60 the WWAN port only has the USB lines wired, so it's not much of a security problem for the PCI bus as long as it is not connected to the USB bus where it could wake up from suspend and pretend to be many different things.
The hardware swich properly disconnects the bluetooth module from USB. It would be nice to do the same for wwan, but I guess ec_access and echo -n "suspend" are better than nothing. I plan to try and create a rfkill-wwan kernel module doing just that. I tried to find some code example for the RCBA but couldn't.