Lines Matching defs:res_pool
37 struct fsl_mc_resource_pool *res_pool;
49 res_pool = &mc_bus->resource_pools[pool_type];
50 if (res_pool->type != pool_type)
52 if (res_pool->mc_bus != mc_bus)
55 mutex_lock(&res_pool->mutex);
57 if (res_pool->max_count < 0)
59 if (res_pool->free_count < 0 ||
60 res_pool->free_count > res_pool->max_count)
75 resource->parent_pool = res_pool;
77 list_add_tail(&resource->node, &res_pool->free_list);
79 res_pool->free_count++;
80 res_pool->max_count++;
83 mutex_unlock(&res_pool->mutex);
102 struct fsl_mc_resource_pool *res_pool;
115 res_pool = resource->parent_pool;
116 if (res_pool != &mc_bus->resource_pools[resource->type])
119 mutex_lock(&res_pool->mutex);
121 if (res_pool->max_count <= 0)
123 if (res_pool->free_count <= 0 ||
124 res_pool->free_count > res_pool->max_count)
140 res_pool->free_count--;
141 res_pool->max_count--;
147 mutex_unlock(&res_pool->mutex);
179 struct fsl_mc_resource_pool *res_pool;
191 res_pool = &mc_bus->resource_pools[pool_type];
192 if (res_pool->mc_bus != mc_bus)
195 mutex_lock(&res_pool->mutex);
196 resource = list_first_entry_or_null(&res_pool->free_list,
209 if (resource->parent_pool != res_pool)
211 if (res_pool->free_count <= 0 ||
212 res_pool->free_count > res_pool->max_count)
217 res_pool->free_count--;
220 mutex_unlock(&res_pool->mutex);
229 struct fsl_mc_resource_pool *res_pool;
231 res_pool = resource->parent_pool;
232 if (resource->type != res_pool->type)
235 mutex_lock(&res_pool->mutex);
236 if (res_pool->free_count < 0 ||
237 res_pool->free_count >= res_pool->max_count)
243 list_add_tail(&resource->node, &res_pool->free_list);
244 res_pool->free_count++;
246 mutex_unlock(&res_pool->mutex);
358 struct fsl_mc_resource_pool *res_pool =
388 mc_dev_irq->resource.type = res_pool->type;
390 mc_dev_irq->resource.parent_pool = res_pool;
392 list_add_tail(&mc_dev_irq->resource.node, &res_pool->free_list);
401 res_pool->max_count = irq_count;
402 res_pool->free_count = irq_count;
419 struct fsl_mc_resource_pool *res_pool =
425 if (res_pool->max_count == 0)
428 if (res_pool->free_count != res_pool->max_count)
431 INIT_LIST_HEAD(&res_pool->free_list);
432 res_pool->max_count = 0;
433 res_pool->free_count = 0;
450 struct fsl_mc_resource_pool *res_pool;
467 res_pool = &mc_bus->resource_pools[FSL_MC_POOL_IRQ];
468 if (res_pool->free_count < irq_count) {
545 struct fsl_mc_resource_pool *res_pool =
548 res_pool->type = pool_type;
549 res_pool->max_count = 0;
550 res_pool->free_count = 0;
551 res_pool->mc_bus = mc_bus;
552 INIT_LIST_HEAD(&res_pool->free_list);
553 mutex_init(&res_pool->mutex);
563 struct fsl_mc_resource_pool *res_pool =
567 list_for_each_entry_safe(resource, next, &res_pool->free_list, node) {