Lines Matching defs:av7110
32 #include "av7110.h"
63 static struct av7110 *av_list[AV_CNT];
221 int av7110_check_ir_config(struct av7110 *av7110, int force)
228 if (av7110 == av_list[i])
231 if (i < av_cnt && av7110) {
232 if ((av7110->ir.protocol & 1) != ir_protocol[i] ||
233 av7110->ir.inversion != ir_inversion[i])
240 av7110->ir.protocol = IR_RCMM;
241 av7110->ir.ir_config = 0x0001;
242 } else if (FW_VERSION(av7110->arm_app) >= 0x2620) {
243 av7110->ir.protocol = IR_RC5_EXT;
244 av7110->ir.ir_config = 0x0002;
246 av7110->ir.protocol = IR_RC5;
247 av7110->ir.ir_config = 0x0000;
252 av7110->ir.ir_config |= 0x8000;
254 av7110->ir.inversion = ir_inversion[i];
256 ret = av7110_fw_cmd(av7110, COMTYPE_PIDFILTER, SetIR, 1,
257 av7110->ir.ir_config);
262 if (av7110->ir.device_mask != ir_device_mask[i])
263 av7110->ir.device_mask = ir_device_mask[i];
318 static void ir_handler(struct av7110 *av7110, u32 ircom)
321 av7110->ir.ir_command = ircom;
322 tasklet_schedule(&av7110->ir.ir_tasklet);
326 int __devinit av7110_ir_init(struct av7110 *av7110)
335 av_list[av_cnt++] = av7110;
336 av7110_check_ir_config(av7110, true);
338 init_timer(&av7110->ir.keyup_timer);
339 av7110->ir.keyup_timer.function = av7110_emit_keyup;
340 av7110->ir.keyup_timer.data = (unsigned long) &av7110->ir;
346 av7110->ir.input_dev = input_dev;
347 snprintf(av7110->ir.input_phys, sizeof(av7110->ir.input_phys),
348 "pci-%s/ir0", pci_name(av7110->dev->pci));
352 input_dev->phys = av7110->ir.input_phys;
355 if (av7110->dev->pci->subsystem_vendor) {
356 input_dev->id.vendor = av7110->dev->pci->subsystem_vendor;
357 input_dev->id.product = av7110->dev->pci->subsystem_device;
359 input_dev->id.vendor = av7110->dev->pci->vendor;
360 input_dev->id.product = av7110->dev->pci->device;
362 input_dev->dev.parent = &av7110->dev->pci->dev;
364 memcpy(av7110->ir.key_map, default_key_map, sizeof av7110->ir.key_map);
365 input_register_keys(&av7110->ir);
372 input_dev->timer.data = (unsigned long) &av7110->ir;
380 tasklet_init(&av7110->ir.ir_tasklet, av7110_emit_key, (unsigned long) &av7110->ir);
381 av7110->ir.ir_handler = ir_handler;
387 void __devexit av7110_ir_exit(struct av7110 *av7110)
394 del_timer_sync(&av7110->ir.keyup_timer);
395 av7110->ir.ir_handler = NULL;
396 tasklet_kill(&av7110->ir.ir_tasklet);
399 if (av_list[i] == av7110) {
408 input_unregister_device(av7110->ir.input_dev);