I think the code here is wrong as of 42ec4cc.
|
if (force_no_adapter || (!extpower_is_present()) || (active_mpower < 55000)) { |
|
active_mpower = 0; |
|
if (mode > EC_DC_BATTERY_SAVER) |
|
mode = mode << 4; |
|
} |
mode = mode << 4 will produce out-of-range values for the AC modes: EC_AC_BEST_PERFORMANCE will become 256 (16 << 4), EC_AC_BALANCED (32) will become 512, etc.
Reading the condition, it looks like we want to treat low-power AC (AC < 55W) as the same as DC.
I would expect that to downgrade EC_AC_BEST_PERFORMANCE to EC_**DC**_BEST_PERFORMANCE (as an example).
If that's the case, I suspect mode >> 4 is what you want. That reduces EC_AC_BEST_PERFORMANCE to 1 (16 >> 4)... which happens to match the value for EC_DC_BEST_...
I think the code here is wrong as of 42ec4cc.
EmbeddedController/zephyr/program/lotus/azalea/src/cpu_power.c
Lines 286 to 290 in 42ec4cc
mode = mode << 4will produce out-of-range values for the AC modes:EC_AC_BEST_PERFORMANCEwill become256(16 << 4),EC_AC_BALANCED(32) will become512, etc.Reading the condition, it looks like we want to treat low-power AC (AC < 55W) as the same as DC.
I would expect that to downgrade
EC_AC_BEST_PERFORMANCEtoEC_**DC**_BEST_PERFORMANCE(as an example).If that's the case, I suspect
mode >> 4is what you want. That reducesEC_AC_BEST_PERFORMANCEto1(16 >> 4)... which happens to match the value forEC_DC_BEST_...