summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-01-26 07:17:27 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-01-26 11:42:04 +0100
commit61bbf9194ff4bdbc1b48e6ac9919c02b358e5701 (patch)
tree60a695a0b95056e348e35dd979152277d1de705f
parentdrvmgr: Remove dupl bsp_driver_level_hook() decl (diff)
downloadrtems-61bbf9194ff4bdbc1b48e6ac9919c02b358e5701.tar.bz2
drvmgr: Move bsp_driver_level_hook() calls
-rw-r--r--cpukit/libdrvmgr/drvmgr.c13
-rw-r--r--cpukit/sapi/src/exinit.c4
2 files changed, 7 insertions, 10 deletions
diff --git a/cpukit/libdrvmgr/drvmgr.c b/cpukit/libdrvmgr/drvmgr.c
index 7c37afd808..66d6cfa0e7 100644
--- a/cpukit/libdrvmgr/drvmgr.c
+++ b/cpukit/libdrvmgr/drvmgr.c
@@ -68,14 +68,15 @@ void _DRV_Manager_init_level(int level)
{
struct drvmgr *mgr = &drvmgr;
- if (mgr->level >= level)
- return;
+ if (mgr->level < level) {
+ /* Set new Level */
+ mgr->level = level;
- /* Set new Level */
- mgr->level = level;
+ /* Initialize buses and devices into this new level */
+ drvmgr_init_update();
+ }
- /* Initialize buses and devices into this new level */
- drvmgr_init_update();
+ bsp_driver_level_hook(level);
}
/* Initialize Data structures of the driver manager and call driver
diff --git a/cpukit/sapi/src/exinit.c b/cpukit/sapi/src/exinit.c
index 1eaf24f4d3..13154ce4e4 100644
--- a/cpukit/sapi/src/exinit.c
+++ b/cpukit/sapi/src/exinit.c
@@ -190,7 +190,6 @@ static void rtems_initialize_device_drivers(void)
* - Install extra memory.
*/
_DRV_Manager_init_level(1);
- bsp_driver_level_hook(1);
#endif
/* Initialize I/O drivers.
@@ -211,7 +210,6 @@ static void rtems_initialize_device_drivers(void)
* for the first time.
*/
_DRV_Manager_init_level(2);
- bsp_driver_level_hook(2);
/* Init Drivers to Level 3
*
@@ -220,13 +218,11 @@ static void rtems_initialize_device_drivers(void)
* API inited in level 2
*/
_DRV_Manager_init_level(3);
- bsp_driver_level_hook(3);
/* Init Drivers to Level 4,
* Init drivers that depend on services initialized in Level 3
*/
_DRV_Manager_init_level(4);
- bsp_driver_level_hook(4);
#endif
#if defined(RTEMS_MULTIPROCESSING)