Messages in this thread | | | From | Florian Fainelli <> | Subject | [PATCH v5 0/2] hwmon: scmi: Scale values to target desired HWMON units | Date | Wed, 8 May 2019 11:46:33 -0700 |
| |
Hi Sudeep, Guenter,
This patch series adds support for scaling SCMI sensor values read from firmware. Sudeep, let me know if you think we should be treating scale == 0 as a special value to preserve some firmware compatibility (not that this would be desired).
Changes in v5: - overflow check would not work, so check specifically for an absolute scale being greater than 19 to avoid returning an incorrect power of 10 factor - fixed incorrect value argument passed to scmi_hwmon_scale(). - Added Guenter's Reviewed-by tag on the first patch
Changes in v4: - deal with overflow in the caller of __pow10() as suggested by Guenter which makes us rework a bit how the value argument/return value are passed - don't harcode the latest power of 10 factor to be 18, just rely on overflowing the u64 value instead
Changes in v3:
- add a local __pow10 function to scmi-hwmon.c while a plan to provide a generic function is figured out. - add check on power > 18 which would overflow a 64-bit unsigned integer - use div64_u64() to properly divide a 64-bit quantity with an unsigned 64-bit quantity
Changes in v2:
- added a helper function in kernel.h: __pow10() - made the scale in scmi_sensor_info an s8 type, added defines for checking the sign bit and sign extending with a mask - simplify computations in hwmon driver
Florian Fainelli (2): firmware: arm_scmi: Fetch and store sensor scale hwmon: scmi: Scale values to target desired HWMON units
drivers/firmware/arm_scmi/sensors.c | 6 ++++ drivers/hwmon/scmi-hwmon.c | 45 +++++++++++++++++++++++++++++ include/linux/scmi_protocol.h | 1 + 3 files changed, 52 insertions(+)
-- 2.17.1
| |