diff options
author | J. German Rivera <German.Rivera@freescale.com> | 2015-03-27 16:01:05 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-04-03 13:55:03 +0200 |
commit | 0b528775948d9224c0eb26ed1c0fab973e6b2502 (patch) | |
tree | 289e67b471fbab055eb59c358d8ab2fb6ee9965c /drivers/staging | |
parent | f83e775d6ef55ea4edbe2740b8a56a94f97158b5 (diff) |
staging: fsl-mc: Removed reordering of MC objects during bus scan
MC objects discovered during an MC bus scan were being reordered
to ensure that all allocatable objects are probed before all
non-allocatable objects. However, this is not necessary, as
drivers of non-allocatable objects, that allocate allocatable
objects in their probe function, can return -EPROBE_DEFER
if such allocations fail.
Signed-off-by: J. German Rivera <German.Rivera@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/fsl-mc/bus/dprc-driver.c | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/drivers/staging/fsl-mc/bus/dprc-driver.c b/drivers/staging/fsl-mc/bus/dprc-driver.c index 65de1d758a56..f02e5e4d23a5 100644 --- a/drivers/staging/fsl-mc/bus/dprc-driver.c +++ b/drivers/staging/fsl-mc/bus/dprc-driver.c @@ -205,36 +205,6 @@ static void dprc_cleanup_all_resource_pools(struct fsl_mc_device *mc_bus_dev) dprc_cleanup_resource_pool(mc_bus_dev, pool_type); } -static void reorder_obj_desc_array(struct dprc_obj_desc *obj_desc_array, - int num_devs) -{ - struct dprc_obj_desc tmp; - struct dprc_obj_desc *top_cursor = &obj_desc_array[0]; - struct dprc_obj_desc *bottom_cursor = &obj_desc_array[num_devs - 1]; - - /* - * Reorder entries in obj_desc_array so that all allocatable devices - * are placed before all non-allocatable devices: - * - * Loop Invariant: everything before top_cursor is allocatable and - * everything after bottom_cursor is non-allocatable. - */ - while (top_cursor < bottom_cursor) { - if (FSL_MC_IS_ALLOCATABLE(top_cursor->type)) { - top_cursor++; - } else { - if (FSL_MC_IS_ALLOCATABLE(bottom_cursor->type)) { - tmp = *bottom_cursor; - *bottom_cursor = *top_cursor; - *top_cursor = tmp; - top_cursor++; - } - - bottom_cursor--; - } - } -} - /** * dprc_scan_objects - Discover objects in a DPRC * @@ -313,8 +283,6 @@ int dprc_scan_objects(struct fsl_mc_device *mc_bus_dev) "%d out of %d devices could not be retrieved\n", dprc_get_obj_failures, num_child_objects); } - - reorder_obj_desc_array(child_obj_desc_array, num_child_objects); } dprc_remove_devices(mc_bus_dev, child_obj_desc_array, |