diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-04-12 07:55:31 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-04-12 09:44:48 +0200 |
commit | ad40d05eba230a2c7b78cea9b8c612cc84de5b5e (patch) | |
tree | c9df1fcbc393c49e88230afcb129bacee7941e3f /bsps/arm/shared | |
parent | score: Improve _SMP_Multicast_action() (diff) | |
download | rtems-ad40d05eba230a2c7b78cea9b8c612cc84de5b5e.tar.bz2 |
score: Remove _SMP_Before_multitasking_action()
Use _SMP_Multicast_action() instead.
Diffstat (limited to 'bsps/arm/shared')
-rw-r--r-- | bsps/arm/shared/clock/clock-a9mpcore.c | 15 | ||||
-rw-r--r-- | bsps/arm/shared/clock/clock-generic-timer.c | 15 |
2 files changed, 14 insertions, 16 deletions
diff --git a/bsps/arm/shared/clock/clock-a9mpcore.c b/bsps/arm/shared/clock/clock-a9mpcore.c index 05d3c0961d..2907dff800 100644 --- a/bsps/arm/shared/clock/clock-a9mpcore.c +++ b/bsps/arm/shared/clock/clock-a9mpcore.c @@ -102,11 +102,13 @@ typedef struct { static void a9mpcore_clock_secondary_action(void *arg) { - volatile a9mpcore_gt *gt = A9MPCORE_GT; - a9mpcore_clock_init_data *init_data = arg; + if (!_Per_CPU_Is_boot_processor(_Per_CPU_Get())) { + volatile a9mpcore_gt *gt = A9MPCORE_GT; + a9mpcore_clock_init_data *init_data = arg; - a9mpcore_clock_gt_init(gt, init_data->cmpval, init_data->interval); - bsp_interrupt_vector_enable(A9MPCORE_IRQ_GT); + a9mpcore_clock_gt_init(gt, init_data->cmpval, init_data->interval); + bsp_interrupt_vector_enable(A9MPCORE_IRQ_GT); + } } #endif @@ -122,10 +124,7 @@ static void a9mpcore_clock_secondary_initialization( .interval = interval }; - _SMP_Before_multitasking_action_broadcast( - a9mpcore_clock_secondary_action, - &init_data - ); + _SMP_Multicast_action(NULL, a9mpcore_clock_secondary_action, &init_data); if (cmpval - a9mpcore_clock_get_counter(gt) >= interval) { bsp_fatal(BSP_ARM_A9MPCORE_FATAL_CLOCK_SMP_INIT); diff --git a/bsps/arm/shared/clock/clock-generic-timer.c b/bsps/arm/shared/clock/clock-generic-timer.c index 2d17ada0b7..e851e02104 100644 --- a/bsps/arm/shared/clock/clock-generic-timer.c +++ b/bsps/arm/shared/clock/clock-generic-timer.c @@ -122,21 +122,20 @@ static void arm_gt_clock_gt_init(uint64_t cval) #if defined(RTEMS_SMP) && !defined(CLOCK_DRIVER_USE_ONLY_BOOT_PROCESSOR) static void arm_gt_clock_secondary_action(void *arg) { - uint64_t *cval; + if (!_Per_CPU_Is_boot_processor(_Per_CPU_Get())) { + uint64_t *cval; - cval = arg; - arm_gt_clock_gt_init(*cval); - bsp_interrupt_vector_enable(arm_gt_clock_instance.irq); + cval = arg; + arm_gt_clock_gt_init(*cval); + bsp_interrupt_vector_enable(arm_gt_clock_instance.irq); + } } #endif static void arm_gt_clock_secondary_initialization(uint64_t cval) { #if defined(RTEMS_SMP) && !defined(CLOCK_DRIVER_USE_ONLY_BOOT_PROCESSOR) - _SMP_Before_multitasking_action_broadcast( - arm_gt_clock_secondary_action, - &cval - ); + _SMP_Multicast_action(NULL, arm_gt_clock_secondary_action, &cval); #endif } |