Messages in this thread | | | Subject | Re: [PATCH v8 5/8] Loongson: YeeLoong: add hardware monitoring driver | From | Wu Zhangjin <> | Date | Mon, 07 Dec 2009 17:41:10 +0800 |
| |
On Mon, 2009-12-07 at 09:04 +0100, Pavel Machek wrote: > > > What is going on here? I thought the value is already in two's > > > complement... Is the above equivalent of > > > > > > if (value < 0) > > > value = -value; > > > > > > ? If so, why? If not, can you add a comment? > > > > Right, then, will use this instead: > > > > static int get_battery_current(void) > > { > > s16 value; > > > > value = (ec_read(REG_BAT_CURRENT_HIGH) << 8) | > > (ec_read(REG_BAT_CURRENT_LOW)); > > > > return abs(value); > > } > > That's certainly better. But... why not return signed value? Current > flowing from the battery is certainly very different from current > flowing into it...
You are totally right ;)
Just test it, when flowing from the battery, the value is negative, and when flowing into the battery, the value is positive, so, no abs() needed. thanks!
BTW: This part of source code was written by another EC guy, not checked it carefully, sorry ;)
Best Regards, Wu Zhangjin
| |