Skip to content

Commit

Permalink
tests: benchmarks: power_consumption: i2c: Improve thread suspend
Browse files Browse the repository at this point in the history
Test thread cannot be suspended at any time because driver power
management happens in the thread context so if thread is suspended
at the random moment and system goes to s2ram it can lead to
increased power consumption because thread got suspended before
i2c device got properly suspended.

Signed-off-by: Krzysztof Chruściński <[email protected]>
(cherry picked from commit 4408403)
  • Loading branch information
nordic-krch authored and bjarki-andreasen committed Jan 14, 2025
1 parent c8d2d01 commit 0707812
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions tests/benchmarks/power_consumption/i2c/src/driver_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@

static const struct device *i2c = DEVICE_DT_GET(DT_ALIAS(sensor_bme688));

static bool suspend_req;

bool self_suspend_req(void)
{
suspend_req = true;
return true;
}

void thread_definition(void)
{
Expand All @@ -17,6 +24,10 @@ void thread_definition(void)

while (1) {
ret = i2c_reg_read_byte(i2c, 0x76, 0x75, &value);
if (suspend_req) {
suspend_req = false;
k_thread_suspend(k_current_get());
}
if (ret < 0) {
printk("Failure in reading byte %d", ret);
return;
Expand Down

0 comments on commit 0707812

Please sign in to comment.