Re: [PATCH v8 5/8] Loongson: YeeLoong: add hardware monitoring driver
Pavel Machek <[email protected]> Sun, 6 Dec 2009 09:47:17 +0100
| Newsgroups | org.kernel.vger.linux-laptop,org.kernel.vger.linux-kernel,org.kernel.vger.linux-mips |
|---|---|
| Message-ID | <[email protected]> |
Hi!
> +static int get_battery_current(void)
> +{
> + s16 value;
> +
> + value = (ec_read(REG_BAT_CURRENT_HIGH) << 8) |
> + (ec_read(REG_BAT_CURRENT_LOW));
> +
> + if (value < 0)
> + value = ~value + 1;
> +
> + return value;
> +}
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?
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html