mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-08 16:41:55 +00:00
Provide multiple fan support within the EC itself
This adds explicit "int fan" args to the exported functions from common/fan.c: fan_set_percent_needed() and fan_percent_to_rpm(). Within that file, multiple fans are handled independently. This is not complete, though. Host commands and sysjump support still only handle a single fan, so at the moment multiple fans are treated identically in those cases. BUG=chrome-os-partner:23530 BRANCH=none TEST=manual All boards build, "make runtests" passes. On a multi-fan system, the EC command "faninfo" displays multiple results: > faninfo Fan 0 Actual: 0 rpm Fan 0 Target: 0 rpm Fan 0 Duty: 0% Fan 0 Status: 0 (not spinning) Fan 0 Mode: rpm Fan 0 Auto: yes Fan 0 Enable: yes Fan 1 Actual: 0 rpm Fan 1 Target: 0 rpm Fan 1 Duty: 0% Fan 1 Status: 0 (not spinning) Fan 1 Mode: rpm Fan 1 Auto: no Fan 1 Enable: no > and the "fanduty", "fanset", and "fanauto" all require the fan number as the first arg: > fanduty 0 30 Setting fan 0 duty cycle to 30% > fanset 1 2000 Setting fan 1 rpm target to 2000 > fanauto 0 > fanauto 1 On single-fan systems, there is no visible change. Change-Id: Idb8b818122e157960d56779b2a86e5ba433bee1b Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/175368 Reviewed-by: Randall Spangler <rspangler@chromium.org>
This commit is contained in:
committed by
chrome-internal-fetch
parent
00682eb80f
commit
88503ab4ec
@@ -32,19 +32,21 @@ extern const struct fan_t fans[];
|
||||
* Set the amount of active cooling needed. The thermal control task will call
|
||||
* this frequently, and the fan control logic will attempt to provide it.
|
||||
*
|
||||
* @param fan Fan number (index into fans[])
|
||||
* @param pct Percentage of cooling effort needed (0 - 100)
|
||||
*/
|
||||
void fan_set_percent_needed(int pct); /* HEY: need fan arg */
|
||||
void fan_set_percent_needed(int fan, int pct);
|
||||
|
||||
/**
|
||||
* This function translates the percentage of cooling needed into a target RPM.
|
||||
* The default implementation should be sufficient for most needs, but
|
||||
* individual boards may provide a custom version if needed (see config.h).
|
||||
*
|
||||
* @param fan Fan number (index into fans[])
|
||||
* @param pct Percentage of cooling effort needed (always in [0,100])
|
||||
* Return Target RPM for fan
|
||||
*/
|
||||
int fan_percent_to_rpm(int pct); /* HEY: need fan arg */
|
||||
int fan_percent_to_rpm(int fan, int pct);
|
||||
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user