• Home
  • Raw
  • Download

Lines Matching refs:master

32 struct drm_master *drm_lease_owner(struct drm_master *master)  in drm_lease_owner()  argument
34 while (master->lessor != NULL) in drm_lease_owner()
35 master = master->lessor; in drm_lease_owner()
36 return master; in drm_lease_owner()
50 _drm_find_lessee(struct drm_master *master, int lessee_id) in _drm_find_lessee() argument
52 lockdep_assert_held(&master->dev->mode_config.idr_mutex); in _drm_find_lessee()
53 return idr_find(&drm_lease_owner(master)->lessee_idr, lessee_id); in _drm_find_lessee()
67 static int _drm_lease_held_master(struct drm_master *master, int id) in _drm_lease_held_master() argument
69 lockdep_assert_held(&master->dev->mode_config.idr_mutex); in _drm_lease_held_master()
70 if (master->lessor) in _drm_lease_held_master()
71 return idr_find(&master->leases, id) != NULL; in _drm_lease_held_master()
86 static bool _drm_has_leased(struct drm_master *master, int id) in _drm_has_leased() argument
90 lockdep_assert_held(&master->dev->mode_config.idr_mutex); in _drm_has_leased()
91 drm_for_each_lessee(lessee, master) in _drm_has_leased()
111 struct drm_master *master; in _drm_lease_held() local
116 master = drm_file_get_master(file_priv); in _drm_lease_held()
117 if (!master) in _drm_lease_held()
119 ret = _drm_lease_held_master(master, id); in _drm_lease_held()
120 drm_master_put(&master); in _drm_lease_held()
138 struct drm_master *master; in drm_lease_held() local
144 master = drm_file_get_master(file_priv); in drm_lease_held()
145 if (!master) in drm_lease_held()
147 if (!master->lessor) { in drm_lease_held()
151 mutex_lock(&master->dev->mode_config.idr_mutex); in drm_lease_held()
152 ret = _drm_lease_held_master(master, id); in drm_lease_held()
153 mutex_unlock(&master->dev->mode_config.idr_mutex); in drm_lease_held()
156 drm_master_put(&master); in drm_lease_held()
170 struct drm_master *master; in drm_lease_filter_crtcs() local
179 master = drm_file_get_master(file_priv); in drm_lease_filter_crtcs()
180 if (!master) in drm_lease_filter_crtcs()
182 if (!master->lessor) { in drm_lease_filter_crtcs()
186 dev = master->dev; in drm_lease_filter_crtcs()
189 mutex_lock(&master->dev->mode_config.idr_mutex); in drm_lease_filter_crtcs()
191 if (_drm_lease_held_master(master, crtc->base.id)) { in drm_lease_filter_crtcs()
203 mutex_unlock(&master->dev->mode_config.idr_mutex); in drm_lease_filter_crtcs()
206 drm_master_put(&master); in drm_lease_filter_crtcs()
292 void drm_lease_destroy(struct drm_master *master) in drm_lease_destroy() argument
294 struct drm_device *dev = master->dev; in drm_lease_destroy()
298 DRM_DEBUG_LEASE("drm_lease_destroy %d\n", master->lessee_id); in drm_lease_destroy()
303 WARN_ON(!list_empty(&master->lessees)); in drm_lease_destroy()
306 if (master->lessee_id != 0) { in drm_lease_destroy()
307 DRM_DEBUG_LEASE("remove master %d from device list of lessees\n", master->lessee_id); in drm_lease_destroy()
308 idr_remove(&(drm_lease_owner(master)->lessee_idr), master->lessee_id); in drm_lease_destroy()
312 list_del(&master->lessee_list); in drm_lease_destroy()
316 if (master->lessor) { in drm_lease_destroy()
319 drm_master_put(&master->lessor); in drm_lease_destroy()
322 DRM_DEBUG_LEASE("drm_lease_destroy done %d\n", master->lessee_id); in drm_lease_destroy()
333 struct drm_master *master = top; in _drm_lease_revoke() local
342 DRM_DEBUG_LEASE("revoke leases for %p %d\n", master, master->lessee_id); in _drm_lease_revoke()
345 idr_for_each_entry(&master->leases, entry, object) in _drm_lease_revoke()
346 idr_remove(&master->leases, object); in _drm_lease_revoke()
351 if (!list_empty(&master->lessees)) { in _drm_lease_revoke()
352 master = list_first_entry(&master->lessees, struct drm_master, lessee_list); in _drm_lease_revoke()
355 …while (master != top && master == list_last_entry(&master->lessor->lessees, struct drm_master, les… in _drm_lease_revoke()
356 master = master->lessor; in _drm_lease_revoke()
358 if (master == top) in _drm_lease_revoke()
362 master = list_next_entry(master, lessee_list); in _drm_lease_revoke()
600 drm_master_put(&lessee_priv->master); in drm_mode_create_lease_ioctl()
601 lessee_priv->master = lessee; in drm_mode_create_lease_ioctl()