summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2018-03-05 09:49:40 -0800
committerchrome-bot <chrome-bot@chromium.org>2018-03-06 09:59:21 -0800
commit7f4018c41f875c7fbdff03ee4a489753d541b0a9 (patch)
treecf8542ac7aac61530afecbc5161a660ccf335ccf /test
parent9ea3cbecb8d3fca58baf4aff8d7e97480fe25860 (diff)
downloadchrome-ec-7f4018c41f875c7fbdff03ee4a489753d541b0a9.tar.gz
fan: Allow board to configure fans at run time
This patch splits struct fan_t into two parts: base configuration and RPM configuration. RPMs are expected to be different from model to model while a base configuration is most likely shared. BUG=b:73720175 BRANCH=none TEST=make buildall Change-Id: Iff17573f110e07e88d097dd848cf91ee98b83176 Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/949382 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'test')
-rw-r--r--test/fan.c39
1 files changed, 20 insertions, 19 deletions
diff --git a/test/fan.c b/test/fan.c
index 9a0fa0d225..6082de1553 100644
--- a/test/fan.c
+++ b/test/fan.c
@@ -17,6 +17,7 @@
#include "timer.h"
#include "util.h"
+#define FAN_RPM(fan) fans[fan].rpm
/*****************************************************************************/
/* Tests */
@@ -29,7 +30,7 @@ static int test_fan(void)
sleep(2);
/* With nothing else to do, fans default to full-on */
- TEST_ASSERT(fan_get_rpm_actual(0) == fans[0].rpm_max);
+ TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_max);
/*
* fan_set_percent_needed() is normally called once a second by the
@@ -46,22 +47,22 @@ static int test_fan(void)
/* On, but just barely */
fan_set_percent_needed(0, 1);
- TEST_ASSERT(fan_get_rpm_actual(0) == fans[0].rpm_start);
+ TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_start);
/* fan is above min speed now, so should be set to min */
fan_set_percent_needed(0, 1);
- TEST_ASSERT(fan_get_rpm_actual(0) == fans[0].rpm_min);
+ TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_min);
/* Full speed */
fan_set_percent_needed(0, 100);
- TEST_ASSERT(fan_get_rpm_actual(0) == fans[0].rpm_max);
+ TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_max);
fan_set_percent_needed(0, 100);
- TEST_ASSERT(fan_get_rpm_actual(0) == fans[0].rpm_max);
+ TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_max);
/* Slow again */
fan_set_percent_needed(0, 1);
- TEST_ASSERT(fan_get_rpm_actual(0) == fans[0].rpm_min);
+ TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_min);
fan_set_percent_needed(0, 1);
- TEST_ASSERT(fan_get_rpm_actual(0) == fans[0].rpm_min);
+ TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_min);
/* Off */
fan_set_percent_needed(0, 0);
@@ -71,31 +72,31 @@ static int test_fan(void)
/* On, but just barely */
fan_set_percent_needed(0, 1);
- TEST_ASSERT(fan_get_rpm_actual(0) == fans[0].rpm_start);
+ TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_start);
/* Force the mock_rpm to be slow, to simulate dragging */
- mock_rpm = fans[0].rpm_min - 105;
+ mock_rpm = FAN_RPM(0)->rpm_min - 105;
/* It should keep trying for the start speed */
fan_set_percent_needed(0, 1);
- TEST_ASSERT(fan_get_rpm_actual(0) == fans[0].rpm_start);
+ TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_start);
/* But we have to keep forcing the mock_rpm back down */
- mock_rpm = fans[0].rpm_min - 105;
+ mock_rpm = FAN_RPM(0)->rpm_min - 105;
fan_set_percent_needed(0, 1);
- TEST_ASSERT(fan_get_rpm_actual(0) == fans[0].rpm_start);
+ TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_start);
/* Now let it turn just under rpm_min. Should be okay there. */
- mock_rpm = fans[0].rpm_min - 10;
+ mock_rpm = FAN_RPM(0)->rpm_min - 10;
fan_set_percent_needed(0, 1);
- TEST_ASSERT(fan_get_rpm_actual(0) == fans[0].rpm_min);
+ TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_min);
/* Let it go a little faster, still okay */
- mock_rpm = fans[0].rpm_min + 10;
+ mock_rpm = FAN_RPM(0)->rpm_min + 10;
fan_set_percent_needed(0, 1);
- TEST_ASSERT(fan_get_rpm_actual(0) == fans[0].rpm_min);
+ TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_min);
/* But if it drops too low, it should go back to the start speed */
- mock_rpm = fans[0].rpm_min - 105;
+ mock_rpm = FAN_RPM(0)->rpm_min - 105;
fan_set_percent_needed(0, 1);
- TEST_ASSERT(fan_get_rpm_actual(0) == fans[0].rpm_start);
+ TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_start);
/* And then relax */
fan_set_percent_needed(0, 1);
- TEST_ASSERT(fan_get_rpm_actual(0) == fans[0].rpm_min);
+ TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_min);
return EC_SUCCESS;
}