Lines Matching refs:lessor

33  *   identified as the &struct drm_master for which &drm_master.lessor is NULL.
35 * - A 'lessor' is a &struct drm_master which is leasing objects to one or more
37 * create sub-leases, hence the lessor is the same as the owner.
41 * lessor recorded in &drm_master.lessor, and holds the set of objects that
44 * - A 'lease' is a contract between the lessor and lessee that identifies
46 * that are leased must be owned by or leased to the lessor, and lessors are
58 * Since each lessee may lease objects from a single lessor, display resource
64 * &drm_master.lessor is NULL). The full list of lessees that are leasing
69 #define drm_for_each_lessee(lessee, lessor) \
70 list_for_each_entry((lessee), &(lessor)->lessees, lessee_list)
76 while (master->lessor != NULL)
77 master = master->lessor;
91 if (master->lessor)
137 if (!master->lessor) {
168 if (!master->lessor) {
207 static struct drm_master *drm_lease_create(struct drm_master *lessor, struct idr *leases)
209 struct drm_device *dev = lessor->dev;
216 drm_dbg_lease(dev, "lessor %d\n", lessor->lessee_id);
218 lessee = drm_master_create(lessor->dev);
230 else if (_drm_has_leased(lessor, object))
240 id = idr_alloc(&(drm_lease_owner(lessor)->lessee_idr), lessee, 1, 0, GFP_KERNEL);
247 lessee->lessor = drm_master_get(lessor);
248 list_add_tail(&lessee->lessee_list, &lessor->lessees);
252 drm_dbg_lease(dev, "new lessee %d %p, lessor %d %p\n",
253 lessee->lessee_id, lessee, lessor->lessee_id, lessor);
291 if (master->lessor) {
294 drm_master_put(&master->lessor);
327 while (master != top && master == list_last_entry(&master->lessor->lessees, struct drm_master, lessee_list))
328 master = master->lessor;
483 struct drm_master *lessor;
500 lessor = drm_file_get_master(lessor_priv);
502 if (lessor->lessor) {
542 lessee = drm_lease_create(lessor, &leases);
550 /* Clone the lessor file to create a new file for us */
573 drm_master_put(&lessor);
584 drm_master_put(&lessor);
595 struct drm_master *lessor, *lessee;
606 lessor = drm_file_get_master(lessor_priv);
607 drm_dbg_lease(dev, "List lessees for %d\n", lessor->lessee_id);
612 drm_for_each_lessee(lessee, lessor) {
631 drm_master_put(&lessor);
662 if (lessee->lessor == NULL)
699 struct drm_master *lessor;
709 lessor = drm_file_get_master(lessor_priv);
712 lessee = _drm_find_lessee(lessor, arg->lessee_id);
720 /* Lease is not held by lessor */
721 if (lessee->lessor != lessor) {
730 drm_master_put(&lessor);