void bt_mesh_beacon_ivu_initiator(bool enable) { bt_mesh.ivu_initiator = enable; if (enable) { k_work_submit(&beacon_timer.work); } else if (bt_mesh_beacon_get() == BT_MESH_BEACON_DISABLED) { k_delayed_work_cancel(&beacon_timer); } }
void test_call_stacks_analyze_workq(void) { TC_PRINT("from workq:\n"); k_sem_init(&sync_sema, 0, NUM_OF_WORK); for (int i = 0; i < NUM_OF_WORK; i++) { k_work_init(&work[i], work_handler); k_work_submit(&work[i]); k_sem_take(&sync_sema, K_FOREVER); } }
static void sx9500_gpio_cb(struct device *port, struct gpio_callback *cb, uint32_t pins) { struct sx9500_data *data = CONTAINER_OF(cb, struct sx9500_data, gpio_cb); ARG_UNUSED(pins); k_work_submit(&data->work); }
static void apds9960_gpio_callback(struct device *dev, struct gpio_callback *cb, u32_t pins) { struct apds9960_data *drv_data = CONTAINER_OF(cb, struct apds9960_data, gpio_cb); gpio_pin_disable_callback(dev, DT_AVAGO_APDS9960_0_INT_GPIOS_PIN); #ifdef CONFIG_APDS9960_TRIGGER k_work_submit(&drv_data->work); #else k_sem_give(&drv_data->data_sem); #endif }
static void bmg160_gpio_callback(struct device *port, struct gpio_callback *cb, u32_t pin) { struct bmg160_device_data *bmg160 = CONTAINER_OF(cb, struct bmg160_device_data, gpio_cb); ARG_UNUSED(port); ARG_UNUSED(pin); #if defined(CONFIG_BMG160_TRIGGER_OWN_THREAD) k_sem_give(&bmg160->trig_sem); #elif defined(CONFIG_BMG160_TRIGGER_GLOBAL_THREAD) k_work_submit(&bmg160->work); #endif }
static void adxl372_gpio_callback(struct device *dev, struct gpio_callback *cb, u32_t pins) { struct adxl372_data *drv_data = CONTAINER_OF(cb, struct adxl372_data, gpio_cb); const struct adxl372_dev_config *cfg = dev->config->config_info; gpio_pin_disable_callback(dev, cfg->int_gpio); #if defined(CONFIG_ADXL372_TRIGGER_OWN_THREAD) k_sem_give(&drv_data->gpio_sem); #elif defined(CONFIG_ADXL372_TRIGGER_GLOBAL_THREAD) k_work_submit(&drv_data->work); #endif }
void bt_mesh_beacon_enable(void) { int i; if (!bt_mesh_is_provisioned()) { k_work_submit(&beacon_timer.work); return; } for (i = 0; i < ARRAY_SIZE(bt_mesh.sub); i++) { struct bt_mesh_subnet *sub = &bt_mesh.sub[i]; if (sub->net_idx == BT_MESH_KEY_UNUSED) { continue; } sub->beacons_last = 0; sub->beacons_cur = 0; bt_mesh_net_beacon_update(sub); } k_work_submit(&beacon_timer.work); }
static void mpu6050_gpio_callback(struct device *dev, struct gpio_callback *cb, u32_t pins) { struct mpu6050_data *drv_data = CONTAINER_OF(cb, struct mpu6050_data, gpio_cb); ARG_UNUSED(pins); gpio_pin_disable_callback(dev, CONFIG_MPU6050_GPIO_PIN_NUM); #if defined(CONFIG_MPU6050_TRIGGER_OWN_THREAD) k_sem_give(&drv_data->gpio_sem); #elif defined(CONFIG_MPU6050_TRIGGER_GLOBAL_THREAD) k_work_submit(&drv_data->work); #endif }
static void lis2ds12_gpio_callback(struct device *dev, struct gpio_callback *cb, u32_t pins) { struct lis2ds12_data *data = CONTAINER_OF(cb, struct lis2ds12_data, gpio_cb); ARG_UNUSED(pins); gpio_pin_disable_callback(dev, DT_ST_LIS2DS12_0_IRQ_GPIOS_PIN); #if defined(CONFIG_LIS2DS12_TRIGGER_OWN_THREAD) k_sem_give(&data->trig_sem); #elif defined(CONFIG_LIS2DS12_TRIGGER_GLOBAL_THREAD) k_work_submit(&data->work); #endif }
static void lis2dw12_gpio_callback(struct device *dev, struct gpio_callback *cb, u32_t pins) { struct lis2dw12_data *lis2dw12 = CONTAINER_OF(cb, struct lis2dw12_data, gpio_cb); const struct lis2dw12_device_config *cfg = dev->config->config_info; ARG_UNUSED(pins); gpio_pin_disable_callback(dev, cfg->int_gpio_pin); #if defined(CONFIG_LIS2DW12_TRIGGER_OWN_THREAD) k_sem_give(&lis2dw12->gpio_sem); #elif defined(CONFIG_LIS2DW12_TRIGGER_GLOBAL_THREAD) k_work_submit(&lis2dw12->work); #endif /* CONFIG_LIS2DW12_TRIGGER_OWN_THREAD */ }