加入一个工作队列 (patch)

这篇博客详细介绍了如何在Linux内核中使用工作队列和定时器,包括`hrtimer`和`struct timer_list`的用法。通过修改`drivers/input/keyboard/aw9523.c`文件,展示了如何设置按键定时器以及在定时器时间到后调度工作队列`leds_work`来控制LED。同时,文中还涉及到`jiffies`和`msecs_to_jiffies`的转换以及工作队列初始化和取消的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

diff --git a/drivers/input/keyboard/aw9523.c b/drivers/input/keyboard/aw9523.c
index ea2daa7…244ce12 100644
— a/drivers/input/keyboard/aw9523.c
+++ b/drivers/input/keyboard/aw9523.c
@@ -33,6 +33,8 @@
#include <linux/pinctrl/consumer.h>
#include <linux/regulator/consumer.h>
#include <linux/hrtimer.h>
+#include <linux/jiffies.h>
+#include <linux/timer.h>
#include <linux/input/aw9523_cfg.h >
@@ -170,7 +172,14 @@ static unsigned char keyst_def[KEYST_MAX][P1_NUM_MAX];
struct aw9523_kpad_platform_data g_aw9523_data;
//EXPORT_SYMBOL_GPL(aw9523_led_store);
+u32 bl_level_bakup = 0;
+bool btn_leds_timer_onoff =false;
+struct timer_list btn_leds_ms_timer;
+static struct work_struct leds_work;
+void aw9523_buttonleds_set(enum led_brightness value);
+void aw9523_buttonleds_set_timer_on(void);
+void btn_leds_ms_timer_func_handler(unsigned long data);
+/
****************************************************************

    • after 5s no button is pressed,and the button light is off
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值