static int node_remove(struct device *dev)
{
	struct firedtv *fdtv = dev_get_drvdata(dev);

	fdtv_dvb_unregister(fdtv);

	spin_lock_irq(&node_list_lock);
	list_del(&fdtv->list);
	spin_unlock_irq(&node_list_lock);

	fdtv_unregister_rc(fdtv);
	kfree(fdtv);

	return 0;
}
static int node_remove(struct device *dev)
{
	struct firedtv *fdtv = dev->driver_data;

	fdtv_dvb_unregister(fdtv);

	spin_lock_irq(&node_list_lock);
	list_del(&fdtv->list);
	spin_unlock_irq(&node_list_lock);

	cancel_work_sync(&fdtv->remote_ctrl_work);
	fdtv_unregister_rc(fdtv);

	kfree(fdtv);
	return 0;
}