staging: fsl-mc: move resource pool init/cleanup into allocator
PATCH 4/14 staging: fsl-mc: move resource pool init/cleanup into allocator
The resource pool init/cleanup functions logically belong in the allocator. Move them to the allocator and rename to reflect the move out of the dprc-driver.
Signed-off-by Stuart Yoder <[email protected]>
--- drivers/staging/fsl-mc/bus/dprc-driver.c | 55 ++------------------------- drivers/staging/fsl-mc/bus/fsl-mc-allocator.c | 49 ++++++++++++++++++++++++ drivers/staging/fsl-mc/include/mc-bus.h | 4 ++ 3 files changed, 56 insertions(+), 52 deletions(-)
drivers/staging/fsl-mc/bus/dprc-driver.c +3 -52
@@ -190,55 +190,6 @@ static void dprc_add_new_devices(struct fsl_mc_device *mc_bus_dev, } } -static void dprc_init_all_resource_pools (struct fsl_mc_device *mc_bus_dev) -{ -int pool_type; -struct fsl_mc_bus *mc_bus =to_fsl_mc_bus (mc_bus_dev); - -for (pool_type =0 ; pool_type <FSL_MC_NUM_POOL_TYPES ; pool_type++) { -struct fsl_mc_resource_pool *res_pool = - &mc_bus->resource_pools[pool_type]; - - res_pool->type = pool_type; - res_pool->max_count =0 ; - res_pool->free_count =0 ; - res_pool->mc_bus = mc_bus; -INIT_LIST_HEAD (&res_pool->free_list); -mutex_init (&res_pool->mutex); - } -} - -static void dprc_cleanup_resource_pool (struct fsl_mc_device *mc_bus_dev, -enum fsl_mc_pool_type pool_type) -{ -struct fsl_mc_resource *resource; -struct fsl_mc_resource *next; -struct fsl_mc_bus *mc_bus =to_fsl_mc_bus (mc_bus_dev); -struct fsl_mc_resource_pool *res_pool = - &mc_bus->resource_pools[pool_type]; -int free_count =0 ; - -WARN_ON (res_pool->type != pool_type); -WARN_ON (res_pool->free_count != res_pool->max_count); - -list_for_each_entry_safe (resource, next, &res_pool->free_list, node) { - free_count++; -WARN_ON (resource->type != res_pool->type); -WARN_ON (resource->parent_pool != res_pool); -devm_kfree (&mc_bus_dev->dev, resource); - } - -WARN_ON (free_count != res_pool->free_count); -} - -static void dprc_cleanup_all_resource_pools (struct fsl_mc_device *mc_bus_dev) -{ -int pool_type; - -for (pool_type =0 ; pool_type <FSL_MC_NUM_POOL_TYPES ; pool_type++) -dprc_cleanup_resource_pool (mc_bus_dev, pool_type); -} -/** * dprc_scan_objects - Discover objects in a DPRC *
@@ -363,7 +314,7 @@ int dprc_scan_container(struct fsl_mc_device *mc_bus_dev)unsigned int irq_count;struct fsl_mc_bus *mc_bus =to_fsl_mc_bus (mc_bus_dev); -dprc_init_all_resource_pools (mc_bus_dev); +fsl_mc_init_all_resource_pools (mc_bus_dev);/* * Discover objects in the DPRC:
@@ -390,7 +341,7 @@ int dprc_scan_container(struct fsl_mc_device *mc_bus_dev)return 0 ; error: -dprc_cleanup_all_resource_pools (mc_bus_dev); +fsl_mc_cleanup_all_resource_pools (mc_bus_dev);return error; }EXPORT_SYMBOL_GPL (dprc_scan_container);
@@ -802,7 +753,7 @@ static int dprc_remove(struct fsl_mc_device *mc_dev)dev_set_msi_domain (&mc_dev->dev,NULL ); } -dprc_cleanup_all_resource_pools (mc_dev); +fsl_mc_cleanup_all_resource_pools (mc_dev); error =dprc_close (mc_dev->mc_io,0 , mc_dev->mc_handle);if (error <0 )
drivers/staging/fsl-mc/bus/fsl-mc-allocator.c +49 -0
55 lines not on this page · raw message
drivers/staging/fsl-mc/include/mc-bus.h +4 -0
@@ -150,4 +150,8 @@ int fsl_mc_populate_irq_pool(struct fsl_mc_bus *mc_bus,void fsl_mc_cleanup_irq_pool (struct fsl_mc_bus *mc_bus); +void fsl_mc_init_all_resource_pools (struct fsl_mc_device *mc_bus_dev); + +void fsl_mc_cleanup_all_resource_pools (struct fsl_mc_device *mc_bus_dev); +#endif /* _FSL_MC_MCBUS_H_ */
Signature · 1 line
1.9.0