/* uio_unregister_device - unregister a industrial IO device @info: UIO device capabilities  */
void uio_unregister_device(struct uio_info *info)
/* uio_unregister_device - unregister a industrial IO device @info: UIO device capabilities  */
void uio_unregister_device(struct uio_info *info)
{
	struct uio_device *idev;
	if (!info || !info->uio_dev)
		return;
	idev = info->uio_dev;
	uio_free_minor(idev);
	if (info->irq >= 0)
		free_irq(info->irq, idev);
	uio_dev_del_attributes(idev);
	dev_set_drvdata(idev->dev, NULL);
	device_destroy(uio_class->class, MKDEV(uio_major, idev->minor));
	kfree(idev);
	uio_class_destroy();
	return;
}