在Touchscreen驱动中
1 声明
Ad7877.c (\linux-2.6.30.4\drivers\input\touchscreen):struct timer_listtimer;/* P: lock */
2 初始化
在函数 static int __devinit ad7877_probe(struct spi_device *spi) 中
执行 setup_timer(&ts->timer, ad7877_timer, (unsigned long) ts); 进行初始化
其中ad8777_timer是回调函数,ts为给该函数的参数
3 使用
在函数 static void ad7877_callback(void *_ts) 中
mod_timer(&ts->timer, jiffies + TS_PEN_UP_TIMEOUT);
mod_timer函数用于修改超时时间,使timer继续生效
否则timer只会执行一次回调函数
4 释放
在函数 static void ad7877_disable(struct ad7877 *ts) 中
if (del_timer_sync(&ts->timer))
删除timer,del_timer_sync用于多核cpu同步,否则可以使用del_timer进行删除