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()
412 static void apple_rtkit_syslog_rx_log(struct apple_rtkit *rtk, u64 msg) in apple_rtkit_syslog_rx_log() argument
416 size_t entry_size = 0x20 + rtk->syslog_msg_size; in apple_rtkit_syslog_rx_log()
418 if (!rtk->syslog_msg_buffer) { in apple_rtkit_syslog_rx_log()
420 rtk->dev, in apple_rtkit_syslog_rx_log()
424 if (!rtk->syslog_buffer.size) { in apple_rtkit_syslog_rx_log()
426 rtk->dev, in apple_rtkit_syslog_rx_log()
430 if (!rtk->syslog_buffer.buffer && !rtk->syslog_buffer.iomem) { in apple_rtkit_syslog_rx_log()
432 rtk->dev, in apple_rtkit_syslog_rx_log()
436 if (idx > rtk->syslog_n_entries) { in apple_rtkit_syslog_rx_log()
437 dev_warn(rtk->dev, "RTKit: syslog index %d out of range\n", in apple_rtkit_syslog_rx_log()
442 apple_rtkit_memcpy(rtk, log_context, &rtk->syslog_buffer, in apple_rtkit_syslog_rx_log()
444 apple_rtkit_memcpy(rtk, rtk->syslog_msg_buffer, &rtk->syslog_buffer, in apple_rtkit_syslog_rx_log()
446 rtk->syslog_msg_size); in apple_rtkit_syslog_rx_log()
449 rtk->syslog_msg_buffer[rtk->syslog_msg_size - 1] = 0; in apple_rtkit_syslog_rx_log()
450 dev_info(rtk->dev, "RTKit: syslog message: %s: %s\n", log_context, in apple_rtkit_syslog_rx_log()
451 rtk->syslog_msg_buffer); in apple_rtkit_syslog_rx_log()
454 apple_rtkit_send_message(rtk, APPLE_RTKIT_EP_SYSLOG, msg, NULL, false); in apple_rtkit_syslog_rx_log()
457 static void apple_rtkit_syslog_rx(struct apple_rtkit *rtk, u64 msg) in apple_rtkit_syslog_rx() argument
463 apple_rtkit_common_rx_get_buffer(rtk, &rtk->syslog_buffer, in apple_rtkit_syslog_rx()
467 apple_rtkit_syslog_rx_init(rtk, msg); in apple_rtkit_syslog_rx()
470 apple_rtkit_syslog_rx_log(rtk, msg); in apple_rtkit_syslog_rx()
473 dev_warn(rtk->dev, "RTKit: Unknown syslog message: %llx\n", in apple_rtkit_syslog_rx()
478 static void apple_rtkit_oslog_rx_init(struct apple_rtkit *rtk, u64 msg) in apple_rtkit_oslog_rx_init() argument
482 dev_dbg(rtk->dev, "RTKit: oslog init: msg: 0x%llx\n", msg); in apple_rtkit_oslog_rx_init()
484 apple_rtkit_send_message(rtk, APPLE_RTKIT_EP_OSLOG, ack, NULL, false); in apple_rtkit_oslog_rx_init()
487 static void apple_rtkit_oslog_rx(struct apple_rtkit *rtk, u64 msg) in apple_rtkit_oslog_rx() argument
493 apple_rtkit_oslog_rx_init(rtk, msg); in apple_rtkit_oslog_rx()
496 dev_warn(rtk->dev, "RTKit: Unknown oslog message: %llx\n", msg); in apple_rtkit_oslog_rx()
504 struct apple_rtkit *rtk = rtk_work->rtk; in apple_rtkit_rx_work() local
508 apple_rtkit_management_rx(rtk, rtk_work->msg); in apple_rtkit_rx_work()
511 apple_rtkit_crashlog_rx(rtk, rtk_work->msg); in apple_rtkit_rx_work()
514 apple_rtkit_syslog_rx(rtk, rtk_work->msg); in apple_rtkit_rx_work()
517 apple_rtkit_ioreport_rx(rtk, rtk_work->msg); in apple_rtkit_rx_work()
520 apple_rtkit_oslog_rx(rtk, rtk_work->msg); in apple_rtkit_rx_work()
523 if (rtk->ops->recv_message) in apple_rtkit_rx_work()
524 rtk->ops->recv_message(rtk->cookie, rtk_work->ep, in apple_rtkit_rx_work()
528 rtk->dev, in apple_rtkit_rx_work()
533 dev_warn(rtk->dev, in apple_rtkit_rx_work()
543 struct apple_rtkit *rtk = container_of(cl, struct apple_rtkit, mbox_cl); in apple_rtkit_rx() local
555 if (!test_bit(ep, rtk->endpoints)) in apple_rtkit_rx()
556 dev_warn(rtk->dev, in apple_rtkit_rx()
561 rtk->ops->recv_message_early && in apple_rtkit_rx()
562 rtk->ops->recv_message_early(rtk->cookie, ep, msg->msg0)) in apple_rtkit_rx()
569 work->rtk = rtk; in apple_rtkit_rx()
573 queue_work(rtk->wq, &work->work); in apple_rtkit_rx()
589 int apple_rtkit_send_message(struct apple_rtkit *rtk, u8 ep, u64 message, in apple_rtkit_send_message() argument
596 if (rtk->crashed) in apple_rtkit_send_message()
599 !apple_rtkit_is_running(rtk)) in apple_rtkit_send_message()
622 ret = mbox_send_message(rtk->mbox_chan, &msg->mbox_msg); in apple_rtkit_send_message()
632 int apple_rtkit_send_message_wait(struct apple_rtkit *rtk, u8 ep, u64 message, in apple_rtkit_send_message_wait() argument
639 ret = apple_rtkit_send_message(rtk, ep, message, &completion, atomic); in apple_rtkit_send_message_wait()
644 ret = mbox_flush(rtk->mbox_chan, timeout); in apple_rtkit_send_message_wait()
664 int apple_rtkit_poll(struct apple_rtkit *rtk) in apple_rtkit_poll() argument
666 return mbox_client_peek_data(rtk->mbox_chan); in apple_rtkit_poll()
670 int apple_rtkit_start_ep(struct apple_rtkit *rtk, u8 endpoint) in apple_rtkit_start_ep() argument
674 if (!test_bit(endpoint, rtk->endpoints)) in apple_rtkit_start_ep()
677 !apple_rtkit_is_running(rtk)) in apple_rtkit_start_ep()
682 apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_STARTEP, msg); in apple_rtkit_start_ep()
688 static int apple_rtkit_request_mbox_chan(struct apple_rtkit *rtk) in apple_rtkit_request_mbox_chan() argument
690 if (rtk->mbox_name) in apple_rtkit_request_mbox_chan()
691 rtk->mbox_chan = mbox_request_channel_byname(&rtk->mbox_cl, in apple_rtkit_request_mbox_chan()
692 rtk->mbox_name); in apple_rtkit_request_mbox_chan()
694 rtk->mbox_chan = in apple_rtkit_request_mbox_chan()
695 mbox_request_channel(&rtk->mbox_cl, rtk->mbox_idx); in apple_rtkit_request_mbox_chan()
697 if (IS_ERR(rtk->mbox_chan)) in apple_rtkit_request_mbox_chan()
698 return PTR_ERR(rtk->mbox_chan); in apple_rtkit_request_mbox_chan()
706 struct apple_rtkit *rtk; in apple_rtkit_init() local
712 rtk = kzalloc(sizeof(*rtk), GFP_KERNEL); in apple_rtkit_init()
713 if (!rtk) in apple_rtkit_init()
716 rtk->dev = dev; in apple_rtkit_init()
717 rtk->cookie = cookie; in apple_rtkit_init()
718 rtk->ops = ops; in apple_rtkit_init()
720 init_completion(&rtk->epmap_completion); in apple_rtkit_init()
721 init_completion(&rtk->iop_pwr_ack_completion); in apple_rtkit_init()
722 init_completion(&rtk->ap_pwr_ack_completion); in apple_rtkit_init()
724 bitmap_zero(rtk->endpoints, APPLE_RTKIT_MAX_ENDPOINTS); in apple_rtkit_init()
725 set_bit(APPLE_RTKIT_EP_MGMT, rtk->endpoints); in apple_rtkit_init()
727 rtk->mbox_name = mbox_name; in apple_rtkit_init()
728 rtk->mbox_idx = mbox_idx; in apple_rtkit_init()
729 rtk->mbox_cl.dev = dev; in apple_rtkit_init()
730 rtk->mbox_cl.tx_block = false; in apple_rtkit_init()
731 rtk->mbox_cl.knows_txdone = false; in apple_rtkit_init()
732 rtk->mbox_cl.rx_callback = &apple_rtkit_rx; in apple_rtkit_init()
733 rtk->mbox_cl.tx_done = &apple_rtkit_tx_done; in apple_rtkit_init()
735 rtk->wq = alloc_ordered_workqueue("rtkit-%s", WQ_MEM_RECLAIM, in apple_rtkit_init()
736 dev_name(rtk->dev)); in apple_rtkit_init()
737 if (!rtk->wq) { in apple_rtkit_init()
742 ret = apple_rtkit_request_mbox_chan(rtk); in apple_rtkit_init()
746 return rtk; in apple_rtkit_init()
749 destroy_workqueue(rtk->wq); in apple_rtkit_init()
751 kfree(rtk); in apple_rtkit_init()
770 int apple_rtkit_reinit(struct apple_rtkit *rtk) in apple_rtkit_reinit() argument
773 mbox_free_channel(rtk->mbox_chan); in apple_rtkit_reinit()
774 flush_workqueue(rtk->wq); in apple_rtkit_reinit()
776 apple_rtkit_free_buffer(rtk, &rtk->ioreport_buffer); in apple_rtkit_reinit()
777 apple_rtkit_free_buffer(rtk, &rtk->crashlog_buffer); in apple_rtkit_reinit()
778 apple_rtkit_free_buffer(rtk, &rtk->syslog_buffer); in apple_rtkit_reinit()
780 kfree(rtk->syslog_msg_buffer); in apple_rtkit_reinit()
782 rtk->syslog_msg_buffer = NULL; in apple_rtkit_reinit()
783 rtk->syslog_n_entries = 0; in apple_rtkit_reinit()
784 rtk->syslog_msg_size = 0; in apple_rtkit_reinit()
786 bitmap_zero(rtk->endpoints, APPLE_RTKIT_MAX_ENDPOINTS); in apple_rtkit_reinit()
787 set_bit(APPLE_RTKIT_EP_MGMT, rtk->endpoints); in apple_rtkit_reinit()
789 reinit_completion(&rtk->epmap_completion); in apple_rtkit_reinit()
790 reinit_completion(&rtk->iop_pwr_ack_completion); in apple_rtkit_reinit()
791 reinit_completion(&rtk->ap_pwr_ack_completion); in apple_rtkit_reinit()
793 rtk->crashed = false; in apple_rtkit_reinit()
794 rtk->iop_power_state = APPLE_RTKIT_PWR_STATE_OFF; in apple_rtkit_reinit()
795 rtk->ap_power_state = APPLE_RTKIT_PWR_STATE_OFF; in apple_rtkit_reinit()
797 return apple_rtkit_request_mbox_chan(rtk); in apple_rtkit_reinit()
801 static int apple_rtkit_set_ap_power_state(struct apple_rtkit *rtk, in apple_rtkit_set_ap_power_state() argument
807 reinit_completion(&rtk->ap_pwr_ack_completion); in apple_rtkit_set_ap_power_state()
810 apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_AP_PWR_STATE, in apple_rtkit_set_ap_power_state()
813 ret = apple_rtkit_wait_for_completion(&rtk->ap_pwr_ack_completion); in apple_rtkit_set_ap_power_state()
817 if (rtk->ap_power_state != state) in apple_rtkit_set_ap_power_state()
822 static int apple_rtkit_set_iop_power_state(struct apple_rtkit *rtk, in apple_rtkit_set_iop_power_state() argument
828 reinit_completion(&rtk->iop_pwr_ack_completion); in apple_rtkit_set_iop_power_state()
831 apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_IOP_PWR_STATE, in apple_rtkit_set_iop_power_state()
834 ret = apple_rtkit_wait_for_completion(&rtk->iop_pwr_ack_completion); in apple_rtkit_set_iop_power_state()
838 if (rtk->iop_power_state != state) in apple_rtkit_set_iop_power_state()
843 int apple_rtkit_boot(struct apple_rtkit *rtk) in apple_rtkit_boot() argument
847 if (apple_rtkit_is_running(rtk)) in apple_rtkit_boot()
849 if (rtk->crashed) in apple_rtkit_boot()
852 dev_dbg(rtk->dev, "RTKit: waiting for boot to finish\n"); in apple_rtkit_boot()
853 ret = apple_rtkit_wait_for_completion(&rtk->epmap_completion); in apple_rtkit_boot()
856 if (rtk->boot_result) in apple_rtkit_boot()
857 return rtk->boot_result; in apple_rtkit_boot()
859 dev_dbg(rtk->dev, "RTKit: waiting for IOP power state ACK\n"); in apple_rtkit_boot()
860 ret = apple_rtkit_wait_for_completion(&rtk->iop_pwr_ack_completion); in apple_rtkit_boot()
864 return apple_rtkit_set_ap_power_state(rtk, APPLE_RTKIT_PWR_STATE_ON); in apple_rtkit_boot()
868 int apple_rtkit_shutdown(struct apple_rtkit *rtk) in apple_rtkit_shutdown() argument
873 ret = apple_rtkit_set_ap_power_state(rtk, in apple_rtkit_shutdown()
878 ret = apple_rtkit_set_iop_power_state(rtk, APPLE_RTKIT_PWR_STATE_SLEEP); in apple_rtkit_shutdown()
882 return apple_rtkit_reinit(rtk); in apple_rtkit_shutdown()
886 int apple_rtkit_idle(struct apple_rtkit *rtk) in apple_rtkit_idle() argument
891 ret = apple_rtkit_set_ap_power_state(rtk, in apple_rtkit_idle()
896 ret = apple_rtkit_set_iop_power_state(rtk, APPLE_RTKIT_PWR_STATE_IDLE); in apple_rtkit_idle()
900 rtk->iop_power_state = APPLE_RTKIT_PWR_STATE_IDLE; in apple_rtkit_idle()
901 rtk->ap_power_state = APPLE_RTKIT_PWR_STATE_IDLE; in apple_rtkit_idle()
906 int apple_rtkit_quiesce(struct apple_rtkit *rtk) in apple_rtkit_quiesce() argument
910 ret = apple_rtkit_set_ap_power_state(rtk, in apple_rtkit_quiesce()
915 ret = apple_rtkit_set_iop_power_state(rtk, in apple_rtkit_quiesce()
920 ret = apple_rtkit_reinit(rtk); in apple_rtkit_quiesce()
924 rtk->iop_power_state = APPLE_RTKIT_PWR_STATE_QUIESCED; in apple_rtkit_quiesce()
925 rtk->ap_power_state = APPLE_RTKIT_PWR_STATE_QUIESCED; in apple_rtkit_quiesce()
930 int apple_rtkit_wake(struct apple_rtkit *rtk) in apple_rtkit_wake() argument
934 if (apple_rtkit_is_running(rtk)) in apple_rtkit_wake()
937 reinit_completion(&rtk->iop_pwr_ack_completion); in apple_rtkit_wake()
944 apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_IOP_PWR_STATE, in apple_rtkit_wake()
947 return apple_rtkit_boot(rtk); in apple_rtkit_wake()
951 void apple_rtkit_free(struct apple_rtkit *rtk) in apple_rtkit_free() argument
953 mbox_free_channel(rtk->mbox_chan); in apple_rtkit_free()
954 destroy_workqueue(rtk->wq); in apple_rtkit_free()
956 apple_rtkit_free_buffer(rtk, &rtk->ioreport_buffer); in apple_rtkit_free()
957 apple_rtkit_free_buffer(rtk, &rtk->crashlog_buffer); in apple_rtkit_free()
958 apple_rtkit_free_buffer(rtk, &rtk->syslog_buffer); in apple_rtkit_free()
960 kfree(rtk->syslog_msg_buffer); in apple_rtkit_free()
961 kfree(rtk); in apple_rtkit_free()
974 struct apple_rtkit *rtk; in devm_apple_rtkit_init() local
977 rtk = apple_rtkit_init(dev, cookie, mbox_name, mbox_idx, ops); in devm_apple_rtkit_init()
978 if (IS_ERR(rtk)) in devm_apple_rtkit_init()
979 return rtk; in devm_apple_rtkit_init()
981 ret = devm_add_action_or_reset(dev, apple_rtkit_free_wrapper, rtk); in devm_apple_rtkit_init()
985 return rtk; in devm_apple_rtkit_init()