mpc85xx: add a new 'spe_fpu' feature flag for the FPU used on freescale powerpc cpus
[openwrt.git] / target / linux / ifxmips / patches / 010-mips_clocksource_init_war.patch
index 61d9610..81eabc6 100644 (file)
@@ -1,8 +1,8 @@
 --- a/arch/mips/kernel/cevt-r4k.c
 +++ b/arch/mips/kernel/cevt-r4k.c
-@@ -13,6 +13,22 @@
- #include <asm/smtc_ipi.h>
- #include <asm/time.h>
+@@ -22,6 +22,22 @@
+ #ifndef CONFIG_MIPS_MT_SMTC
  
 +/*
 + * Compare interrupt can be routed and latched outside the core,
  static int mips_next_event(unsigned long delta,
                             struct clock_event_device *evt)
  {
-@@ -28,6 +44,7 @@ static int mips_next_event(unsigned long
+@@ -31,6 +47,7 @@ static int mips_next_event(unsigned long
        cnt = read_c0_count();
        cnt += delta;
        write_c0_compare(cnt);
 +      compare_change_hazard();
        res = ((int)(read_c0_count() - cnt) > 0) ? -ETIME : 0;
- #ifdef CONFIG_MIPS_MT_SMTC
-       evpe(vpflags);
-@@ -187,7 +204,7 @@ static int c0_compare_int_usable(void)
-        */
-       if (c0_compare_int_pending()) {
-               write_c0_compare(read_c0_count());
--              irq_disable_hazard();
-+              compare_change_hazard();
-               if (c0_compare_int_pending())
-                       return 0;
-       }
-@@ -196,7 +213,7 @@ static int c0_compare_int_usable(void)
-               cnt = read_c0_count();
-               cnt += delta;
-               write_c0_compare(cnt);
--              irq_disable_hazard();
-+              compare_change_hazard();
-               if ((int)(read_c0_count() - cnt) < 0)
-                   break;
-               /* increase delta if the timer was already expired */
-@@ -205,11 +222,12 @@ static int c0_compare_int_usable(void)
-       while ((int)(read_c0_count() - cnt) <= 0)
-               ;       /* Wait for expiry  */
-+      compare_change_hazard();
-       if (!c0_compare_int_pending())
-               return 0;
-       write_c0_compare(read_c0_count());
--      irq_disable_hazard();
-+      compare_change_hazard();
-       if (c0_compare_int_pending())
-               return 0;
+       return res;
+ }
This page took 0.023277 seconds and 4 git commands to generate.