Hi Thomas,
thanks for reviewing this patch. [ ... ] >> + >> +/* >> + * Exponential moving average computation >> + */ >> +static int irq_timings_ema_new(s64 value, s64 ema_old) > > There is a mixed bag of s64/u64 all over this code. Please stay > consistent. We had enough sign confusion bugs in the past. Right. I have a question, ema_old and value will be always u64 type and the function irq_timings_ema_new() will return an u64 ... > value = (value - ema_old) * EMA_ALPHA_VAL; > return ema_old + value >> EMA_ALPHA_SHIFT; ... how can I deal with the operations above when value < ema_old ? Shall I use an intermediate s64 ? eg: s64 aux = (value - ema_old) * EMA_ALPHA_VAL; return ema_old + aux >> EMA_ALPHA_SHIFT; ? [ ... ] > Other than that this looks good to me. Nice work! Thanks, I appreciate. -- <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog