forked from kofal.net/zmk
fix: Proper use of CONTAINER_OF with delayable work.
This commit is contained in:
committed by
Pete Johanson
parent
94aa7d8d53
commit
f4e6d70465
@@ -9,6 +9,7 @@
|
||||
#include <zephyr/device.h>
|
||||
#include <zephyr/drivers/kscan.h>
|
||||
#include <zephyr/drivers/gpio.h>
|
||||
#include <zephyr/kernel.h>
|
||||
#include <zephyr/logging/log.h>
|
||||
|
||||
LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
|
||||
@@ -105,7 +106,8 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
|
||||
} \
|
||||
\
|
||||
static void kscan_gpio_work_handler_##n(struct k_work *work) { \
|
||||
struct kscan_gpio_data_##n *data = CONTAINER_OF(work, struct kscan_gpio_data_##n, work); \
|
||||
struct k_work_delayable *d_work = k_work_delayable_from_work(work); \
|
||||
struct kscan_gpio_data_##n *data = CONTAINER_OF(d_work, struct kscan_gpio_data_##n, work); \
|
||||
kscan_gpio_read_##n(data->dev); \
|
||||
} \
|
||||
\
|
||||
|
||||
@@ -290,7 +290,7 @@ static int kscan_matrix_read(const struct device *dev) {
|
||||
}
|
||||
|
||||
static void kscan_matrix_work_handler(struct k_work *work) {
|
||||
struct k_work_delayable *dwork = CONTAINER_OF(work, struct k_work_delayable, work);
|
||||
struct k_work_delayable *dwork = k_work_delayable_from_work(work);
|
||||
struct kscan_matrix_data *data = CONTAINER_OF(dwork, struct kscan_matrix_data, work);
|
||||
kscan_matrix_read(data->dev);
|
||||
}
|
||||
|
||||
@@ -62,7 +62,8 @@ static int kscan_mock_configure(const struct device *dev, kscan_callback_t callb
|
||||
} \
|
||||
} \
|
||||
static void kscan_mock_work_handler_##n(struct k_work *work) { \
|
||||
struct kscan_mock_data *data = CONTAINER_OF(work, struct kscan_mock_data, work); \
|
||||
struct k_work_delayable *d_work = k_work_delayable_from_work(work); \
|
||||
struct kscan_mock_data *data = CONTAINER_OF(d_work, struct kscan_mock_data, work); \
|
||||
const struct kscan_mock_config_##n *cfg = data->dev->config; \
|
||||
uint32_t ev = cfg->events[data->event_index]; \
|
||||
LOG_DBG("ev %u row %d column %d state %d\n", ev, ZMK_MOCK_ROW(ev), ZMK_MOCK_COL(ev), \
|
||||
|
||||
Reference in New Issue
Block a user