brick: use new smp waiting

This commit is contained in:
Thomas Schoebel-Theuer 2022-08-23 16:25:06 +02:00
parent cc55f2fdf4
commit 29307ceb1c
1 changed files with 10 additions and 5 deletions

View File

@ -30,6 +30,7 @@
#define _STRATEGY
#include "brick_wait.h"
#include "brick.h"
#include "brick_mem.h"
@ -596,7 +597,7 @@ void set_button(struct generic_switch *sw, bool val, bool force)
if (val != oldval) {
sw->button = val;
//sw->trigger = true;
wake_up_interruptible(&sw->event);
brick_wake_smp(&sw->event);
}
}
EXPORT_SYMBOL_GPL(set_button);
@ -608,7 +609,7 @@ void set_led_on(struct generic_switch *sw, bool val)
if (val != oldval) {
sw->led_on = val;
//sw->trigger = true;
wake_up_interruptible(&sw->event);
brick_wake_smp(&sw->event);
}
}
EXPORT_SYMBOL_GPL(set_led_on);
@ -620,7 +621,7 @@ void set_led_off(struct generic_switch *sw, bool val)
if (val != oldval) {
sw->led_off = val;
//sw->trigger = true;
wake_up_interruptible(&sw->event);
brick_wake_smp(&sw->event);
}
}
EXPORT_SYMBOL_GPL(set_led_off);
@ -631,9 +632,13 @@ void set_button_wait(struct generic_brick *brick, bool val, bool force, int time
if (brick->ops)
(void)brick->ops->brick_switch(brick);
if (val) {
wait_event_interruptible_timeout(brick->power.event, brick->power.led_on, timeout);
brick_wait_smp(brick->power.event,
brick->power.led_on,
timeout);
} else {
wait_event_interruptible_timeout(brick->power.event, brick->power.led_off, timeout);
brick_wait_smp(brick->power.event,
brick->power.led_off,
timeout);
}
}
EXPORT_SYMBOL_GPL(set_button_wait);