Lines Matching defs:file_priv
64 int drm_getmagic(struct drm_device *dev, void *data, struct drm_file *file_priv)
70 if (!file_priv->magic) {
71 ret = idr_alloc(&file_priv->master->magic_map, file_priv,
74 file_priv->magic = ret;
76 auth->magic = file_priv->magic;
85 struct drm_file *file_priv)
93 file = idr_find(&file_priv->master->magic_map, auth->magic);
96 idr_replace(&file_priv->master->magic_map, NULL, auth->magic);
206 drm_master_check_perm(struct drm_device *dev, struct drm_file *file_priv)
208 if (file_priv->pid == task_pid(current) && file_priv->was_master)
218 struct drm_file *file_priv)
224 ret = drm_master_check_perm(dev, file_priv);
228 if (drm_is_current_master(file_priv))
236 if (!file_priv->master) {
241 if (!file_priv->is_master) {
242 ret = drm_new_set_master(dev, file_priv);
246 if (file_priv->master->lessor != NULL) {
247 DRM_DEBUG_LEASE("Attempt to set lessee %d as master\n", file_priv->master->lessee_id);
252 drm_set_master(dev, file_priv, false);
267 struct drm_file *file_priv)
273 ret = drm_master_check_perm(dev, file_priv);
277 if (!drm_is_current_master(file_priv)) {
287 if (file_priv->master->lessor != NULL) {
288 DRM_DEBUG_LEASE("Attempt to drop lessee %d as master\n", file_priv->master->lessee_id);
293 drm_drop_master(dev, file_priv);
299 int drm_master_open(struct drm_file *file_priv)
301 struct drm_device *dev = file_priv->minor->dev;
308 ret = drm_new_set_master(dev, file_priv);
310 spin_lock(&file_priv->master_lookup_lock);
311 file_priv->master = drm_master_get(dev->master);
312 spin_unlock(&file_priv->master_lookup_lock);
319 void drm_master_release(struct drm_file *file_priv)
321 struct drm_device *dev = file_priv->minor->dev;
325 master = file_priv->master;
326 if (file_priv->magic)
327 idr_remove(&file_priv->master->magic_map, file_priv->magic);
329 if (!drm_is_current_master(file_priv))
334 if (dev->master == file_priv->master)
335 drm_drop_master(dev, file_priv);
337 if (drm_core_check_feature(dev, DRIVER_MODESET) && file_priv->is_master) {
345 if (file_priv->master)
346 drm_master_put(&file_priv->master);
380 * drm_file_get_master - reference &drm_file.master of @file_priv
381 * @file_priv: DRM file private
383 * Increments the reference count of @file_priv's &drm_file.master and returns
384 * the &drm_file.master. If @file_priv has no &drm_file.master, returns NULL.
389 struct drm_master *drm_file_get_master(struct drm_file *file_priv)
393 spin_lock(&file_priv->master_lookup_lock);
394 if (!file_priv->master)
396 master = drm_master_get(file_priv->master);
399 spin_unlock(&file_priv->master_lookup_lock);