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 -- To unsubscribe from this list: send the line "unsubscribe linux-laptop" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html