]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - cpu/mpc824x/interrupts.c
* Patch by Gleb Natapov, 19 Sep 2003:
[karo-tx-uboot.git] / cpu / mpc824x / interrupts.c
index 825857b05482af6465bb37c9b720bafc2f37b47e..acb8947e0d8a9c6acbd69c62113c8834181f9537 100644 (file)
 #include <asm/processor.h>
 #include <asm/pci_io.h>
 #include <commproc.h>
-#include <watchdog.h>
 #include "drivers/epic.h"
 
-/****************************************************************************/
-
-unsigned decrementer_count;            /* count val for 1e6/HZ microseconds */
-
-static __inline__ unsigned long get_msr (void)
-{
-       unsigned long msr;
-
-       asm volatile ("mfmsr %0":"=r" (msr):);
-
-       return msr;
-}
-
-static __inline__ void set_msr (unsigned long msr)
-{
-       asm volatile ("mtmsr %0"::"r" (msr));
-}
-
-static __inline__ unsigned long get_dec (void)
-{
-       unsigned long val;
-
-       asm volatile ("mfdec %0":"=r" (val):);
-
-       return val;
-}
-
-
-static __inline__ void set_dec (unsigned long val)
-{
-       asm volatile ("mtdec %0"::"r" (val));
-}
-
-
-void enable_interrupts (void)
+int interrupt_init_cpu (unsigned *decrementer_count)
 {
-       set_msr (get_msr () | MSR_EE);
-}
-
-/* returns flag if MSR_EE was set before */
-int disable_interrupts (void)
-{
-       ulong msr = get_msr ();
-
-       set_msr (msr & ~MSR_EE);
-       return ((msr & MSR_EE) != 0);
-}
-
-/****************************************************************************/
-
-int interrupt_init (void)
-{
-       decrementer_count = (get_bus_freq (0) / 4) / CFG_HZ;
+       *decrementer_count = (get_bus_freq (0) / 4) / CFG_HZ;
 
        /*
         * It's all broken at the moment and I currently don't need
@@ -96,10 +45,6 @@ int interrupt_init (void)
        /* EPIC won't generate INT unless Current Task Pri < 15 */
        epicCurTaskPrioSet(0);
 
-       set_dec (decrementer_count);
-
-       set_msr (get_msr () | MSR_EE);
-
        return (0);
 }
 
@@ -141,42 +86,8 @@ void irq_free_handler (int vec)
  vga?
  */
 
-volatile ulong timestamp = 0;
-
-void timer_interrupt (struct pt_regs *regs)
-{
-       /* Restore Decrementer Count */
-       set_dec (decrementer_count);
-
-       timestamp++;
-
-#if defined(CONFIG_WATCHDOG) || defined (CONFIG_HW_WATCHDOG)
-       if ((timestamp % (CFG_HZ / 2)) == 0) {
-               WATCHDOG_RESET ();
-       }
-#endif                                                 /* CONFIG_WATCHDOG */
-#if defined(CONFIG_SHOW_ACTIVITY) && defined(CONFIG_OXC)
-       if ((timestamp % (CFG_HZ / 10)) == 0) {
-               {
-                       extern void oxc_toggle_activeled (void);
-
-                       oxc_toggle_activeled ();
-               }
-       }
-#endif
-}
-
-void reset_timer (void)
-{
-       timestamp = 0;
-}
-
-ulong get_timer (ulong base)
-{
-       return (timestamp - base);
-}
-
-void set_timer (ulong t)
+void timer_interrupt_cpu (struct pt_regs *regs, ulong timestamp)
 {
-       timestamp = t;
+       /* nothing to do here */
+       return;
 }