if (unlikely(!driver))
return ERR_PTR(ret);
- mutex_lock(&allocated_dsp_lock);
- ret = idr_pre_get(&allocated_dsp, GFP_KERNEL);
- mutex_unlock(&allocated_dsp_lock);
- if (!ret)
- return ERR_PTR(ret);
-
new_dev = kzalloc(sizeof(struct rk_display_device), GFP_KERNEL);
if (likely(new_dev) && unlikely(driver->probe(new_dev, devdata))) {
// Reserve the index for this display
mutex_lock(&allocated_dsp_lock);
- ret = idr_get_new(&allocated_dsp, new_dev, &new_dev->idx);
+ new_dev->idx = idr_alloc(&allocated_dsp, new_dev, 0, 0, GFP_KERNEL);
mutex_unlock(&allocated_dsp_lock);
- if (!ret) {
+ if (new_dev->idx >= 0) {
new_dev->dev = device_create(display_class, parent,
MKDEV(0, 0), new_dev,
"%s", new_dev->type);