summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-01-26 16:22:46 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-01-26 16:22:46 +0100
commit297aa075dcdd7f767d6bbeb19f50f57dbbb883ab (patch)
tree6e8f8e5ab254cf3653e43ad87fb71f9df9384517
parentbsps/sparc: Fix link-time error (diff)
downloadrtems-297aa075dcdd7f767d6bbeb19f50f57dbbb883ab.tar.bz2
Revert "drvmgr: Move bsp_driver_level_hook() calls"
The --enable-drvmgr configure option controls the driver manager startup and not if the driver manager is present or not. Presence of the driver manager is determined by the architecture (only available on sparc so far). This reverts commit 61bbf9194ff4bdbc1b48e6ac9919c02b358e5701.
-rw-r--r--cpukit/libdrvmgr/drvmgr.c13
-rw-r--r--cpukit/sapi/src/exinit.c4
2 files changed, 10 insertions, 7 deletions
diff --git a/cpukit/libdrvmgr/drvmgr.c b/cpukit/libdrvmgr/drvmgr.c
index 66d6cfa0e7..7c37afd808 100644
--- a/cpukit/libdrvmgr/drvmgr.c
+++ b/cpukit/libdrvmgr/drvmgr.c
@@ -68,15 +68,14 @@ void _DRV_Manager_init_level(int level)
{
struct drvmgr *mgr = &drvmgr;
- if (mgr->level < level) {
- /* Set new Level */
- mgr->level = level;
+ if (mgr->level >= level)
+ return;
- /* Initialize buses and devices into this new level */
- drvmgr_init_update();
- }
+ /* Set new Level */
+ mgr->level = level;
- bsp_driver_level_hook(level);
+ /* Initialize buses and devices into this new level */
+ drvmgr_init_update();
}
/* 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 13154ce4e4..1eaf24f4d3 100644
--- a/cpukit/sapi/src/exinit.c
+++ b/cpukit/sapi/src/exinit.c
@@ -190,6 +190,7 @@ 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.
@@ -210,6 +211,7 @@ 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
*
@@ -218,11 +220,13 @@ 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)