Lines Matching refs:ir
92 struct infrared *ir = (struct infrared *) parm; in av7110_emit_keyup() local
94 if (!ir || !test_bit(ir->last_key, ir->input_dev->key)) in av7110_emit_keyup()
97 input_report_key(ir->input_dev, ir->last_key, 0); in av7110_emit_keyup()
98 input_sync(ir->input_dev); in av7110_emit_keyup()
105 struct infrared *ir = (struct infrared *) parm; in av7110_emit_key() local
106 u32 ircom = ir->ir_command; in av7110_emit_key()
113 switch (ir->protocol) { in av7110_emit_key()
136 printk("%s invalid protocol %x\n", __func__, ir->protocol); in av7110_emit_key()
140 input_event(ir->input_dev, EV_MSC, MSC_RAW, (addr << 16) | data); in av7110_emit_key()
141 input_event(ir->input_dev, EV_MSC, MSC_SCAN, data); in av7110_emit_key()
143 keycode = ir->key_map[data]; in av7110_emit_key()
149 if (!(ir->device_mask & (1 << addr))) in av7110_emit_key()
158 if (timer_pending(&ir->keyup_timer)) { in av7110_emit_key()
159 del_timer(&ir->keyup_timer); in av7110_emit_key()
160 if (ir->last_key != keycode || toggle != ir->last_toggle) { in av7110_emit_key()
161 ir->delay_timer_finished = 0; in av7110_emit_key()
162 input_event(ir->input_dev, EV_KEY, ir->last_key, 0); in av7110_emit_key()
163 input_event(ir->input_dev, EV_KEY, keycode, 1); in av7110_emit_key()
164 input_sync(ir->input_dev); in av7110_emit_key()
165 } else if (ir->delay_timer_finished) { in av7110_emit_key()
166 input_event(ir->input_dev, EV_KEY, keycode, 2); in av7110_emit_key()
167 input_sync(ir->input_dev); in av7110_emit_key()
170 ir->delay_timer_finished = 0; in av7110_emit_key()
171 input_event(ir->input_dev, EV_KEY, keycode, 1); in av7110_emit_key()
172 input_sync(ir->input_dev); in av7110_emit_key()
175 ir->last_key = keycode; in av7110_emit_key()
176 ir->last_toggle = toggle; in av7110_emit_key()
178 ir->keyup_timer.expires = jiffies + UP_TIMEOUT; in av7110_emit_key()
179 add_timer(&ir->keyup_timer); in av7110_emit_key()
185 static void input_register_keys(struct infrared *ir) in input_register_keys() argument
189 set_bit(EV_KEY, ir->input_dev->evbit); in input_register_keys()
190 set_bit(EV_REP, ir->input_dev->evbit); in input_register_keys()
191 set_bit(EV_MSC, ir->input_dev->evbit); in input_register_keys()
193 set_bit(MSC_RAW, ir->input_dev->mscbit); in input_register_keys()
194 set_bit(MSC_SCAN, ir->input_dev->mscbit); in input_register_keys()
196 memset(ir->input_dev->keybit, 0, sizeof(ir->input_dev->keybit)); in input_register_keys()
198 for (i = 0; i < ARRAY_SIZE(ir->key_map); i++) { in input_register_keys()
199 if (ir->key_map[i] > KEY_MAX) in input_register_keys()
200 ir->key_map[i] = 0; in input_register_keys()
201 else if (ir->key_map[i] > KEY_RESERVED) in input_register_keys()
202 set_bit(ir->key_map[i], ir->input_dev->keybit); in input_register_keys()
205 ir->input_dev->keycode = ir->key_map; in input_register_keys()
206 ir->input_dev->keycodesize = sizeof(ir->key_map[0]); in input_register_keys()
207 ir->input_dev->keycodemax = ARRAY_SIZE(ir->key_map); in input_register_keys()
214 struct infrared *ir = (struct infrared *) parm; in input_repeat_key() local
216 ir->delay_timer_finished = 1; in input_repeat_key()
232 if ((av7110->ir.protocol & 1) != ir_protocol[i] || in av7110_check_ir_config()
233 av7110->ir.inversion != ir_inversion[i]) in av7110_check_ir_config()
240 av7110->ir.protocol = IR_RCMM; in av7110_check_ir_config()
241 av7110->ir.ir_config = 0x0001; in av7110_check_ir_config()
243 av7110->ir.protocol = IR_RC5_EXT; in av7110_check_ir_config()
244 av7110->ir.ir_config = 0x0002; in av7110_check_ir_config()
246 av7110->ir.protocol = IR_RC5; in av7110_check_ir_config()
247 av7110->ir.ir_config = 0x0000; in av7110_check_ir_config()
252 av7110->ir.ir_config |= 0x8000; in av7110_check_ir_config()
254 av7110->ir.inversion = ir_inversion[i]; in av7110_check_ir_config()
257 av7110->ir.ir_config); in av7110_check_ir_config()
262 if (av7110->ir.device_mask != ir_device_mask[i]) in av7110_check_ir_config()
263 av7110->ir.device_mask = ir_device_mask[i]; in av7110_check_ir_config()
276 int size = sizeof ir_config + sizeof av_list[0]->ir.key_map; in av7110_ir_proc_write()
295 memcpy(av_list[i]->ir.key_map, page + sizeof ir_config, in av7110_ir_proc_write()
296 sizeof(av_list[i]->ir.key_map)); in av7110_ir_proc_write()
306 input_register_keys(&av_list[i]->ir); in av7110_ir_proc_write()
322 av7110->ir.ir_command = ircom; in ir_handler()
323 tasklet_schedule(&av7110->ir.ir_tasklet); in ir_handler()
339 init_timer(&av7110->ir.keyup_timer); in av7110_ir_init()
340 av7110->ir.keyup_timer.function = av7110_emit_keyup; in av7110_ir_init()
341 av7110->ir.keyup_timer.data = (unsigned long) &av7110->ir; in av7110_ir_init()
347 av7110->ir.input_dev = input_dev; in av7110_ir_init()
348 snprintf(av7110->ir.input_phys, sizeof(av7110->ir.input_phys), in av7110_ir_init()
353 input_dev->phys = av7110->ir.input_phys; in av7110_ir_init()
365 memcpy(av7110->ir.key_map, default_key_map, sizeof av7110->ir.key_map); in av7110_ir_init()
366 input_register_keys(&av7110->ir); in av7110_ir_init()
373 input_dev->timer.data = (unsigned long) &av7110->ir; in av7110_ir_init()
381 tasklet_init(&av7110->ir.ir_tasklet, av7110_emit_key, (unsigned long) &av7110->ir); in av7110_ir_init()
382 av7110->ir.ir_handler = ir_handler; in av7110_ir_init()
395 del_timer_sync(&av7110->ir.keyup_timer); in av7110_ir_exit()
396 av7110->ir.ir_handler = NULL; in av7110_ir_exit()
397 tasklet_kill(&av7110->ir.ir_tasklet); in av7110_ir_exit()
409 input_unregister_device(av7110->ir.input_dev); in av7110_ir_exit()