Lines Matching +full:wakeup +full:- +full:event +full:- +full:action
1 // SPDX-License-Identifier: GPL-2.0-only
22 * ps3_sys_manager - PS3 system manager driver.
24 * The system manager provides an asynchronous system event notification
36 * struct ps3_sys_manager_header - System manager message header.
59 pr_debug("%s:%d: version: %xh\n", func, line, h->version); in _dump_sm_header()
60 pr_debug("%s:%d: size: %xh\n", func, line, h->size); in _dump_sm_header()
61 pr_debug("%s:%d: payload_size: %xh\n", func, line, h->payload_size); in _dump_sm_header()
62 pr_debug("%s:%d: service_id: %xh\n", func, line, h->service_id); in _dump_sm_header()
63 pr_debug("%s:%d: request_tag: %xh\n", func, line, h->request_tag); in _dump_sm_header()
67 * @PS3_SM_RX_MSG_LEN_MIN - Shortest received message length.
68 * @PS3_SM_RX_MSG_LEN_MAX - Longest received message length.
82 * enum ps3_sys_manager_service_id - Message header service_id.
83 * @PS3_SM_SERVICE_ID_REQUEST: guest --> sys_manager.
84 * @PS3_SM_SERVICE_ID_REQUEST_ERROR: guest <-- sys_manager.
85 * @PS3_SM_SERVICE_ID_COMMAND: guest <-- sys_manager.
86 * @PS3_SM_SERVICE_ID_RESPONSE: guest --> sys_manager.
87 * @PS3_SM_SERVICE_ID_SET_ATTR: guest --> sys_manager.
88 * @PS3_SM_SERVICE_ID_EXTERN_EVENT: guest <-- sys_manager.
89 * @PS3_SM_SERVICE_ID_SET_NEXT_OP: guest --> sys_manager.
108 * enum ps3_sys_manager_attr - Notification attribute (bit position mask).
112 * @PS3_SM_ATTR_CONTROLLER: Remote controller event.
130 * enum ps3_sys_manager_event - External event type, reported by system manager.
153 * enum ps3_sys_manager_button_event - Button event payload values.
154 * @PS3_SM_BUTTON_EVENT_HARD: Hardware generated event.
155 * @PS3_SM_BUTTON_EVENT_SOFT: Software generated event.
164 * enum ps3_sys_manager_next_op - Operation to perform after lpar is destroyed.
175 * enum ps3_sys_manager_wake_source - Next-op wakeup source (bit position mask).
180 * Additional wakeup sources when specifying PS3_SM_NEXT_OP_SYS_SHUTDOWN.
183 * other-os lpar.
194 * user_wake_sources - User specified wakeup sources.
202 * enum ps3_sys_manager_cmd - Command from system manager to guest.
216 * ps3_sm_force_power_off - Poweroff helper.
226 * ps3_sys_manager_write - Helper to write a two part message to the vuart.
235 BUG_ON(header->version != 1); in ps3_sys_manager_write()
236 BUG_ON(header->size != 16); in ps3_sys_manager_write()
237 BUG_ON(header->payload_size != 8 && header->payload_size != 16); in ps3_sys_manager_write()
238 BUG_ON(header->service_id > 8); in ps3_sys_manager_write()
244 result = ps3_vuart_write(dev, payload, header->payload_size); in ps3_sys_manager_write()
250 * ps3_sys_manager_send_attr - Send a 'set attribute' to the system manager.
266 dev_dbg(&dev->core, "%s:%d: %xh\n", __func__, __LINE__, attr); in ps3_sys_manager_send_attr()
282 * ps3_sys_manager_send_next_op - Send a 'set next op' to the system manager.
303 dev_dbg(&dev->core, "%s:%d: (%xh)\n", __func__, __LINE__, op); in ps3_sys_manager_send_next_op()
321 * ps3_sys_manager_send_request_shutdown - Send 'request' to the system manager.
323 * The guest sends this message to request an operation or action of the system
345 dev_dbg(&dev->core, "%s:%d\n", __func__, __LINE__); in ps3_sys_manager_send_request_shutdown()
362 * ps3_sys_manager_send_response - Send a 'response' to the system manager.
382 dev_dbg(&dev->core, "%s:%d: (%s)\n", __func__, __LINE__, in ps3_sys_manager_send_response()
399 * ps3_sys_manager_handle_event - Second stage event msg handler.
412 } event; in ps3_sys_manager_handle_event() local
414 BUILD_BUG_ON(sizeof(event) != 16); in ps3_sys_manager_handle_event()
416 result = ps3_vuart_read(dev, &event, sizeof(event)); in ps3_sys_manager_handle_event()
419 if (event.version != 1) { in ps3_sys_manager_handle_event()
420 dev_dbg(&dev->core, "%s:%d: unsupported event version (%u)\n", in ps3_sys_manager_handle_event()
421 __func__, __LINE__, event.version); in ps3_sys_manager_handle_event()
422 return -EIO; in ps3_sys_manager_handle_event()
425 switch (event.type) { in ps3_sys_manager_handle_event()
427 dev_dbg(&dev->core, "%s:%d: POWER_PRESSED (%s)\n", in ps3_sys_manager_handle_event()
429 (event.value == PS3_SM_BUTTON_EVENT_SOFT ? "soft" in ps3_sys_manager_handle_event()
441 dev_dbg(&dev->core, "%s:%d: POWER_RELEASED (%u ms)\n", in ps3_sys_manager_handle_event()
442 __func__, __LINE__, event.value); in ps3_sys_manager_handle_event()
445 dev_dbg(&dev->core, "%s:%d: RESET_PRESSED (%s)\n", in ps3_sys_manager_handle_event()
447 (event.value == PS3_SM_BUTTON_EVENT_SOFT ? "soft" in ps3_sys_manager_handle_event()
459 dev_dbg(&dev->core, "%s:%d: RESET_RELEASED (%u ms)\n", in ps3_sys_manager_handle_event()
460 __func__, __LINE__, event.value); in ps3_sys_manager_handle_event()
463 dev_dbg(&dev->core, "%s:%d: THERMAL_ALERT (zone %u)\n", in ps3_sys_manager_handle_event()
464 __func__, __LINE__, event.value); in ps3_sys_manager_handle_event()
465 pr_info("PS3 Thermal Alert Zone %u\n", event.value); in ps3_sys_manager_handle_event()
468 dev_dbg(&dev->core, "%s:%d: THERMAL_CLEARED (zone %u)\n", in ps3_sys_manager_handle_event()
469 __func__, __LINE__, event.value); in ps3_sys_manager_handle_event()
472 dev_dbg(&dev->core, "%s:%d: unknown event (%u)\n", in ps3_sys_manager_handle_event()
473 __func__, __LINE__, event.type); in ps3_sys_manager_handle_event()
474 return -EIO; in ps3_sys_manager_handle_event()
480 * ps3_sys_manager_handle_cmd - Second stage command msg handler.
496 dev_dbg(&dev->core, "%s:%d\n", __func__, __LINE__); in ps3_sys_manager_handle_cmd()
505 dev_dbg(&dev->core, "%s:%d: unsupported cmd version (%u)\n", in ps3_sys_manager_handle_cmd()
507 return -EIO; in ps3_sys_manager_handle_cmd()
511 dev_dbg(&dev->core, "%s:%d: unknown cmd (%u)\n", in ps3_sys_manager_handle_cmd()
513 return -EIO; in ps3_sys_manager_handle_cmd()
521 * ps3_sys_manager_handle_msg - First stage msg handler.
538 dev_dbg(&dev->core, "%s:%d: unsupported header version (%u)\n", in ps3_sys_manager_handle_msg()
554 dev_dbg(&dev->core, "%s:%d: EVENT\n", __func__, __LINE__); in ps3_sys_manager_handle_msg()
557 dev_dbg(&dev->core, "%s:%d: COMMAND\n", __func__, __LINE__); in ps3_sys_manager_handle_msg()
560 dev_dbg(&dev->core, "%s:%d: REQUEST_ERROR\n", __func__, in ps3_sys_manager_handle_msg()
565 dev_dbg(&dev->core, "%s:%d: unknown service_id (%u)\n", in ps3_sys_manager_handle_msg()
573 return -EIO; in ps3_sys_manager_handle_msg()
576 return -EIO; in ps3_sys_manager_handle_msg()
597 * ps3_sys_manager_final_power_off - The final platform machine_power_off routine.
611 dev_dbg(&dev->core, "%s:%d\n", __func__, __LINE__); in ps3_sys_manager_final_power_off()
622 * ps3_sys_manager_final_restart - The final platform machine_restart routine.
635 dev_dbg(&dev->core, "%s:%d\n", __func__, __LINE__); in ps3_sys_manager_final_restart()
637 /* Check if we got here via a power button event. */ in ps3_sys_manager_final_restart()
640 dev_dbg(&dev->core, "%s:%d: forcing poweroff\n", in ps3_sys_manager_final_restart()
655 * ps3_sys_manager_get_wol - Get wake-on-lan setting.
667 * ps3_sys_manager_set_wol - Set wake-on-lan setting.
687 * ps3_sys_manager_work - Asynchronous read handler.
703 dev_dbg(&dev->core, "%s:%d\n", __func__, __LINE__); in ps3_sys_manager_probe()
724 dev_dbg(&dev->core, "%s:%d\n", __func__, __LINE__); in ps3_sys_manager_remove()
730 dev_dbg(&dev->core, "%s:%d\n", __func__, __LINE__); in ps3_sys_manager_shutdown()
745 return -ENODEV; in ps3_sys_manager_init()