Lines Matching defs:leases
21 * DRM leases provide information about whether a DRM master may control a DRM
37 * create sub-leases, hence the lessor is the same as the owner.
40 * other &struct drm_master. Each lessee only leases resources from a single
42 * it is leasing in &drm_master.leases.
50 * of objects it leases (for lessees) or all objects (for owners).
59 * leases form a tree of &struct drm_master. As lessees are currently not
60 * allowed to create sub-leases, the tree depth is limited to 1. All of
92 return idr_find(&master->leases, id) != NULL;
207 static struct drm_master *drm_lease_create(struct drm_master *lessor, struct idr *leases)
226 idr_for_each_entry(leases, entry, object) {
250 /* Move the leases over */
251 lessee->leases = *leases;
309 * Walk the tree starting at 'top' emptying all leases. Because
313 drm_dbg_lease(master->dev, "revoke leases for %p %d\n",
317 idr_for_each_entry(&master->leases, entry, object)
318 idr_remove(&master->leases, object);
380 struct idr *leases,
434 ret = idr_alloc(leases, &drm_lease_idr_object , object_id, object_id + 1, GFP_KERNEL);
436 drm_dbg_lease(dev, "Object %d cannot be inserted into leases (%d)\n",
443 ret = idr_alloc(leases, &drm_lease_idr_object, crtc->primary->base.id, crtc->primary->base.id + 1, GFP_KERNEL);
445 drm_dbg_lease(dev, "Object primary plane %d cannot be inserted into leases (%d)\n",
450 ret = idr_alloc(leases, &drm_lease_idr_object, crtc->cursor->base.id, crtc->cursor->base.id + 1, GFP_KERNEL);
452 drm_dbg_lease(dev, "Object cursor plane %d cannot be inserted into leases (%d)\n",
482 struct idr leases;
501 /* Do not allow sub-leases */
511 idr_init(&leases);
517 idr_destroy(&leases);
522 ret = fill_object_idr(dev, lessor_priv, &leases,
527 idr_destroy(&leases);
535 idr_destroy(&leases);
541 /* lessee will take the ownership of leases */
542 lessee = drm_lease_create(lessor, &leases);
546 idr_destroy(&leases);
613 /* Only list un-revoked leases */
614 if (!idr_is_empty(&lessee->leases)) {
626 drm_dbg_lease(dev, "Lessor leases to %d\n", count);
667 object_idr = &lessee->leases;