Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Upgrade to 4.4.50-rt62
[kvmfornfv.git]
/
kernel
/
drivers
/
hwmon
/
g762.c
diff --git
a/kernel/drivers/hwmon/g762.c
b/kernel/drivers/hwmon/g762.c
index
b96a2a9
..
628be9c
100644
(file)
--- a/
kernel/drivers/hwmon/g762.c
+++ b/
kernel/drivers/hwmon/g762.c
@@
-193,14
+193,17
@@
static inline unsigned int rpm_from_cnt(u8 cnt, u32 clk_freq, u16 p,
* Convert fan RPM value from sysfs into count value for fan controller
* register (FAN_SET_CNT).
*/
* Convert fan RPM value from sysfs into count value for fan controller
* register (FAN_SET_CNT).
*/
-static inline unsigned char cnt_from_rpm(u
32
rpm, u32 clk_freq, u16 p,
+static inline unsigned char cnt_from_rpm(u
nsigned long
rpm, u32 clk_freq, u16 p,
u8 clk_div, u8 gear_mult)
{
u8 clk_div, u8 gear_mult)
{
- if (!rpm) /* to stop the fan, set cnt to 255 */
+ unsigned long f1 = clk_freq * 30 * gear_mult;
+ unsigned long f2 = p * clk_div;
+
+ if (!rpm) /* to stop the fan, set cnt to 255 */
return 0xff;
return 0xff;
- r
eturn clamp_val(((clk_freq * 30 * gear_mult) / (rpm * p * clk_div)),
-
0, 255
);
+ r
pm = clamp_val(rpm, f1 / (255 * f2), ULONG_MAX / f2);
+
return DIV_ROUND_CLOSEST(f1, rpm * f2
);
}
/* helper to grab and cache data, at most one time per second */
}
/* helper to grab and cache data, at most one time per second */