diff options
Diffstat (limited to 'drivers/gpu/drm/drm_stub.c')
-rw-r--r-- | drivers/gpu/drm/drm_stub.c | 27 |
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 | } |
118 | EXPORT_SYMBOL(drm_ut_debug_printk); | 118 | EXPORT_SYMBOL(drm_ut_debug_printk); |
119 | 119 | ||
120 | static 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 | |||
140 | struct drm_master *drm_master_create(struct drm_minor *minor) | 120 | struct 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 | ||