diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2018-03-05 09:49:40 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-03-06 09:59:21 -0800 |
commit | 7f4018c41f875c7fbdff03ee4a489753d541b0a9 (patch) | |
tree | cf8542ac7aac61530afecbc5161a660ccf335ccf /test | |
parent | 9ea3cbecb8d3fca58baf4aff8d7e97480fe25860 (diff) | |
download | chrome-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.c | 39 |
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; } |