mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-07-22 11:16:59 +08:00
55 lines
1.9 KiB
Diff
55 lines
1.9 KiB
Diff
From 6ca3d4d94f429b7d0fcb991442ada6b2d34fc4c1 Mon Sep 17 00:00:00 2001
|
|
From: Hector Martin <marcan@marcan.st>
|
|
Date: Mon, 2 May 2022 15:55:51 +0900
|
|
Subject: [PATCH 136/171] soc: apple: rtkit: Add apple_rtkit_poll
|
|
|
|
This allows a client to receive messages in atomic context, by polling.
|
|
|
|
Signed-off-by: Hector Martin <marcan@marcan.st>
|
|
---
|
|
drivers/soc/apple/rtkit.c | 6 ++++++
|
|
include/linux/soc/apple/rtkit.h | 12 ++++++++++++
|
|
2 files changed, 18 insertions(+)
|
|
|
|
diff --git a/drivers/soc/apple/rtkit.c b/drivers/soc/apple/rtkit.c
|
|
index cf1129e9f76b..031ec4aa06d5 100644
|
|
--- a/drivers/soc/apple/rtkit.c
|
|
+++ b/drivers/soc/apple/rtkit.c
|
|
@@ -660,6 +660,12 @@ int apple_rtkit_send_message_wait(struct apple_rtkit *rtk, u8 ep, u64 message,
|
|
}
|
|
EXPORT_SYMBOL_GPL(apple_rtkit_send_message_wait);
|
|
|
|
+int apple_rtkit_poll(struct apple_rtkit *rtk)
|
|
+{
|
|
+ return mbox_client_peek_data(rtk->mbox_chan);
|
|
+}
|
|
+EXPORT_SYMBOL_GPL(apple_rtkit_poll);
|
|
+
|
|
int apple_rtkit_start_ep(struct apple_rtkit *rtk, u8 endpoint)
|
|
{
|
|
u64 msg;
|
|
diff --git a/include/linux/soc/apple/rtkit.h b/include/linux/soc/apple/rtkit.h
|
|
index 88eb832eac7b..c9cabb679cd1 100644
|
|
--- a/include/linux/soc/apple/rtkit.h
|
|
+++ b/include/linux/soc/apple/rtkit.h
|
|
@@ -152,4 +152,16 @@ int apple_rtkit_send_message(struct apple_rtkit *rtk, u8 ep, u64 message,
|
|
int apple_rtkit_send_message_wait(struct apple_rtkit *rtk, u8 ep, u64 message,
|
|
unsigned long timeout, bool atomic);
|
|
|
|
+/*
|
|
+ * Process incoming messages in atomic context.
|
|
+ * This only guarantees that messages arrive as far as the recv_message_early
|
|
+ * callback; drivers expecting to handle incoming messages synchronously
|
|
+ * by calling this function must do it that way.
|
|
+ * Will return 1 if some data was processed, 0 if none was, or a
|
|
+ * negative error code on failure.
|
|
+ *
|
|
+ * @rtk: RTKit reference
|
|
+ */
|
|
+int apple_rtkit_poll(struct apple_rtkit *rtk);
|
|
+
|
|
#endif /* _LINUX_APPLE_RTKIT_H_ */
|
|
--
|
|
2.34.1
|
|
|