Lines Matching refs:rtk

81 	struct apple_rtkit *rtk;  member
87 bool apple_rtkit_is_running(struct apple_rtkit *rtk) in apple_rtkit_is_running() argument
89 if (rtk->crashed) in apple_rtkit_is_running()
91 if ((rtk->iop_power_state & 0xff) != APPLE_RTKIT_PWR_STATE_ON) in apple_rtkit_is_running()
93 if ((rtk->ap_power_state & 0xff) != APPLE_RTKIT_PWR_STATE_ON) in apple_rtkit_is_running()
99 bool apple_rtkit_is_crashed(struct apple_rtkit *rtk) in apple_rtkit_is_crashed() argument
101 return rtk->crashed; in apple_rtkit_is_crashed()
105 static void apple_rtkit_management_send(struct apple_rtkit *rtk, u8 type, in apple_rtkit_management_send() argument
110 apple_rtkit_send_message(rtk, APPLE_RTKIT_EP_MGMT, msg, NULL, false); in apple_rtkit_management_send()
113 static void apple_rtkit_management_rx_hello(struct apple_rtkit *rtk, u64 msg) in apple_rtkit_management_rx_hello() argument
121 dev_dbg(rtk->dev, "RTKit: Min ver %d, max ver %d\n", min_ver, max_ver); in apple_rtkit_management_rx_hello()
124 dev_err(rtk->dev, "RTKit: Firmware min version %d is too new\n", in apple_rtkit_management_rx_hello()
130 dev_err(rtk->dev, "RTKit: Firmware max version %d is too old\n", in apple_rtkit_management_rx_hello()
135 dev_info(rtk->dev, "RTKit: Initializing (protocol version %d)\n", in apple_rtkit_management_rx_hello()
137 rtk->version = want_ver; in apple_rtkit_management_rx_hello()
141 apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_HELLO_REPLY, reply); in apple_rtkit_management_rx_hello()
146 rtk->boot_result = -EINVAL; in apple_rtkit_management_rx_hello()
147 complete_all(&rtk->epmap_completion); in apple_rtkit_management_rx_hello()
150 static void apple_rtkit_management_rx_epmap(struct apple_rtkit *rtk, u64 msg) in apple_rtkit_management_rx_epmap() argument
157 dev_dbg(rtk->dev, in apple_rtkit_management_rx_epmap()
163 dev_dbg(rtk->dev, "RTKit: Discovered endpoint 0x%02x\n", ep); in apple_rtkit_management_rx_epmap()
164 set_bit(ep, rtk->endpoints); in apple_rtkit_management_rx_epmap()
173 apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_EPMAP_REPLY, reply); in apple_rtkit_management_rx_epmap()
178 for_each_set_bit(ep, rtk->endpoints, APPLE_RTKIT_APP_ENDPOINT_START) { in apple_rtkit_management_rx_epmap()
190 dev_dbg(rtk->dev, in apple_rtkit_management_rx_epmap()
192 apple_rtkit_start_ep(rtk, ep); in apple_rtkit_management_rx_epmap()
196 dev_warn(rtk->dev, in apple_rtkit_management_rx_epmap()
202 rtk->boot_result = 0; in apple_rtkit_management_rx_epmap()
203 complete_all(&rtk->epmap_completion); in apple_rtkit_management_rx_epmap()
206 static void apple_rtkit_management_rx_iop_pwr_ack(struct apple_rtkit *rtk, in apple_rtkit_management_rx_iop_pwr_ack() argument
211 dev_dbg(rtk->dev, "RTKit: IOP power state transition: 0x%x -> 0x%x\n", in apple_rtkit_management_rx_iop_pwr_ack()
212 rtk->iop_power_state, new_state); in apple_rtkit_management_rx_iop_pwr_ack()
213 rtk->iop_power_state = new_state; in apple_rtkit_management_rx_iop_pwr_ack()
215 complete_all(&rtk->iop_pwr_ack_completion); in apple_rtkit_management_rx_iop_pwr_ack()
218 static void apple_rtkit_management_rx_ap_pwr_ack(struct apple_rtkit *rtk, in apple_rtkit_management_rx_ap_pwr_ack() argument
223 dev_dbg(rtk->dev, "RTKit: AP power state transition: 0x%x -> 0x%x\n", in apple_rtkit_management_rx_ap_pwr_ack()
224 rtk->ap_power_state, new_state); in apple_rtkit_management_rx_ap_pwr_ack()
225 rtk->ap_power_state = new_state; in apple_rtkit_management_rx_ap_pwr_ack()
227 complete_all(&rtk->ap_pwr_ack_completion); in apple_rtkit_management_rx_ap_pwr_ack()
230 static void apple_rtkit_management_rx(struct apple_rtkit *rtk, u64 msg) in apple_rtkit_management_rx() argument
236 apple_rtkit_management_rx_hello(rtk, msg); in apple_rtkit_management_rx()
239 apple_rtkit_management_rx_epmap(rtk, msg); in apple_rtkit_management_rx()
242 apple_rtkit_management_rx_iop_pwr_ack(rtk, msg); in apple_rtkit_management_rx()
245 apple_rtkit_management_rx_ap_pwr_ack(rtk, msg); in apple_rtkit_management_rx()
249 rtk->dev, in apple_rtkit_management_rx()
255 static int apple_rtkit_common_rx_get_buffer(struct apple_rtkit *rtk, in apple_rtkit_common_rx_get_buffer() argument
269 dev_dbg(rtk->dev, "RTKit: buffer request for 0x%zx bytes at %pad\n", in apple_rtkit_common_rx_get_buffer()
273 (!rtk->ops->shmem_setup || !rtk->ops->shmem_destroy)) { in apple_rtkit_common_rx_get_buffer()
278 if (rtk->ops->shmem_setup) { in apple_rtkit_common_rx_get_buffer()
279 err = rtk->ops->shmem_setup(rtk->cookie, buffer); in apple_rtkit_common_rx_get_buffer()
283 buffer->buffer = dma_alloc_coherent(rtk->dev, buffer->size, in apple_rtkit_common_rx_get_buffer()
297 apple_rtkit_send_message(rtk, ep, reply, NULL, false); in apple_rtkit_common_rx_get_buffer()
311 static void apple_rtkit_free_buffer(struct apple_rtkit *rtk, in apple_rtkit_free_buffer() argument
317 if (rtk->ops->shmem_destroy) in apple_rtkit_free_buffer()
318 rtk->ops->shmem_destroy(rtk->cookie, bfr); in apple_rtkit_free_buffer()
320 dma_free_coherent(rtk->dev, bfr->size, bfr->buffer, bfr->iova); in apple_rtkit_free_buffer()
329 static void apple_rtkit_memcpy(struct apple_rtkit *rtk, void *dst, in apple_rtkit_memcpy() argument
339 static void apple_rtkit_crashlog_rx(struct apple_rtkit *rtk, u64 msg) in apple_rtkit_crashlog_rx() argument
345 dev_warn(rtk->dev, "RTKit: Unknown crashlog message: %llx\n", in apple_rtkit_crashlog_rx()
350 if (!rtk->crashlog_buffer.size) { in apple_rtkit_crashlog_rx()
351 apple_rtkit_common_rx_get_buffer(rtk, &rtk->crashlog_buffer, in apple_rtkit_crashlog_rx()
356 dev_err(rtk->dev, "RTKit: co-processor has crashed\n"); in apple_rtkit_crashlog_rx()
363 bfr = kzalloc(rtk->crashlog_buffer.size, GFP_KERNEL); in apple_rtkit_crashlog_rx()
365 apple_rtkit_memcpy(rtk, bfr, &rtk->crashlog_buffer, 0, in apple_rtkit_crashlog_rx()
366 rtk->crashlog_buffer.size); in apple_rtkit_crashlog_rx()
367 apple_rtkit_crashlog_dump(rtk, bfr, rtk->crashlog_buffer.size); in apple_rtkit_crashlog_rx()
370 dev_err(rtk->dev, in apple_rtkit_crashlog_rx()
374 rtk->crashed = true; in apple_rtkit_crashlog_rx()
375 if (rtk->ops->crashed) in apple_rtkit_crashlog_rx()
376 rtk->ops->crashed(rtk->cookie); in apple_rtkit_crashlog_rx()
379 static void apple_rtkit_ioreport_rx(struct apple_rtkit *rtk, u64 msg) in apple_rtkit_ioreport_rx() argument
385 apple_rtkit_common_rx_get_buffer(rtk, &rtk->ioreport_buffer, in apple_rtkit_ioreport_rx()
391 apple_rtkit_send_message(rtk, APPLE_RTKIT_EP_IOREPORT, msg, in apple_rtkit_ioreport_rx()
395 dev_warn(rtk->dev, "RTKit: Unknown ioreport message: %llx\n", in apple_rtkit_ioreport_rx()
400 static void apple_rtkit_syslog_rx_init(struct apple_rtkit *rtk, u64 msg) in apple_rtkit_syslog_rx_init() argument
402 rtk->syslog_n_entries = FIELD_GET(APPLE_RTKIT_SYSLOG_N_ENTRIES, msg); in apple_rtkit_syslog_rx_init()
403 rtk->syslog_msg_size = FIELD_GET(APPLE_RTKIT_SYSLOG_MSG_SIZE, msg); in apple_rtkit_syslog_rx_init()
405 rtk->syslog_msg_buffer = kzalloc(rtk->syslog_msg_size, GFP_KERNEL); in apple_rtkit_syslog_rx_init()
407 dev_dbg(rtk->dev, in apple_rtkit_syslog_rx_init()
409 rtk->syslog_n_entries, rtk->syslog_msg_size); in apple_rtkit_syslog_rx_init()
417 static void apple_rtkit_syslog_rx_log(struct apple_rtkit *rtk, u64 msg) in apple_rtkit_syslog_rx_log() argument
421 size_t entry_size = 0x20 + rtk->syslog_msg_size; in apple_rtkit_syslog_rx_log()
424 if (!rtk->syslog_msg_buffer) { in apple_rtkit_syslog_rx_log()
426 rtk->dev, in apple_rtkit_syslog_rx_log()
430 if (!rtk->syslog_buffer.size) { in apple_rtkit_syslog_rx_log()
432 rtk->dev, in apple_rtkit_syslog_rx_log()
436 if (!rtk->syslog_buffer.buffer && !rtk->syslog_buffer.iomem) { in apple_rtkit_syslog_rx_log()
438 rtk->dev, in apple_rtkit_syslog_rx_log()
442 if (idx > rtk->syslog_n_entries) { in apple_rtkit_syslog_rx_log()
443 dev_warn(rtk->dev, "RTKit: syslog index %d out of range\n", in apple_rtkit_syslog_rx_log()
448 apple_rtkit_memcpy(rtk, log_context, &rtk->syslog_buffer, in apple_rtkit_syslog_rx_log()
450 apple_rtkit_memcpy(rtk, rtk->syslog_msg_buffer, &rtk->syslog_buffer, in apple_rtkit_syslog_rx_log()
452 rtk->syslog_msg_size); in apple_rtkit_syslog_rx_log()
456 msglen = rtk->syslog_msg_size - 1; in apple_rtkit_syslog_rx_log()
458 should_crop_syslog_char(rtk->syslog_msg_buffer[msglen - 1])) in apple_rtkit_syslog_rx_log()
461 rtk->syslog_msg_buffer[msglen] = 0; in apple_rtkit_syslog_rx_log()
462 dev_info(rtk->dev, "RTKit: syslog message: %s: %s\n", log_context, in apple_rtkit_syslog_rx_log()
463 rtk->syslog_msg_buffer); in apple_rtkit_syslog_rx_log()
466 apple_rtkit_send_message(rtk, APPLE_RTKIT_EP_SYSLOG, msg, NULL, false); in apple_rtkit_syslog_rx_log()
469 static void apple_rtkit_syslog_rx(struct apple_rtkit *rtk, u64 msg) in apple_rtkit_syslog_rx() argument
475 apple_rtkit_common_rx_get_buffer(rtk, &rtk->syslog_buffer, in apple_rtkit_syslog_rx()
479 apple_rtkit_syslog_rx_init(rtk, msg); in apple_rtkit_syslog_rx()
482 apple_rtkit_syslog_rx_log(rtk, msg); in apple_rtkit_syslog_rx()
485 dev_warn(rtk->dev, "RTKit: Unknown syslog message: %llx\n", in apple_rtkit_syslog_rx()
490 static void apple_rtkit_oslog_rx_init(struct apple_rtkit *rtk, u64 msg) in apple_rtkit_oslog_rx_init() argument
494 dev_dbg(rtk->dev, "RTKit: oslog init: msg: 0x%llx\n", msg); in apple_rtkit_oslog_rx_init()
496 apple_rtkit_send_message(rtk, APPLE_RTKIT_EP_OSLOG, ack, NULL, false); in apple_rtkit_oslog_rx_init()
499 static void apple_rtkit_oslog_rx(struct apple_rtkit *rtk, u64 msg) in apple_rtkit_oslog_rx() argument
505 apple_rtkit_oslog_rx_init(rtk, msg); in apple_rtkit_oslog_rx()
508 dev_warn(rtk->dev, "RTKit: Unknown oslog message: %llx\n", msg); in apple_rtkit_oslog_rx()
516 struct apple_rtkit *rtk = rtk_work->rtk; in apple_rtkit_rx_work() local
520 apple_rtkit_management_rx(rtk, rtk_work->msg); in apple_rtkit_rx_work()
523 apple_rtkit_crashlog_rx(rtk, rtk_work->msg); in apple_rtkit_rx_work()
526 apple_rtkit_syslog_rx(rtk, rtk_work->msg); in apple_rtkit_rx_work()
529 apple_rtkit_ioreport_rx(rtk, rtk_work->msg); in apple_rtkit_rx_work()
532 apple_rtkit_oslog_rx(rtk, rtk_work->msg); in apple_rtkit_rx_work()
535 if (rtk->ops->recv_message) in apple_rtkit_rx_work()
536 rtk->ops->recv_message(rtk->cookie, rtk_work->ep, in apple_rtkit_rx_work()
540 rtk->dev, in apple_rtkit_rx_work()
545 dev_warn(rtk->dev, in apple_rtkit_rx_work()
555 struct apple_rtkit *rtk = container_of(cl, struct apple_rtkit, mbox_cl); in apple_rtkit_rx() local
567 if (!test_bit(ep, rtk->endpoints)) in apple_rtkit_rx()
568 dev_warn(rtk->dev, in apple_rtkit_rx()
573 rtk->ops->recv_message_early && in apple_rtkit_rx()
574 rtk->ops->recv_message_early(rtk->cookie, ep, msg->msg0)) in apple_rtkit_rx()
581 work->rtk = rtk; in apple_rtkit_rx()
585 queue_work(rtk->wq, &work->work); in apple_rtkit_rx()
601 int apple_rtkit_send_message(struct apple_rtkit *rtk, u8 ep, u64 message, in apple_rtkit_send_message() argument
608 if (rtk->crashed) in apple_rtkit_send_message()
611 !apple_rtkit_is_running(rtk)) in apple_rtkit_send_message()
634 ret = mbox_send_message(rtk->mbox_chan, &msg->mbox_msg); in apple_rtkit_send_message()
644 int apple_rtkit_send_message_wait(struct apple_rtkit *rtk, u8 ep, u64 message, in apple_rtkit_send_message_wait() argument
651 ret = apple_rtkit_send_message(rtk, ep, message, &completion, atomic); in apple_rtkit_send_message_wait()
656 ret = mbox_flush(rtk->mbox_chan, timeout); in apple_rtkit_send_message_wait()
676 int apple_rtkit_poll(struct apple_rtkit *rtk) in apple_rtkit_poll() argument
678 return mbox_client_peek_data(rtk->mbox_chan); in apple_rtkit_poll()
682 int apple_rtkit_start_ep(struct apple_rtkit *rtk, u8 endpoint) in apple_rtkit_start_ep() argument
686 if (!test_bit(endpoint, rtk->endpoints)) in apple_rtkit_start_ep()
689 !apple_rtkit_is_running(rtk)) in apple_rtkit_start_ep()
694 apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_STARTEP, msg); in apple_rtkit_start_ep()
700 static int apple_rtkit_request_mbox_chan(struct apple_rtkit *rtk) in apple_rtkit_request_mbox_chan() argument
702 if (rtk->mbox_name) in apple_rtkit_request_mbox_chan()
703 rtk->mbox_chan = mbox_request_channel_byname(&rtk->mbox_cl, in apple_rtkit_request_mbox_chan()
704 rtk->mbox_name); in apple_rtkit_request_mbox_chan()
706 rtk->mbox_chan = in apple_rtkit_request_mbox_chan()
707 mbox_request_channel(&rtk->mbox_cl, rtk->mbox_idx); in apple_rtkit_request_mbox_chan()
709 if (IS_ERR(rtk->mbox_chan)) in apple_rtkit_request_mbox_chan()
710 return PTR_ERR(rtk->mbox_chan); in apple_rtkit_request_mbox_chan()
718 struct apple_rtkit *rtk; in apple_rtkit_init() local
724 rtk = kzalloc(sizeof(*rtk), GFP_KERNEL); in apple_rtkit_init()
725 if (!rtk) in apple_rtkit_init()
728 rtk->dev = dev; in apple_rtkit_init()
729 rtk->cookie = cookie; in apple_rtkit_init()
730 rtk->ops = ops; in apple_rtkit_init()
732 init_completion(&rtk->epmap_completion); in apple_rtkit_init()
733 init_completion(&rtk->iop_pwr_ack_completion); in apple_rtkit_init()
734 init_completion(&rtk->ap_pwr_ack_completion); in apple_rtkit_init()
736 bitmap_zero(rtk->endpoints, APPLE_RTKIT_MAX_ENDPOINTS); in apple_rtkit_init()
737 set_bit(APPLE_RTKIT_EP_MGMT, rtk->endpoints); in apple_rtkit_init()
739 rtk->mbox_name = mbox_name; in apple_rtkit_init()
740 rtk->mbox_idx = mbox_idx; in apple_rtkit_init()
741 rtk->mbox_cl.dev = dev; in apple_rtkit_init()
742 rtk->mbox_cl.tx_block = false; in apple_rtkit_init()
743 rtk->mbox_cl.knows_txdone = false; in apple_rtkit_init()
744 rtk->mbox_cl.rx_callback = &apple_rtkit_rx; in apple_rtkit_init()
745 rtk->mbox_cl.tx_done = &apple_rtkit_tx_done; in apple_rtkit_init()
747 rtk->wq = alloc_ordered_workqueue("rtkit-%s", WQ_MEM_RECLAIM, in apple_rtkit_init()
748 dev_name(rtk->dev)); in apple_rtkit_init()
749 if (!rtk->wq) { in apple_rtkit_init()
754 ret = apple_rtkit_request_mbox_chan(rtk); in apple_rtkit_init()
758 return rtk; in apple_rtkit_init()
761 destroy_workqueue(rtk->wq); in apple_rtkit_init()
763 kfree(rtk); in apple_rtkit_init()
782 int apple_rtkit_reinit(struct apple_rtkit *rtk) in apple_rtkit_reinit() argument
785 mbox_free_channel(rtk->mbox_chan); in apple_rtkit_reinit()
786 flush_workqueue(rtk->wq); in apple_rtkit_reinit()
788 apple_rtkit_free_buffer(rtk, &rtk->ioreport_buffer); in apple_rtkit_reinit()
789 apple_rtkit_free_buffer(rtk, &rtk->crashlog_buffer); in apple_rtkit_reinit()
790 apple_rtkit_free_buffer(rtk, &rtk->syslog_buffer); in apple_rtkit_reinit()
792 kfree(rtk->syslog_msg_buffer); in apple_rtkit_reinit()
794 rtk->syslog_msg_buffer = NULL; in apple_rtkit_reinit()
795 rtk->syslog_n_entries = 0; in apple_rtkit_reinit()
796 rtk->syslog_msg_size = 0; in apple_rtkit_reinit()
798 bitmap_zero(rtk->endpoints, APPLE_RTKIT_MAX_ENDPOINTS); in apple_rtkit_reinit()
799 set_bit(APPLE_RTKIT_EP_MGMT, rtk->endpoints); in apple_rtkit_reinit()
801 reinit_completion(&rtk->epmap_completion); in apple_rtkit_reinit()
802 reinit_completion(&rtk->iop_pwr_ack_completion); in apple_rtkit_reinit()
803 reinit_completion(&rtk->ap_pwr_ack_completion); in apple_rtkit_reinit()
805 rtk->crashed = false; in apple_rtkit_reinit()
806 rtk->iop_power_state = APPLE_RTKIT_PWR_STATE_OFF; in apple_rtkit_reinit()
807 rtk->ap_power_state = APPLE_RTKIT_PWR_STATE_OFF; in apple_rtkit_reinit()
809 return apple_rtkit_request_mbox_chan(rtk); in apple_rtkit_reinit()
813 static int apple_rtkit_set_ap_power_state(struct apple_rtkit *rtk, in apple_rtkit_set_ap_power_state() argument
819 reinit_completion(&rtk->ap_pwr_ack_completion); in apple_rtkit_set_ap_power_state()
822 apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_AP_PWR_STATE, in apple_rtkit_set_ap_power_state()
825 ret = apple_rtkit_wait_for_completion(&rtk->ap_pwr_ack_completion); in apple_rtkit_set_ap_power_state()
829 if (rtk->ap_power_state != state) in apple_rtkit_set_ap_power_state()
834 static int apple_rtkit_set_iop_power_state(struct apple_rtkit *rtk, in apple_rtkit_set_iop_power_state() argument
840 reinit_completion(&rtk->iop_pwr_ack_completion); in apple_rtkit_set_iop_power_state()
843 apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_IOP_PWR_STATE, in apple_rtkit_set_iop_power_state()
846 ret = apple_rtkit_wait_for_completion(&rtk->iop_pwr_ack_completion); in apple_rtkit_set_iop_power_state()
850 if (rtk->iop_power_state != state) in apple_rtkit_set_iop_power_state()
855 int apple_rtkit_boot(struct apple_rtkit *rtk) in apple_rtkit_boot() argument
859 if (apple_rtkit_is_running(rtk)) in apple_rtkit_boot()
861 if (rtk->crashed) in apple_rtkit_boot()
864 dev_dbg(rtk->dev, "RTKit: waiting for boot to finish\n"); in apple_rtkit_boot()
865 ret = apple_rtkit_wait_for_completion(&rtk->epmap_completion); in apple_rtkit_boot()
868 if (rtk->boot_result) in apple_rtkit_boot()
869 return rtk->boot_result; in apple_rtkit_boot()
871 dev_dbg(rtk->dev, "RTKit: waiting for IOP power state ACK\n"); in apple_rtkit_boot()
872 ret = apple_rtkit_wait_for_completion(&rtk->iop_pwr_ack_completion); in apple_rtkit_boot()
876 return apple_rtkit_set_ap_power_state(rtk, APPLE_RTKIT_PWR_STATE_ON); in apple_rtkit_boot()
880 int apple_rtkit_shutdown(struct apple_rtkit *rtk) in apple_rtkit_shutdown() argument
885 ret = apple_rtkit_set_ap_power_state(rtk, in apple_rtkit_shutdown()
890 ret = apple_rtkit_set_iop_power_state(rtk, APPLE_RTKIT_PWR_STATE_SLEEP); in apple_rtkit_shutdown()
894 return apple_rtkit_reinit(rtk); in apple_rtkit_shutdown()
898 int apple_rtkit_idle(struct apple_rtkit *rtk) in apple_rtkit_idle() argument
903 ret = apple_rtkit_set_ap_power_state(rtk, in apple_rtkit_idle()
908 ret = apple_rtkit_set_iop_power_state(rtk, APPLE_RTKIT_PWR_STATE_IDLE); in apple_rtkit_idle()
912 rtk->iop_power_state = APPLE_RTKIT_PWR_STATE_IDLE; in apple_rtkit_idle()
913 rtk->ap_power_state = APPLE_RTKIT_PWR_STATE_IDLE; in apple_rtkit_idle()
918 int apple_rtkit_quiesce(struct apple_rtkit *rtk) in apple_rtkit_quiesce() argument
922 ret = apple_rtkit_set_ap_power_state(rtk, in apple_rtkit_quiesce()
927 ret = apple_rtkit_set_iop_power_state(rtk, in apple_rtkit_quiesce()
932 ret = apple_rtkit_reinit(rtk); in apple_rtkit_quiesce()
936 rtk->iop_power_state = APPLE_RTKIT_PWR_STATE_QUIESCED; in apple_rtkit_quiesce()
937 rtk->ap_power_state = APPLE_RTKIT_PWR_STATE_QUIESCED; in apple_rtkit_quiesce()
942 int apple_rtkit_wake(struct apple_rtkit *rtk) in apple_rtkit_wake() argument
946 if (apple_rtkit_is_running(rtk)) in apple_rtkit_wake()
949 reinit_completion(&rtk->iop_pwr_ack_completion); in apple_rtkit_wake()
956 apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_IOP_PWR_STATE, in apple_rtkit_wake()
959 return apple_rtkit_boot(rtk); in apple_rtkit_wake()
963 void apple_rtkit_free(struct apple_rtkit *rtk) in apple_rtkit_free() argument
965 mbox_free_channel(rtk->mbox_chan); in apple_rtkit_free()
966 destroy_workqueue(rtk->wq); in apple_rtkit_free()
968 apple_rtkit_free_buffer(rtk, &rtk->ioreport_buffer); in apple_rtkit_free()
969 apple_rtkit_free_buffer(rtk, &rtk->crashlog_buffer); in apple_rtkit_free()
970 apple_rtkit_free_buffer(rtk, &rtk->syslog_buffer); in apple_rtkit_free()
972 kfree(rtk->syslog_msg_buffer); in apple_rtkit_free()
973 kfree(rtk); in apple_rtkit_free()
986 struct apple_rtkit *rtk; in devm_apple_rtkit_init() local
989 rtk = apple_rtkit_init(dev, cookie, mbox_name, mbox_idx, ops); in devm_apple_rtkit_init()
990 if (IS_ERR(rtk)) in devm_apple_rtkit_init()
991 return rtk; in devm_apple_rtkit_init()
993 ret = devm_add_action_or_reset(dev, apple_rtkit_free_wrapper, rtk); in devm_apple_rtkit_init()
997 return rtk; in devm_apple_rtkit_init()