Lines Matching refs: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]) {
121 mutex_lock(&res_pool->mutex);
123 if (res_pool->max_count <= 0) {
127 if (res_pool->free_count <= 0 ||
128 res_pool->free_count > res_pool->max_count) {
146 res_pool->free_count--;
147 res_pool->max_count--;
153 mutex_unlock(&res_pool->mutex);
185 struct fsl_mc_resource_pool *res_pool;
197 res_pool = &mc_bus->resource_pools[pool_type];
198 if (res_pool->mc_bus != mc_bus)
201 mutex_lock(&res_pool->mutex);
202 resource = list_first_entry_or_null(&res_pool->free_list,
215 if (resource->parent_pool != res_pool)
217 if (res_pool->free_count <= 0 ||
218 res_pool->free_count > res_pool->max_count)
223 res_pool->free_count--;
226 mutex_unlock(&res_pool->mutex);
235 struct fsl_mc_resource_pool *res_pool;
237 res_pool = resource->parent_pool;
238 if (resource->type != res_pool->type)
241 mutex_lock(&res_pool->mutex);
242 if (res_pool->free_count < 0 ||
243 res_pool->free_count >= res_pool->max_count)
249 list_add_tail(&resource->node, &res_pool->free_list);
250 res_pool->free_count++;
252 mutex_unlock(&res_pool->mutex);
363 struct fsl_mc_resource_pool *res_pool =
393 mc_dev_irq->resource.type = res_pool->type;
395 mc_dev_irq->resource.parent_pool = res_pool;
399 list_add_tail(&mc_dev_irq->resource.node, &res_pool->free_list);
402 res_pool->max_count = irq_count;
403 res_pool->free_count = irq_count;
420 struct fsl_mc_resource_pool *res_pool =
426 if (res_pool->max_count == 0)
429 if (res_pool->free_count != res_pool->max_count)
432 INIT_LIST_HEAD(&res_pool->free_list);
433 res_pool->max_count = 0;
434 res_pool->free_count = 0;
451 struct fsl_mc_resource_pool *res_pool;
468 res_pool = &mc_bus->resource_pools[FSL_MC_POOL_IRQ];
469 if (res_pool->free_count < irq_count) {
546 struct fsl_mc_resource_pool *res_pool =
549 res_pool->type = pool_type;
550 res_pool->max_count = 0;
551 res_pool->free_count = 0;
552 res_pool->mc_bus = mc_bus;
553 INIT_LIST_HEAD(&res_pool->free_list);
554 mutex_init(&res_pool->mutex);