const char *rx_type, *tx_type;
        int err, minor;
 
-       minor = ida_simple_get(&lirc_ida, 0, RC_DEV_MAX, GFP_KERNEL);
+       minor = ida_alloc_max(&lirc_ida, RC_DEV_MAX - 1, GFP_KERNEL);
        if (minor < 0)
                return minor;
 
        return 0;
 
 out_ida:
-       ida_simple_remove(&lirc_ida, minor);
+       ida_free(&lirc_ida, minor);
        return err;
 }
 
        spin_unlock_irqrestore(&dev->lirc_fh_lock, flags);
 
        cdev_device_del(&dev->lirc_cdev, &dev->lirc_dev);
-       ida_simple_remove(&lirc_ida, MINOR(dev->lirc_dev.devt));
+       ida_free(&lirc_ida, MINOR(dev->lirc_dev.devt));
 }
 
 int __init lirc_dev_init(void)
 
        if (!dev)
                return -EINVAL;
 
-       minor = ida_simple_get(&rc_ida, 0, RC_DEV_MAX, GFP_KERNEL);
+       minor = ida_alloc_max(&rc_ida, RC_DEV_MAX - 1, GFP_KERNEL);
        if (minor < 0)
                return minor;
 
 out_raw:
        ir_raw_event_free(dev);
 out_minor:
-       ida_simple_remove(&rc_ida, minor);
+       ida_free(&rc_ida, minor);
        return rc;
 }
 EXPORT_SYMBOL_GPL(rc_register_device);
 
        device_del(&dev->dev);
 
-       ida_simple_remove(&rc_ida, dev->minor);
+       ida_free(&rc_ida, dev->minor);
 
        if (!dev->managed_alloc)
                rc_free_device(dev);