On Mon, 2009-12-07 at 10:49 +0100, Pavel Machek wrote: > On Mon 2009-12-07 17:41:10, Wu Zhangjin wrote: > > 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! > > Make it return -value, then. I believe other code uses >0 values for > discharge. > Done, but any document/standard about it? Regards, Wu Zhangjin -- 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