diff options
author | Jon Medhurst <tixy@linaro.org> | 2015-12-22 10:36:33 +0000 |
---|---|---|
committer | Amit Daniel Kachhap <amit.kachhap@arm.com> | 2018-07-10 15:40:33 +0530 |
commit | 9dc5984e0eb9b84c359cb181ac02d7ff1b0f4c27 (patch) | |
tree | 9f16095afa28b85f434e2df5af4936bd698155e5 | |
parent | 6b49336359f1b60daa1b60bd5030344665b542d6 (diff) |
firmware: arm_scpi_test: Add tstress tests targeted at just the PMIC
Signed-off-by: Jon Medhurst <tixy@linaro.org>
-rw-r--r-- | drivers/firmware/arm_scpi_test.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/drivers/firmware/arm_scpi_test.c b/drivers/firmware/arm_scpi_test.c index 2348928a0e88..80763e4d74a5 100644 --- a/drivers/firmware/arm_scpi_test.c +++ b/drivers/firmware/arm_scpi_test.c @@ -66,6 +66,8 @@ static struct mutex pd_lock[MAX_POWER_DOMAINS]; static int test_flags; +static int sensor_pmic = -1; + static u32 random_seed; @@ -166,6 +168,8 @@ static void init_sensors(void) pr_err("FAILED bad name\n"); pr_info("sensor[%d] value is %llu\n", id, get_sensor(id)); + if (strstr(name, "PMIC")) + sensor_pmic = id; } } @@ -249,7 +253,33 @@ static void init_dvfs(void) num_pd = pd; } +static int stress_pmic(void *data) +{ + int sensor, pd, opp; + + while (!kthread_should_stop()) { + sensor = sensor_pmic; + pd = random(num_pd); + opp = random(num_opps[pd]); + switch (random(3)) { + case 0: + if (sensor >= 0) { + get_sensor(sensor); + break; + } + /* If no sensor, do DFVS... */ + case 1: + set_dvfs(pd, opp); + break; + default: + msleep(random(20)); + break; + } + } + + return 0; +} static int stress_all(void *data) { @@ -348,6 +378,12 @@ static struct test tests[] = { stress_all, FLAG_SERIAL_PD, MAX_TEST_THREADS, 60}, {"Stress All, no concurrent DVFS", stress_all, FLAG_SERIAL_DVFS, MAX_TEST_THREADS, 60}, + {"Stress PMIC, concurrent DVFS", + stress_pmic, 0, MAX_TEST_THREADS, 60}, + {"Stress PMIC, concurrent DVFS on different PDs", + stress_pmic, FLAG_SERIAL_PD, MAX_TEST_THREADS, 60}, + {"Stress PMIC, no concurrent DVFS", + stress_pmic, FLAG_SERIAL_DVFS, MAX_TEST_THREADS, 60}, {} }; |