aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/cx88/cx88-input.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/media/video/cx88/cx88-input.c b/drivers/media/video/cx88/cx88-input.c
index 8136673fe9e8..7ff901f0bf68 100644
--- a/drivers/media/video/cx88/cx88-input.c
+++ b/drivers/media/video/cx88/cx88-input.c
@@ -148,20 +148,16 @@ static void ir_timer(unsigned long data)
148static void cx88_ir_work(struct work_struct *work) 148static void cx88_ir_work(struct work_struct *work)
149{ 149{
150 struct cx88_IR *ir = container_of(work, struct cx88_IR, work); 150 struct cx88_IR *ir = container_of(work, struct cx88_IR, work);
151 unsigned long timeout;
152 151
153 cx88_ir_handle_key(ir); 152 cx88_ir_handle_key(ir);
154 timeout = jiffies + (ir->polling * HZ / 1000); 153 mod_timer(&ir->timer, jiffies + msecs_to_jiffies(ir->polling));
155 mod_timer(&ir->timer, timeout);
156} 154}
157 155
158static void cx88_ir_start(struct cx88_core *core, struct cx88_IR *ir) 156static void cx88_ir_start(struct cx88_core *core, struct cx88_IR *ir)
159{ 157{
160 if (ir->polling) { 158 if (ir->polling) {
159 setup_timer(&ir->timer, ir_timer, (unsigned long)ir);
161 INIT_WORK(&ir->work, cx88_ir_work); 160 INIT_WORK(&ir->work, cx88_ir_work);
162 init_timer(&ir->timer);
163 ir->timer.function = ir_timer;
164 ir->timer.data = (unsigned long)ir;
165 schedule_work(&ir->work); 161 schedule_work(&ir->work);
166 } 162 }
167 if (ir->sampling) { 163 if (ir->sampling) {