[POWERPC] PS3: Update sys-manager button events
PS3 firmware 1.94 added the source of power and reset events to the payload of the system manager POWER_PRESSED and RESET_PRESSED events. Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com> Signed-off-by: Paul Mackerras <paulus@samba.org>hifive-unleashed-5.1
parent
50dad90264
commit
ea24608f02
|
@ -138,9 +138,11 @@ enum ps3_sys_manager_attr {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* enum ps3_sys_manager_event - External event type, reported by system manager.
|
* enum ps3_sys_manager_event - External event type, reported by system manager.
|
||||||
* @PS3_SM_EVENT_POWER_PRESSED: payload.value not used.
|
* @PS3_SM_EVENT_POWER_PRESSED: payload.value =
|
||||||
|
* enum ps3_sys_manager_button_event.
|
||||||
* @PS3_SM_EVENT_POWER_RELEASED: payload.value = time pressed in millisec.
|
* @PS3_SM_EVENT_POWER_RELEASED: payload.value = time pressed in millisec.
|
||||||
* @PS3_SM_EVENT_RESET_PRESSED: payload.value not used.
|
* @PS3_SM_EVENT_RESET_PRESSED: payload.value =
|
||||||
|
* enum ps3_sys_manager_button_event.
|
||||||
* @PS3_SM_EVENT_RESET_RELEASED: payload.value = time pressed in millisec.
|
* @PS3_SM_EVENT_RESET_RELEASED: payload.value = time pressed in millisec.
|
||||||
* @PS3_SM_EVENT_THERMAL_ALERT: payload.value = thermal zone id.
|
* @PS3_SM_EVENT_THERMAL_ALERT: payload.value = thermal zone id.
|
||||||
* @PS3_SM_EVENT_THERMAL_CLEARED: payload.value = thermal zone id.
|
* @PS3_SM_EVENT_THERMAL_CLEARED: payload.value = thermal zone id.
|
||||||
|
@ -157,6 +159,17 @@ enum ps3_sys_manager_event {
|
||||||
/* no info on controller events */
|
/* no info on controller events */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enum ps3_sys_manager_button_event - Button event payload values.
|
||||||
|
* @PS3_SM_BUTTON_EVENT_HARD: Hardware generated event.
|
||||||
|
* @PS3_SM_BUTTON_EVENT_SOFT: Software generated event.
|
||||||
|
*/
|
||||||
|
|
||||||
|
enum ps3_sys_manager_button_event {
|
||||||
|
PS3_SM_BUTTON_EVENT_HARD = 0,
|
||||||
|
PS3_SM_BUTTON_EVENT_SOFT = 1,
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* enum ps3_sys_manager_next_op - Operation to perform after lpar is destroyed.
|
* enum ps3_sys_manager_next_op - Operation to perform after lpar is destroyed.
|
||||||
*/
|
*/
|
||||||
|
@ -416,8 +429,10 @@ static int ps3_sys_manager_handle_event(struct ps3_system_bus_device *dev)
|
||||||
|
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
case PS3_SM_EVENT_POWER_PRESSED:
|
case PS3_SM_EVENT_POWER_PRESSED:
|
||||||
dev_dbg(&dev->core, "%s:%d: POWER_PRESSED\n",
|
dev_dbg(&dev->core, "%s:%d: POWER_PRESSED (%s)\n",
|
||||||
__func__, __LINE__);
|
__func__, __LINE__,
|
||||||
|
(event.value == PS3_SM_BUTTON_EVENT_SOFT ? "soft"
|
||||||
|
: "hard"));
|
||||||
ps3_sm_force_power_off = 1;
|
ps3_sm_force_power_off = 1;
|
||||||
/*
|
/*
|
||||||
* A memory barrier is use here to sync memory since
|
* A memory barrier is use here to sync memory since
|
||||||
|
@ -432,8 +447,10 @@ static int ps3_sys_manager_handle_event(struct ps3_system_bus_device *dev)
|
||||||
__func__, __LINE__, event.value);
|
__func__, __LINE__, event.value);
|
||||||
break;
|
break;
|
||||||
case PS3_SM_EVENT_RESET_PRESSED:
|
case PS3_SM_EVENT_RESET_PRESSED:
|
||||||
dev_dbg(&dev->core, "%s:%d: RESET_PRESSED\n",
|
dev_dbg(&dev->core, "%s:%d: RESET_PRESSED (%s)\n",
|
||||||
__func__, __LINE__);
|
__func__, __LINE__,
|
||||||
|
(event.value == PS3_SM_BUTTON_EVENT_SOFT ? "soft"
|
||||||
|
: "hard"));
|
||||||
ps3_sm_force_power_off = 0;
|
ps3_sm_force_power_off = 0;
|
||||||
/*
|
/*
|
||||||
* A memory barrier is use here to sync memory since
|
* A memory barrier is use here to sync memory since
|
||||||
|
|
Loading…
Reference in New Issue