int tm6000_ir_fini(struct tm6000_core *dev) { struct tm6000_IR *ir = dev->ir; /* skip detach on non attached board */ if (!ir) return 0; ir_input_unregister(ir->input->input_dev); if (ir->int_urb) { usb_kill_urb(ir->int_urb); kfree(ir->int_urb->transfer_buffer); usb_free_urb(ir->int_urb); ir->int_urb = NULL; kfree(ir->urb_data); ir->urb_data = NULL; } kfree(ir->input); ir->input = NULL; kfree(ir); dev->ir = NULL; return 0; }
void sms_ir_exit(struct smscore_device_t *coredev) { if (coredev->ir.input_dev) ir_input_unregister(coredev->ir.input_dev); sms_log(""); }
void cx23885_input_fini(struct cx23885_dev *dev) { /* Always stop the IR hardware from generating interrupts */ cx23885_input_ir_stop(dev); if (dev->ir_input == NULL) return; ir_input_unregister(dev->ir_input->dev); kfree(dev->ir_input); dev->ir_input = NULL; }
void cx23885_input_fini(struct cx23885_dev *dev) { /* Always stop the IR hardware from generating interrupts */ cx23885_input_ir_stop(dev); if (dev->kernel_ir == NULL) return; ir_input_unregister(dev->kernel_ir->inp_dev); kfree(dev->kernel_ir->phys); kfree(dev->kernel_ir->name); kfree(dev->kernel_ir); dev->kernel_ir = NULL; }
int cx231xx_ir_fini(struct cx231xx *dev) { struct cx231xx_IR *ir = dev->ir; /* skip detach on non attached boards */ if (!ir) return 0; cx231xx_ir_stop(ir); ir_input_unregister(ir->input); kfree(ir); /* done */ dev->ir = NULL; return 0; }