Page MenuHomeFreeBSD

D56953.id177611.diff
No OneTemporary

D56953.id177611.diff

diff --git a/sys/dev/acpi_support/acpi_ibm.c b/sys/dev/acpi_support/acpi_ibm.c
--- a/sys/dev/acpi_support/acpi_ibm.c
+++ b/sys/dev/acpi_support/acpi_ibm.c
@@ -1453,7 +1453,7 @@
* instead of suspend-to-RAM.
*/
case IBM_EVENT_SUSPEND_TO_RAM:
- power_pm_suspend(POWER_SSTATE_TRANSITION_SUSPEND);
+ power_pm_suspend(POWER_TRANSITION_SUSPEND);
break;
case IBM_EVENT_BLUETOOTH:
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c
--- a/sys/dev/syscons/syscons.c
+++ b/sys/dev/syscons/syscons.c
@@ -3987,10 +3987,10 @@
break;
case SUSP:
- power_pm_suspend(POWER_SSTATE_TRANSITION_SUSPEND);
+ power_pm_suspend(POWER_TRANSITION_SUSPEND);
break;
case STBY:
- power_pm_suspend(POWER_SSTATE_TRANSITION_STANDBY);
+ power_pm_suspend(POWER_TRANSITION_STANDBY);
break;
case DBG:
diff --git a/sys/dev/vt/vt_core.c b/sys/dev/vt/vt_core.c
--- a/sys/dev/vt/vt_core.c
+++ b/sys/dev/vt/vt_core.c
@@ -804,11 +804,11 @@
return (1);
case SPCLKEY | STBY: /* XXX Not present in kbdcontrol parser. */
/* Put machine into Stand-By mode. */
- power_pm_suspend(POWER_SSTATE_TRANSITION_STANDBY);
+ power_pm_suspend(POWER_TRANSITION_STANDBY);
return (1);
case SPCLKEY | SUSP: /* kbdmap(5) keyword `susp`. */
/* Suspend machine. */
- power_pm_suspend(POWER_SSTATE_TRANSITION_SUSPEND);
+ power_pm_suspend(POWER_TRANSITION_SUSPEND);
return (1);
}
diff --git a/sys/kern/subr_power.c b/sys/kern/subr_power.c
--- a/sys/kern/subr_power.c
+++ b/sys/kern/subr_power.c
@@ -49,6 +49,55 @@
static bool power_pm_supported[POWER_STYPE_COUNT] = {0};
static struct task power_pm_task;
+<<<<<<< HEAD
+=======
+static d_ioctl_t power_ioctl;
+
+static struct cdevsw power_cdevsw = {
+ .d_version = D_VERSION,
+ .d_ioctl = power_ioctl,
+ .d_name = "power",
+};
+
+static void
+power_init(void *unused)
+{
+ struct make_dev_args args;
+ struct cdev *dev;
+
+ make_dev_args_init(&args);
+ args.mda_devsw = &power_cdevsw;
+ args.mda_uid = UID_ROOT;
+ args.mda_gid = GID_OPERATOR;
+ args.mda_mode = 0660;
+ if (make_dev_s(&args, &dev, "power") != 0)
+ printf("Failed to create power device");
+}
+SYSINIT(powerdev, SI_SUB_CONFIGURE, SI_ORDER_ANY, power_init, NULL);
+
+static int
+power_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag,
+ struct thread *td)
+{
+ uint32_t trans;
+
+ if ((fflag & FWRITE) == 0)
+ return (EPERM);
+
+ switch (cmd) {
+ case PIOTRANSITION:
+ trans = *(uint32_t *)data;
+ if (trans >= POWER_TRANSITION_COUNT)
+ return (EINVAL);
+ power_pm_suspend((enum power_transition)trans);
+ break;
+ default:
+ return (EINVAL);
+ }
+ return (0);
+}
+
+>>>>>>> 3f220005316b (power: Rename power transition enum)
enum power_stype
power_name_to_stype(const char *name)
{
@@ -176,7 +225,7 @@
}
void
-power_pm_suspend(enum power_sstate_transition trans)
+power_pm_suspend(enum power_transition trans)
{
enum power_stype stype;
@@ -184,13 +233,13 @@
return;
switch (trans) {
- case POWER_SSTATE_TRANSITION_STANDBY:
+ case POWER_TRANSITION_STANDBY:
stype = power_standby_stype;
break;
- case POWER_SSTATE_TRANSITION_SUSPEND:
+ case POWER_TRANSITION_SUSPEND:
stype = power_suspend_stype;
break;
- case POWER_SSTATE_TRANSITION_HIBERNATE:
+ case POWER_TRANSITION_HIBERNATE:
stype = power_hibernate_stype;
break;
default:
diff --git a/sys/sys/power.h b/sys/sys/power.h
--- a/sys/sys/power.h
+++ b/sys/sys/power.h
@@ -48,21 +48,22 @@
* Sleep state transition requests.
*
* These are high-level sleep states that the system can enter. They map to
- * a specific generic sleep type (enum power_stype).
+ * a specific generic sleep type (enum power_stype), depending on the
+ * kern.power.* sysctls.
*/
-enum power_sstate_transition {
- POWER_SSTATE_TRANSITION_STANDBY,
- POWER_SSTATE_TRANSITION_SUSPEND,
- POWER_SSTATE_TRANSITION_HIBERNATE,
+enum power_transition {
+ POWER_TRANSITION_STANDBY,
+ POWER_TRANSITION_SUSPEND,
+ POWER_TRANSITION_HIBERNATE,
};
/*
* Sleep type.
*
* These are the specific generic methods of entering a sleep state. E.g.
- * POWER_SSTATE_TRANSITION_SUSPEND could be set to enter either suspend-to-RAM
- * (which is S3 on ACPI systems), or suspend-to-idle (S0ix on ACPI systems).
- * This would be done through the kern.power.suspend sysctl.
+ * POWER_TRANSITION_SUSPEND could be set to enter either firmware suspend (which
+ * is suspend-to-RAM or S3 on ACPI systems), or suspend-to-idle (S0ix on ACPI
+ * platforms). This would be done through the kern.power.suspend sysctl.
*/
enum power_stype {
POWER_STYPE_AWAKE,
@@ -96,7 +97,7 @@
void *_pm_arg,
bool _pm_supported[static POWER_STYPE_COUNT]);
extern u_int power_pm_get_type(void);
-extern void power_pm_suspend(enum power_sstate_transition _trans);
+extern void power_pm_suspend(enum power_transition _trans);
/*
* System power API.

File Metadata

Mime Type
text/plain
Expires
Fri, May 29, 2:36 AM (6 h, 19 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33597508
Default Alt Text
D56953.id177611.diff (4 KB)

Event Timeline