View Single Post
Posts: 3,074 | Thanked: 12,960 times | Joined on Mar 2010 @ Sofia,Bulgaria
#4
@MartinK: I'd recommend having a quick look at https://github.com/community-ssu/iph...e/master/iphbd and https://github.com/community-ssu/iph.../master/iphb.c before commenting what iphbd does or does not.

However, It has NOTHING to do with wakelocks or screen being on or off. Basically, what it does is to group network activity, so radios are turned on only for a small period, not every time an application has something to send over the network. When you register with libiphb and call iphb_wait, you tell it whether to block or not. If you choose to not block, you have fd to select/poll on. All registered applications are being "informed" at the same time (by either returning from iphb_wait (if you choose blocking method), or by data available to be read from fd (for async method). That way, all applications start sending their data at the "heartbeat" moment, radios are turned on, data send and radios turned back off (as there is no more data to be send), thus saving battery life. See https://github.com/community-ssu/iph...iphbd/hbtest.c for more details on how is this API used.

Another thing iphb does is to queue keepalive packets, so they are send only when there are other types of packets to be send (IIRC, see kernel module code for what exactly it does and how).
__________________
Never fear. I is here.

720p video support on N900,SmartReflex on N900,Keyboard and mouse support on N900
Nothing is impossible - Stable thumb2 on n900

Community SSU developer
kernel-power developer and maintainer

 

The Following 10 Users Say Thank You to freemangordon For This Useful Post: