[PATCH 07/52] libcpu/powerpc/mpc6xx/clock/c_clock.c: Fix warning and clean up

Joel Sherrill joel.sherrill at oarcorp.com
Wed Oct 8 19:15:58 UTC 2014


---
 c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c | 89 +++++++++++--------------
 1 file changed, 39 insertions(+), 50 deletions(-)

diff --git a/c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c b/c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c
index ba6d269..75ef38b 100644
--- a/c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c
+++ b/c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c
@@ -1,11 +1,13 @@
-/*
- *  Clock Tick Device Driver
+/**
+ *  @brief Clock Tick Device Driver
  *
  *  This routine utilizes the Decrementer Register common to the PPC family.
  *
  *  The tick frequency is directly programmed to the configured number of
  *  microseconds per tick.
- *
+ */
+
+/*
  *  COPYRIGHT (c) 1989-2007.
  *  On-Line Applications Research Corporation (OAR).
  *
@@ -17,9 +19,9 @@
  *  Modifications Copyright (c) 1999 Eric Valette valette at crf.canon.fr
  */
 
-#include <rtems/system.h>
 #include <rtems.h>
 #include <rtems/libio.h>
+#include <rtems/clockdrv.h>
 #include <stdlib.h>                     /* for atexit() */
 #include <assert.h>
 #include <libcpu/c_clock.h>
@@ -39,41 +41,32 @@ extern int BSP_connect_clock_handler (void);
 /*
  *  Clock ticks since initialization
  */
-
 volatile uint32_t   Clock_driver_ticks;
 
 /*
  *  This is the value programmed into the count down timer.
  */
-
 uint32_t   Clock_Decrementer_value;
 
-/*
- * These are set by clock driver during its init
- */
-
-rtems_device_major_number rtems_clock_major = ~0;
-rtems_device_minor_number rtems_clock_minor;
-
 void clockOff(void* unused)
 {
-rtems_interrupt_level l;
+  rtems_interrupt_level l;
 
   if ( ppc_cpu_is_bookE() ) {
     rtems_interrupt_disable(l);
     _write_BOOKE_TCR(_read_BOOKE_TCR() & ~BOOKE_TCR_DIE);
     rtems_interrupt_enable(l);
   } else {
-  /*
-   * Nothing to do as we cannot disable all interrupts and
-   * the decrementer interrupt enable is MSR_EE
-   */
+    /*
+     * Nothing to do as we cannot disable all interrupts and
+     * the decrementer interrupt enable is MSR_EE
+     */
   }
 }
 
 void clockOn(void* unused)
 {
-rtems_interrupt_level l;
+  rtems_interrupt_level l;
 
   PPC_Set_decrementer( Clock_Decrementer_value );
 
@@ -94,7 +87,6 @@ rtems_interrupt_level l;
 
 static void clockHandler(void)
 {
-
   #if (CLOCK_DRIVER_USE_FAST_IDLE == 1)
     do {
       rtems_clock_tick();
@@ -126,25 +118,28 @@ static void (*clock_handler)(void);
  */
 void clockIsr(void *unused)
 {
-int decr;
+  int decr;
+
   /*
    *  The driver has seen another tick.
    */
   do {
-  register uint32_t flags;
-  rtems_interrupt_disable(flags);
-  __asm__ volatile (
-    "mfdec %0; add %0, %0, %1; mtdec %0"
-    : "=&r"(decr)
-    : "r"(Clock_Decrementer_value));
-  rtems_interrupt_enable(flags);
-
-  Clock_driver_ticks += 1;
-
-  /*
-   *  Real Time Clock counter/timer is set to automatically reload.
-   */
-  clock_handler();
+    register uint32_t flags;
+
+    rtems_interrupt_disable(flags);
+      __asm__ volatile (
+	"mfdec %0; add %0, %0, %1; mtdec %0"
+	: "=&r"(decr)
+	: "r"(Clock_Decrementer_value)
+      );
+    rtems_interrupt_enable(flags);
+
+    Clock_driver_ticks += 1;
+
+    /*
+     *  Real Time Clock counter/timer is set to automatically reload.
+     */
+    clock_handler();
   } while ( decr < 0 );
 }
 
@@ -178,12 +173,11 @@ void clockIsrBookE(void *unused)
    *  Real Time Clock counter/timer is set to automatically reload.
    */
   clock_handler();
-
 }
 
 int clockIsOn(void* unused)
 {
-uint32_t   msr_value;
+  uint32_t   msr_value;
 
   _CPU_MSR_GET( msr_value );
 
@@ -209,13 +203,12 @@ uint32_t   msr_value;
  *  Return values:      NONE
  *
  */
-
 void Clock_exit( void )
 {
   (void) BSP_disconnect_clock_handler ();
 }
 
-uint32_t Clock_driver_nanoseconds_since_last_tick(void)
+static uint32_t Clock_driver_nanoseconds_since_last_tick(void)
 {
   uint32_t clicks, tmp;
 
@@ -252,7 +245,7 @@ rtems_device_driver Clock_initialize(
   void *pargp
 )
 {
-rtems_interrupt_level l,tcr;
+  rtems_interrupt_level l,tcr;
 
   Clock_Decrementer_value = (BSP_bus_frequency/BSP_time_base_divisor)*
             (rtems_configuration_get_microseconds_per_tick()/1000);
@@ -269,10 +262,10 @@ rtems_interrupt_level l,tcr;
 
     rtems_interrupt_disable(l);
 
-    tcr  = _read_BOOKE_TCR();
-    tcr |= BOOKE_TCR_ARE;
-    tcr &= ~BOOKE_TCR_DIE;
-    _write_BOOKE_TCR(tcr);
+      tcr  = _read_BOOKE_TCR();
+      tcr |= BOOKE_TCR_ARE;
+      tcr &= ~BOOKE_TCR_DIE;
+      _write_BOOKE_TCR(tcr);
 
     rtems_interrupt_enable(l);
 
@@ -285,22 +278,18 @@ rtems_interrupt_level l,tcr;
     Clock_driver_nanoseconds_since_last_tick
   );
 
-  /* if a decrementer exception was pending, it is cleared by
+  /*
+   * If a decrementer exception was pending, it is cleared by
    * executing the default (nop) handler at this point;
    * The next exception will then be taken by our clock handler.
    * Clock handler installation initializes the decrementer to
    * the correct value.
    */
-
   clock_handler = clockHandler;
   if (!BSP_connect_clock_handler ()) {
     printk("Unable to initialize system clock\n");
     rtems_fatal_error_occurred(1);
   }
-  /* make major/minor avail to others such as shared memory driver */
-
-  rtems_clock_major = major;
-  rtems_clock_minor = minor;
 
   return RTEMS_SUCCESSFUL;
 } /* Clock_initialize */
-- 
1.9.3




More information about the devel mailing list