aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_stub.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/drm_stub.c')
-rw-r--r--drivers/gpu/drm/drm_stub.c27
1 files changed, 6 insertions, 21 deletions
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
index 5268ffc5d94e..83ef4a63358c 100644
--- a/drivers/gpu/drm/drm_stub.c
+++ b/drivers/gpu/drm/drm_stub.c
@@ -117,26 +117,6 @@ void drm_ut_debug_printk(unsigned int request_level,
117} 117}
118EXPORT_SYMBOL(drm_ut_debug_printk); 118EXPORT_SYMBOL(drm_ut_debug_printk);
119 119
120static int drm_minor_get_id(struct drm_device *dev, int type)
121{
122 int ret;
123 int base = 0, limit = 63;
124
125 if (type == DRM_MINOR_CONTROL) {
126 base += 64;
127 limit = base + 63;
128 } else if (type == DRM_MINOR_RENDER) {
129 base += 128;
130 limit = base + 63;
131 }
132
133 mutex_lock(&dev->struct_mutex);
134 ret = idr_alloc(&drm_minors_idr, NULL, base, limit, GFP_KERNEL);
135 mutex_unlock(&dev->struct_mutex);
136
137 return ret == -ENOSPC ? -EINVAL : ret;
138}
139
140struct drm_master *drm_master_create(struct drm_minor *minor) 120struct drm_master *drm_master_create(struct drm_minor *minor)
141{ 121{
142 struct drm_master *master; 122 struct drm_master *master;
@@ -314,7 +294,12 @@ static int drm_minor_register(struct drm_device *dev, unsigned int type)
314 if (!new_minor) 294 if (!new_minor)
315 return 0; 295 return 0;
316 296
317 minor_id = drm_minor_get_id(dev, type); 297 minor_id = idr_alloc(&drm_minors_idr,
298 NULL,
299 64 * type,
300 64 * (type + 1),
301 GFP_KERNEL);
302
318 if (minor_id < 0) 303 if (minor_id < 0)
319 return minor_id; 304 return minor_id;
320 305