* fix: amd tolerate emtpy power cap
* chore: add rx6800m test data with broken power1_cap
---------
Co-authored-by: Ilya Zlobintsev <ilya.zl@protonmail.com>
* marking Intel with the fan control flag, if available
* static fan RPM control for Intel
* firmware fan control and checking if we can atually control the fans
* improved the messages
* fan curve suport for Intel
* consuming the result
* getting the fan curve from hwmon for Intel, if available
* getting the fan static speed from hwmon for Intel, if available
* getting the fan control mode from hwmon for Intel, if available
* checking if the fan control is enabled for Intel
* checking the curve points amount with the expose controllable points for Intel instead of hardcoding
* applying the fan settings to all exposed fans for Intel
* consuming the result
* applying the Intel fan curve in its own function
* applying the Intel fans static speed in its own function
* properly validating the fan curve for Intel
* getting the max fan speed for Intel, if available
* setting the remaining points based on the last point for Intel
* auto completing the missing curve points on Intel
* omitting points we probably auto completed for Intel
* properly auto completing the fan curve points for Intel
* only omitting the last fan curve points for Intel
* cargo fmt on intel.rs
* cargo clippy --fix --lib -p lact-daemon
* removed the "Option::" prefix
* removed the debug code
* using a result on "apply_fan_curve" and "is_valid_fan_curve"
* improved the Result handling in "apply_fan_curve"
* cargo fmt
* refactor: code cleanup, truncate read curve off configured one
* chore: minor cleanup
* added the get_hwmon_fan_curve and get_hwmon_fan_curve_points and renamed the old get_hwmon_fan_curve to get_truncated_hwmon_fan_curve
The new get_hwmon_fan_curve returns the fan curve from hwmon as is.
The get_hwmon_fan_curve_points returns a Vec with the hwmon fan curve as is, used on both get_hwmon_fan_curve and get_truncated_hwmon_fan_curve.
The get_truncated_hwmon_fan_curve returns the fan curve from hwmon, but some points may be ommited
* chore: update b580 test data with the fan curve
* feat: smarter fan curve truncation
* returning a single points if all points are the same, Intel xe
If all points are the same speed, we display the current FanControlMode as Static, so we can safely display one point in the curve
* safely getting the first point
---------
Co-authored-by: Ilya Zlobintsev <ilya.zl@protonmail.com>