Lines Matching defs:dev

61  * \param dev DRM device.
68 void drm_ctxbitmap_free(struct drm_device * dev, int ctx_handle)
70 mutex_lock(&dev->struct_mutex);
71 (void) idr_remove(&dev->ctx_idr, ctx_handle);
72 mutex_unlock(&dev->struct_mutex);
78 * \param dev DRM device.
84 static int drm_ctxbitmap_next(struct drm_device * dev)
90 if (idr_pre_get(&dev->ctx_idr, GFP_KERNEL) == 0) {
94 mutex_lock(&dev->struct_mutex);
95 ret = idr_get_new_above(&dev->ctx_idr, NULL,
97 mutex_unlock(&dev->struct_mutex);
109 * \param dev DRM device.
113 int drm_ctxbitmap_init(struct drm_device * dev)
115 idr_init(&dev->ctx_idr);
122 * \param dev DRM device.
127 void drm_ctxbitmap_cleanup(struct drm_device * dev)
129 mutex_lock(&dev->struct_mutex);
130 idr_remove_all(&dev->ctx_idr);
131 mutex_unlock(&dev->struct_mutex);
159 mutex_lock(&dev->struct_mutex);
161 map = idr_find(&dev->ctx_idr, request->ctx_id);
163 mutex_unlock(&dev->struct_mutex);
168 list_for_each_entry(_entry, struct drm_map_list, &dev->maplist, head) {
176 mutex_unlock(&dev->struct_mutex);
203 mutex_lock(&dev->struct_mutex);
204 list_for_each_entry(r_list, struct drm_map_list, &dev->maplist, head) {
210 mutex_unlock(&dev->struct_mutex);
218 if (IS_ERR(idr_replace(&dev->ctx_idr, map, request->ctx_id)))
221 mutex_unlock(&dev->struct_mutex);
235 * \param dev DRM device.
242 static int drm_context_switch(struct drm_device * dev, int old, int new)
244 if (test_and_set_bit(0, &dev->context_flag)) {
251 if (new == dev->last_context) {
252 clear_bit(0, &dev->context_flag);
262 * \param dev DRM device.
270 static int drm_context_switch_complete(struct drm_device *dev,
273 dev->last_context = new; /* PRE/POST: This is the _only_ writer. */
274 dev->last_switch = jiffies;
284 clear_bit(0, &dev->context_flag);
335 ctx->handle = drm_ctxbitmap_next(dev);
338 ctx->handle = drm_ctxbitmap_next(dev);
358 mutex_lock(&dev->ctxlist_mutex);
359 list_add(&ctx_entry->head, &dev->ctxlist, (caddr_t)ctx_entry);
360 ++dev->ctx_count;
361 mutex_unlock(&dev->ctxlist_mutex);
410 return drm_context_switch(dev, dev->last_context, ctx->handle);
430 (void) drm_context_switch_complete(dev, file, ctx->handle);
453 if (dev->driver->context_dtor)
454 dev->driver->context_dtor(dev, ctx->handle);
455 drm_ctxbitmap_free(dev, ctx->handle);
458 mutex_lock(&dev->ctxlist_mutex);
459 if (!list_empty(&dev->ctxlist)) {
462 list_for_each_entry_safe(pos, n, struct drm_ctx_list, &dev->ctxlist, head) {
466 --dev->ctx_count;
470 mutex_unlock(&dev->ctxlist_mutex);