]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge tag 'arm64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 8 May 2013 22:15:27 +0000 (15:15 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 8 May 2013 22:15:27 +0000 (15:15 -0700)
Pull arm64 update from Catalin Marinas:

 - Since drivers/irqchip/irq-gic.c no longer has dependencies on arm32
   specifics (the 'gic' branch merged), it can be enabled on arm64.

 - Enable arm64 support for poweroff/restart (for code under
   drivers/power/reset/).

 - Fixes (dts file, exception handling, bitops)

* tag 'arm64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64:
  arm64: Treat the bitops index argument as an 'int'
  arm64: Ignore the 'write' ESR flag on cache maintenance faults
  arm64: dts: fix #address-cells for foundation-v8
  arm64: vexpress: Add support for poweroff/restart
  arm64: Enable support for the ARM GIC interrupt controller

1  2 
arch/arm64/kernel/process.c

index f4919721f7dde20ea0fabb3369395c2359b7cc34,bbefb6fdfee220ec8ab43b709b29fd82b5705f02..46f02c3b5015ece9b1ca0ab4d57d9540a3288e67
@@@ -81,18 -81,14 +81,18 @@@ void soft_restart(unsigned long addr
  void (*pm_power_off)(void);
  EXPORT_SYMBOL_GPL(pm_power_off);
  
- void (*pm_restart)(const char *cmd);
- EXPORT_SYMBOL_GPL(pm_restart);
+ void (*arm_pm_restart)(char str, const char *cmd);
+ EXPORT_SYMBOL_GPL(arm_pm_restart);
  
 +void arch_cpu_idle_prepare(void)
 +{
 +      local_fiq_enable();
 +}
  
  /*
   * This is our default idle handler.
   */
 -static void default_idle(void)
 +void arch_cpu_idle(void)
  {
        /*
         * This should do all the clock switching and wait for interrupt
        local_irq_enable();
  }
  
 -/*
 - * The idle thread.
 - * We always respect 'hlt_counter' to prevent low power idle.
 - */
 -void cpu_idle(void)
 -{
 -      local_fiq_enable();
 -
 -      /* endless idle loop with no priority at all */
 -      while (1) {
 -              tick_nohz_idle_enter();
 -              rcu_idle_enter();
 -              while (!need_resched()) {
 -                      /*
 -                       * We need to disable interrupts here to ensure
 -                       * we don't miss a wakeup call.
 -                       */
 -                      local_irq_disable();
 -                      if (!need_resched()) {
 -                              stop_critical_timings();
 -                              default_idle();
 -                              start_critical_timings();
 -                              /*
 -                               * default_idle functions should always return
 -                               * with IRQs enabled.
 -                               */
 -                              WARN_ON(irqs_disabled());
 -                      } else {
 -                              local_irq_enable();
 -                      }
 -              }
 -              rcu_idle_exit();
 -              tick_nohz_idle_exit();
 -              schedule_preempt_disabled();
 -      }
 -}
 -
  void machine_shutdown(void)
  {
  #ifdef CONFIG_SMP
@@@ -131,8 -164,8 +131,8 @@@ void machine_restart(char *cmd
        local_fiq_disable();
  
        /* Now call the architecture specific reboot code. */
-       if (pm_restart)
-               pm_restart(cmd);
+       if (arm_pm_restart)
+               arm_pm_restart('h', cmd);
  
        /*
         * Whoops - the architecture was unable to reboot.
@@@ -145,7 -178,11 +145,7 @@@ void __show_regs(struct pt_regs *regs
  {
        int i;
  
 -      printk("CPU: %d    %s  (%s %.*s)\n",
 -              raw_smp_processor_id(), print_tainted(),
 -              init_utsname()->release,
 -              (int)strcspn(init_utsname()->version, " "),
 -              init_utsname()->version);
 +      show_regs_print_info(KERN_DEFAULT);
        print_symbol("PC is at %s\n", instruction_pointer(regs));
        print_symbol("LR is at %s\n", regs->regs[30]);
        printk("pc : [<%016llx>] lr : [<%016llx>] pstate: %08llx\n",
  void show_regs(struct pt_regs * regs)
  {
        printk("\n");
 -      printk("Pid: %d, comm: %20s\n", task_pid_nr(current), current->comm);
        __show_regs(regs);
  }