[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190508184635.5054-1-f.fainelli@gmail.com>
Date: Wed, 8 May 2019 11:46:33 -0700
From: Florian Fainelli <f.fainelli@...il.com>
To: linux-kernel@...r.kernel.org
Cc: bcm-kernel-feedback-list@...adcom.com,
Florian Fainelli <f.fainelli@...il.com>,
Sudeep Holla <sudeep.holla@....com>,
Jean Delvare <jdelvare@...e.com>,
Guenter Roeck <linux@...ck-us.net>,
linux-arm-kernel@...ts.infradead.org,
linux-hwmon@...r.kernel.org (open list:HARDWARE MONITORING)
Subject: [PATCH v5 0/2] hwmon: scmi: Scale values to target desired HWMON units
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
Powered by blists - more mailing lists