Lines Matching refs:av7110

63 static struct av7110 *av_list[AV_CNT];
221 int av7110_check_ir_config(struct av7110 *av7110, int force) in av7110_check_ir_config() argument
228 if (av7110 == av_list[i]) in av7110_check_ir_config()
231 if (i < av_cnt && av7110) { in av7110_check_ir_config()
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()
242 } else if (FW_VERSION(av7110->arm_app) >= 0x2620) { 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()
256 ret = av7110_fw_cmd(av7110, COMTYPE_PIDFILTER, SetIR, 1, 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()
319 static void ir_handler(struct av7110 *av7110, u32 ircom) in ir_handler() argument
322 av7110->ir.ir_command = ircom; in ir_handler()
323 tasklet_schedule(&av7110->ir.ir_tasklet); in ir_handler()
327 int av7110_ir_init(struct av7110 *av7110) in av7110_ir_init() argument
336 av_list[av_cnt++] = av7110; in av7110_ir_init()
337 av7110_check_ir_config(av7110, true); in av7110_ir_init()
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()
349 "pci-%s/ir0", pci_name(av7110->dev->pci)); in av7110_ir_init()
353 input_dev->phys = av7110->ir.input_phys; in av7110_ir_init()
356 if (av7110->dev->pci->subsystem_vendor) { in av7110_ir_init()
357 input_dev->id.vendor = av7110->dev->pci->subsystem_vendor; in av7110_ir_init()
358 input_dev->id.product = av7110->dev->pci->subsystem_device; in av7110_ir_init()
360 input_dev->id.vendor = av7110->dev->pci->vendor; in av7110_ir_init()
361 input_dev->id.product = av7110->dev->pci->device; in av7110_ir_init()
363 input_dev->dev.parent = &av7110->dev->pci->dev; 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()
388 void av7110_ir_exit(struct av7110 *av7110) in av7110_ir_exit() argument
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()
400 if (av_list[i] == av7110) { in av7110_ir_exit()
409 input_unregister_device(av7110->ir.input_dev); in av7110_ir_exit()