Lines Matching defs:file_priv

94 int drm_getmagic(struct drm_device *dev, void *data, struct drm_file *file_priv)
100 if (!file_priv->magic) {
101 ret = idr_alloc(&file_priv->master->magic_map, file_priv,
104 file_priv->magic = ret;
106 auth->magic = file_priv->magic;
115 struct drm_file *file_priv)
123 file = idr_find(&file_priv->master->magic_map, auth->magic);
126 idr_replace(&file_priv->master->magic_map, NULL, auth->magic);
236 drm_master_check_perm(struct drm_device *dev, struct drm_file *file_priv)
238 if (file_priv->was_master &&
239 rcu_access_pointer(file_priv->pid) == task_tgid(current))
249 struct drm_file *file_priv)
255 ret = drm_master_check_perm(dev, file_priv);
259 if (drm_is_current_master_locked(file_priv))
267 if (!file_priv->master) {
272 if (!file_priv->is_master) {
273 ret = drm_new_set_master(dev, file_priv);
277 if (file_priv->master->lessor != NULL) {
280 file_priv->master->lessee_id);
285 drm_set_master(dev, file_priv, false);
300 struct drm_file *file_priv)
306 ret = drm_master_check_perm(dev, file_priv);
310 if (!drm_is_current_master_locked(file_priv)) {
320 if (file_priv->master->lessor != NULL) {
323 file_priv->master->lessee_id);
328 drm_drop_master(dev, file_priv);
334 int drm_master_open(struct drm_file *file_priv)
336 struct drm_device *dev = file_priv->minor->dev;
344 ret = drm_new_set_master(dev, file_priv);
346 spin_lock(&file_priv->master_lookup_lock);
347 file_priv->master = drm_master_get(dev->master);
348 spin_unlock(&file_priv->master_lookup_lock);
355 void drm_master_release(struct drm_file *file_priv)
357 struct drm_device *dev = file_priv->minor->dev;
361 master = file_priv->master;
362 if (file_priv->magic)
363 idr_remove(&file_priv->master->magic_map, file_priv->magic);
365 if (!drm_is_current_master_locked(file_priv))
370 if (dev->master == file_priv->master)
371 drm_drop_master(dev, file_priv);
373 if (drm_core_check_feature(dev, DRIVER_MODESET) && file_priv->is_master) {
381 if (file_priv->master)
382 drm_master_put(&file_priv->master);
400 * drm_file_get_master - reference &drm_file.master of @file_priv
401 * @file_priv: DRM file private
403 * Increments the reference count of @file_priv's &drm_file.master and returns
404 * the &drm_file.master. If @file_priv has no &drm_file.master, returns NULL.
409 struct drm_master *drm_file_get_master(struct drm_file *file_priv)
413 spin_lock(&file_priv->master_lookup_lock);
414 if (!file_priv->master)
416 master = drm_master_get(file_priv->master);
419 spin_unlock(&file_priv->master_lookup_lock);