Lines Matching refs:ir
46 printk(KERN_DEBUG "%s/ir: " fmt, ir->name , ## arg); \
76 int (*get_key_i2c)(struct i2c_client *ir, enum rc_type *protocol, u32 *scancode);
187 static int default_polling_getkey(struct em28xx_IR *ir, in default_polling_getkey() argument
190 struct em28xx *dev = ir->dev; in default_polling_getkey()
209 switch (ir->rc_type) { in default_polling_getkey()
229 static int em2874_polling_getkey(struct em28xx_IR *ir, in em2874_polling_getkey() argument
232 struct em28xx *dev = ir->dev; in em2874_polling_getkey()
254 switch (ir->rc_type) { in em2874_polling_getkey()
294 static int em28xx_i2c_ir_handle_key(struct em28xx_IR *ir) in em28xx_i2c_ir_handle_key() argument
300 rc = ir->get_key_i2c(ir->i2c_client, &protocol, &scancode); in em28xx_i2c_ir_handle_key()
309 rc_keydown(ir->rc, protocol, scancode, 0); in em28xx_i2c_ir_handle_key()
314 static void em28xx_ir_handle_key(struct em28xx_IR *ir) in em28xx_ir_handle_key() argument
320 result = ir->get_key(ir, &poll_result); in em28xx_ir_handle_key()
326 if (unlikely(poll_result.read_count != ir->last_readcount)) { in em28xx_ir_handle_key()
330 if (ir->full_code) in em28xx_ir_handle_key()
331 rc_keydown(ir->rc, in em28xx_ir_handle_key()
336 rc_keydown(ir->rc, in em28xx_ir_handle_key()
341 if (ir->dev->chip_id == CHIP_ID_EM2874 || in em28xx_ir_handle_key()
342 ir->dev->chip_id == CHIP_ID_EM2884) in em28xx_ir_handle_key()
348 ir->last_readcount = 0; in em28xx_ir_handle_key()
350 ir->last_readcount = poll_result.read_count; in em28xx_ir_handle_key()
356 struct em28xx_IR *ir = container_of(work, struct em28xx_IR, work.work); in em28xx_ir_work() local
358 if (ir->i2c_client) /* external i2c device */ in em28xx_ir_work()
359 em28xx_i2c_ir_handle_key(ir); in em28xx_ir_work()
361 em28xx_ir_handle_key(ir); in em28xx_ir_work()
362 schedule_delayed_work(&ir->work, msecs_to_jiffies(ir->polling)); in em28xx_ir_work()
367 struct em28xx_IR *ir = rc->priv; in em28xx_ir_start() local
369 INIT_DELAYED_WORK(&ir->work, em28xx_ir_work); in em28xx_ir_start()
370 schedule_delayed_work(&ir->work, 0); in em28xx_ir_start()
377 struct em28xx_IR *ir = rc->priv; in em28xx_ir_stop() local
379 cancel_delayed_work_sync(&ir->work); in em28xx_ir_stop()
384 struct em28xx_IR *ir = rc_dev->priv; in em2860_ir_change_protocol() local
385 struct em28xx *dev = ir->dev; in em2860_ir_change_protocol()
390 ir->full_code = 1; in em2860_ir_change_protocol()
394 ir->full_code = 1; in em2860_ir_change_protocol()
399 *rc_type = ir->rc_type; in em2860_ir_change_protocol()
405 ir->rc_type = *rc_type; in em2860_ir_change_protocol()
412 struct em28xx_IR *ir = rc_dev->priv; in em2874_ir_change_protocol() local
413 struct em28xx *dev = ir->dev; in em2874_ir_change_protocol()
419 ir->full_code = 1; in em2874_ir_change_protocol()
424 ir->full_code = 1; in em2874_ir_change_protocol()
429 ir->full_code = 1; in em2874_ir_change_protocol()
434 *rc_type = ir->rc_type; in em2874_ir_change_protocol()
441 ir->rc_type = *rc_type; in em2874_ir_change_protocol()
447 struct em28xx_IR *ir = rc_dev->priv; in em28xx_ir_change_protocol() local
448 struct em28xx *dev = ir->dev; in em28xx_ir_change_protocol()
678 struct em28xx_IR *ir; in em28xx_ir_init() local
713 ir = kzalloc(sizeof(*ir), GFP_KERNEL); in em28xx_ir_init()
714 if (!ir) in em28xx_ir_init()
721 ir->dev = dev; in em28xx_ir_init()
722 dev->ir = ir; in em28xx_ir_init()
723 ir->rc = rc; in em28xx_ir_init()
725 rc->priv = ir; in em28xx_ir_init()
734 ir->get_key_i2c = em28xx_get_key_terratec; in em28xx_ir_init()
738 ir->get_key_i2c = em28xx_get_key_pinnacle_usb_grey; in em28xx_ir_init()
742 ir->get_key_i2c = em28xx_get_key_em_haup; in em28xx_ir_init()
747 ir->get_key_i2c = em28xx_get_key_winfast_usbii_deluxe; in em28xx_ir_init()
754 ir->i2c_client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); in em28xx_ir_init()
755 if (!ir->i2c_client) in em28xx_ir_init()
757 ir->i2c_client->adapter = &ir->dev->i2c_adap[dev->def_i2c_bus]; in em28xx_ir_init()
758 ir->i2c_client->addr = i2c_rc_dev_addr; in em28xx_ir_init()
759 ir->i2c_client->flags = 0; in em28xx_ir_init()
766 ir->get_key = default_polling_getkey; in em28xx_ir_init()
772 ir->get_key = em2874_polling_getkey; in em28xx_ir_init()
792 ir->polling = 100; /* ms */ in em28xx_ir_init()
795 snprintf(ir->name, sizeof(ir->name), "em28xx IR (%s)", dev->name); in em28xx_ir_init()
797 usb_make_path(dev->udev, ir->phys, sizeof(ir->phys)); in em28xx_ir_init()
798 strlcat(ir->phys, "/input0", sizeof(ir->phys)); in em28xx_ir_init()
800 rc->input_name = ir->name; in em28xx_ir_init()
801 rc->input_phys = ir->phys; in em28xx_ir_init()
819 kfree(ir->i2c_client); in em28xx_ir_init()
820 dev->ir = NULL; in em28xx_ir_init()
822 kfree(ir); in em28xx_ir_init()
828 struct em28xx_IR *ir = dev->ir; in em28xx_ir_fini() local
840 if (!ir) in em28xx_ir_fini()
843 rc_unregister_device(ir->rc); in em28xx_ir_fini()
845 kfree(ir->i2c_client); in em28xx_ir_fini()
848 kfree(ir); in em28xx_ir_fini()
849 dev->ir = NULL; in em28xx_ir_fini()
859 struct em28xx_IR *ir = dev->ir; in em28xx_ir_suspend() local
865 if (ir) in em28xx_ir_suspend()
866 cancel_delayed_work_sync(&ir->work); in em28xx_ir_suspend()
876 struct em28xx_IR *ir = dev->ir; in em28xx_ir_resume() local
884 if (ir) in em28xx_ir_resume()
885 schedule_delayed_work(&ir->work, msecs_to_jiffies(ir->polling)); in em28xx_ir_resume()