Commit 02562d06 authored by Russell King's avatar Russell King

[ARM] Allow CONFIG_PM to be enabled on all ARM platforms

parent cb4169bc
...@@ -16,10 +16,18 @@ ...@@ -16,10 +16,18 @@
#include <asm/leds.h> #include <asm/leds.h>
#include <asm/system.h> #include <asm/system.h>
/*
* Tell the linker that pm_do_suspend may not be present.
*/
extern int pm_do_suspend(void) __attribute__((weak));
int suspend(void) int suspend(void)
{ {
int ret; int ret;
if (!pm_do_suspend)
return -ENOSYS;
/* /*
* Suspend "legacy" devices. * Suspend "legacy" devices.
*/ */
...@@ -82,9 +90,26 @@ int suspend(void) ...@@ -82,9 +90,26 @@ int suspend(void)
} }
#ifdef CONFIG_SYSCTL #ifdef CONFIG_SYSCTL
/*
* We really want this to die. It's a disgusting hack using unallocated
* sysctl numbers. We should be using a real interface.
*/
#include <linux/init.h> #include <linux/init.h>
#include <linux/sysctl.h> #include <linux/sysctl.h>
static int
pm_sysctl_proc_handler(ctl_table *ctl, int write, struct file *filp,
void *buffer, size_t *lenp)
{
int ret = -EIO;
printk("PM: task %s (pid %d) uses deprecated sysctl PM interface\n",
current->comm, current->pid);
if (write)
ret = suspend();
return ret;
}
/* /*
* This came from arch/arm/mach-sa1100/pm.c: * This came from arch/arm/mach-sa1100/pm.c:
* Copyright (c) 2001 Cliff Brake <cbrake@accelent.com> * Copyright (c) 2001 Cliff Brake <cbrake@accelent.com>
...@@ -102,13 +127,23 @@ int suspend(void) ...@@ -102,13 +127,23 @@ int suspend(void)
static struct ctl_table pm_table[] = static struct ctl_table pm_table[] =
{ {
{ACPI_S1_SLP_TYP, "suspend", NULL, 0, 0600, NULL, (proc_handler *)&suspend}, {
.ctl_name = ACPI_S1_SLP_TYP,
.procname = "suspend",
.mode = 0200,
.proc_handler = pm_sysctl_proc_handler,
},
{0} {0}
}; };
static struct ctl_table pm_dir_table[] = static struct ctl_table pm_dir_table[] =
{ {
{CTL_ACPI, "pm", NULL, 0, 0555, pm_table}, {
.ctl_name = CTL_ACPI,
.procname = "pm",
.mode = 0555,
.child = pm_table,
},
{0} {0}
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment