Post- GTA02 / kill CPU and LCM during calls

Andy Green andy at openmoko.com
Sat Mar 22 12:37:10 CET 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Somebody in the thread at some point said:

I cc'd Will who can be interested in this.  The context is that we
figure by suspending the CPU and turning off the LCM during a call, we
can get a significant increase in talk time, maybe 20 - 30%.

>> One way or another moving the phone from your ear to where you can see
>> the display to change states (or even see the battery state or call
>> duration or buttons for DTMF or volume) is a "gesture" we can detect and
>> react to by waking the CPU.
> 
> Yep, waking isn't the problem, like you say, by detecting "gesture".

It still needs thinking about from the various angles.  I guess if you
need to use the applications you can just touch the touchscreen to
unsuspend at any time.  When you want to end a call:

Phone-on-ear: gesture of taking it from your ear should wake it (which
is good because it starts to wake before you have it in front of your
face), if it falsely wakes it can time out and go back to sleep.

Headset: maybe the current HOLD button or similar on headset should wake
and end the call in one step so you don't have to fumble around finding
the phone

Handsfree: One of the physical buttons could do it, or if that is too
much overload on button semantics and we don't want a dedicated hangup
button, touchscreen wake and hang up using touchscreen.  Since we
consider the MPU managing touchscreen, it can even think about
"touchscreen gestures" while the CPU is down, ie, corner - corner
diagonal finger movement = wake + hangup in one step during CPU and LCM off.

> The point is when to switch off the display. There's no way to relyably 
> detect "on ear" by using G-meters. 
> Anyway this thread is about things we need in GTA03+. Obviously a proximity 
> detector (like in some nokia phone) to detect "on ear" is very useful. IR 
> refektion, capacitive, or ultrasonic type comes to mind. Probably IR is best, 
> to distinguish "on ear" from approaching hand when pressing a key.
> On nokia (also IR, forgot the model) this was used to switch off freehand, not 
> to blow your ear, IIRC.

I take your point about it but a lot of people will use the headset
thing and any work dedicated to ears will not always give information.
We also need to take care about people using it lying down or changing
between sitting, walking etc, so absolute G sensing isn't enough either.
 Handsfree mode also won't give this information at all if it is on a
car sunshade or whatever.

But much simpler we already know logically if we made a call or we are
answering a call, and can infer that if we are in that state and we
transmitted audio for a little while, 99% of the time we are not going
to be using the LCM or CPU again until we want to end the call.  So we
can simply sleep the CPU and LCM shortly after a call starts and leave
it like that until one of the call end scenarios above.

> A simple echo-suppression by inverse leveling of speaker and mic (adaptive 
> half duplex, used by vast majority of cheap handsfree phones) is easily done 
> with 1MHz CPU clock (or MPU, if it may access wolfson mixer).

Yes I prefer this half-duplex solution from the MPU if we don't find
some cheap integrated acoustic echo canceller solution and to definitely
ask nothing of CPU and LCM as part of any call (at least by default).

- -Andy
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iD8DBQFH5O9mOjLpvpq7dMoRApPgAJ0S0Nzo7Da2IF1RM0I6DydcEpcy0gCgjwP8
oBPkygioTMtSGY40/opkTos=
=ZS0M
-----END PGP SIGNATURE-----




More information about the openmoko-kernel mailing list