]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/sfr/ofcons
authorLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 20 Jul 2007 16:18:08 +0000 (09:18 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 20 Jul 2007 16:18:08 +0000 (09:18 -0700)
* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/sfr/ofcons:
  Create drivers/of/platform.c
  Create linux/of_platorm.h
  [SPARC/64] Rename some functions like PowerPC
  Begin consolidation of of_device.h
  Begin to consolidate of_device.c
  Consolidate of_find_node_by routines
  Consolidate of_get_next_child
  Consolidate of_get_parent
  Consolidate of_find_property
  Consolidate of_device_is_compatible
  Start split out of common open firmware code
  Split out common parts of prom.h

1  2 
arch/sparc64/kernel/power.c

index 39f9f6494d4c2f5486ca8d108d23a7922af6efd6,fdc0d0b5a9107d0b057bc5ab597f10d137ad11c7..b00feb01c16ffac14edc01483ded150aaf8a52f6
  #include <linux/interrupt.h>
  #include <linux/pm.h>
  #include <linux/syscalls.h>
 +#include <linux/reboot.h>
  
  #include <asm/system.h>
  #include <asm/auxio.h>
  #include <asm/prom.h>
  #include <asm/of_device.h>
  #include <asm/io.h>
 -#include <asm/power.h>
  #include <asm/sstate.h>
  
  #include <linux/unistd.h>
@@@ -31,9 -31,20 +31,9 @@@ int scons_pwroff = 1
  
  static void __iomem *power_reg;
  
 -static DECLARE_WAIT_QUEUE_HEAD(powerd_wait);
 -static int button_pressed;
 -
 -void wake_up_powerd(void)
 -{
 -      if (button_pressed == 0) {
 -              button_pressed = 1;
 -              wake_up(&powerd_wait);
 -      }
 -}
 -
  static irqreturn_t power_handler(int irq, void *dev_id)
  {
 -      wake_up_powerd();
 +      orderly_poweroff(true);
  
        /* FIXME: Check registers for status... */
        return IRQ_HANDLED;
@@@ -66,6 -77,48 +66,6 @@@ void machine_power_off(void
  void (*pm_power_off)(void) = machine_power_off;
  EXPORT_SYMBOL(pm_power_off);
  
 -static int powerd(void *__unused)
 -{
 -      static char *envp[] = { "HOME=/", "TERM=linux", "PATH=/sbin:/usr/sbin:/bin:/usr/bin", NULL };
 -      char *argv[] = { "/sbin/shutdown", "-h", "now", NULL };
 -      DECLARE_WAITQUEUE(wait, current);
 -
 -      daemonize("powerd");
 -
 -      add_wait_queue(&powerd_wait, &wait);
 -
 -      for (;;) {
 -              set_task_state(current, TASK_INTERRUPTIBLE);
 -              if (button_pressed)
 -                      break;
 -              flush_signals(current);
 -              schedule();
 -      }
 -      __set_current_state(TASK_RUNNING);
 -      remove_wait_queue(&powerd_wait, &wait);
 -
 -      /* Ok, down we go... */
 -      button_pressed = 0;
 -      if (kernel_execve("/sbin/shutdown", argv, envp) < 0) {
 -              printk(KERN_ERR "powerd: shutdown execution failed\n");
 -              machine_power_off();
 -      }
 -      return 0;
 -}
 -
 -int start_powerd(void)
 -{
 -      int err;
 -
 -      err = kernel_thread(powerd, NULL, CLONE_FS);
 -      if (err < 0)
 -              printk(KERN_ERR "power: Failed to start power daemon.\n");
 -      else
 -              printk(KERN_INFO "power: powerd running.\n");
 -
 -      return err;
 -}
 -
  static int __init has_button_interrupt(unsigned int irq, struct device_node *dp)
  {
        if (irq == 0xffffffff)
@@@ -83,15 -136,20 +83,15 @@@ static int __devinit power_probe(struc
  
        power_reg = of_ioremap(res, 0, 0x4, "power");
  
 -      printk("%s: Control reg at %lx ... ",
 +      printk(KERN_INFO "%s: Control reg at %lx\n",
               op->node->name, res->start);
  
        poweroff_method = machine_halt;  /* able to use the standard halt */
  
        if (has_button_interrupt(irq, op->node)) {
 -              if (start_powerd() < 0)
 -                      return 0;
 -
                if (request_irq(irq,
                                power_handler, 0, "power", NULL) < 0)
                        printk(KERN_ERR "power: Cannot setup IRQ handler.\n");
 -      } else {
 -              printk(KERN_INFO "power: Not using powerd.\n");
        }
  
        return 0;
@@@ -112,6 -170,6 +112,6 @@@ static struct of_platform_driver power_
  
  void __init power_init(void)
  {
-       of_register_driver(&power_driver, &of_bus_type);
+       of_register_driver(&power_driver, &of_platform_bus_type);
        return;
  }