示例#1
0
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;
}
示例#2
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;
}
示例#4
0
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;
}