• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/drivers/char/drm/

Lines Matching refs:sman

47 void drm_sman_takedown(drm_sman_t * sman)
49 drm_ht_remove(&sman->user_hash_tab);
50 drm_ht_remove(&sman->owner_hash_tab);
51 if (sman->mm)
52 drm_free(sman->mm, sman->num_managers * sizeof(*sman->mm),
59 drm_sman_init(drm_sman_t * sman, unsigned int num_managers,
64 sman->mm = (drm_sman_mm_t *) drm_calloc(num_managers, sizeof(*sman->mm),
66 if (!sman->mm) {
70 sman->num_managers = num_managers;
71 INIT_LIST_HEAD(&sman->owner_items);
72 ret = drm_ht_create(&sman->owner_hash_tab, owner_order);
75 ret = drm_ht_create(&sman->user_hash_tab, user_order);
79 drm_ht_remove(&sman->owner_hash_tab);
81 drm_free(sman->mm, num_managers * sizeof(*sman->mm), DRM_MEM_MM);
123 drm_sman_set_range(drm_sman_t * sman, unsigned int manager,
130 BUG_ON(manager >= sman->num_managers);
132 sman_mm = &sman->mm[manager];
156 drm_sman_set_manager(drm_sman_t * sman, unsigned int manager,
159 BUG_ON(manager >= sman->num_managers);
160 sman->mm[manager] = *allocator;
166 static drm_owner_item_t *drm_sman_get_owner_item(drm_sman_t * sman,
173 ret = drm_ht_find_item(&sman->owner_hash_tab, owner, &owner_hash_item);
185 if (drm_ht_insert_item(&sman->owner_hash_tab, &owner_item->owner_hash))
188 list_add_tail(&owner_item->sman_list, &sman->owner_items);
197 drm_memblock_item_t *drm_sman_alloc(drm_sman_t *sman, unsigned int manager,
206 BUG_ON(manager >= sman->num_managers);
208 sman_mm = &sman->mm[manager];
222 memblock->sman = sman;
225 (&sman->user_hash_tab, &memblock->user_hash,
229 owner_item = drm_sman_get_owner_item(sman, owner);
238 drm_ht_remove_item(&sman->user_hash_tab, &memblock->user_hash);
251 drm_sman_t *sman = item->sman;
254 drm_ht_remove_item(&sman->user_hash_tab, &item->user_hash);
259 int drm_sman_free_key(drm_sman_t *sman, unsigned int key)
264 if (drm_ht_find_item(&sman->user_hash_tab, key, &hash_item))
274 static void drm_sman_remove_owner(drm_sman_t *sman,
278 drm_ht_remove_item(&sman->owner_hash_tab, &owner_item->owner_hash);
282 int drm_sman_owner_clean(drm_sman_t *sman, unsigned long owner)
288 if (drm_ht_find_item(&sman->owner_hash_tab, owner, &hash_item)) {
294 drm_sman_remove_owner(sman, owner_item);
303 static void drm_sman_do_owner_cleanup(drm_sman_t *sman,
312 drm_sman_remove_owner(sman, owner_item);
315 void drm_sman_owner_cleanup(drm_sman_t *sman, unsigned long owner)
321 if (drm_ht_find_item(&sman->owner_hash_tab, owner, &hash_item)) {
327 drm_sman_do_owner_cleanup(sman, owner_item);
332 void drm_sman_cleanup(drm_sman_t *sman)
338 list_for_each_entry_safe(entry, next, &sman->owner_items, sman_list) {
339 drm_sman_do_owner_cleanup(sman, entry);
341 if (sman->mm) {
342 for (i = 0; i < sman->num_managers; ++i) {
343 sman_mm = &sman->mm[i];