aboutsummaryrefslogtreecommitdiff
path: root/kernel/ethosu_device.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/ethosu_device.c')
-rw-r--r--kernel/ethosu_device.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/kernel/ethosu_device.c b/kernel/ethosu_device.c
index 316df6f..f66c2ac 100644
--- a/kernel/ethosu_device.c
+++ b/kernel/ethosu_device.c
@@ -27,6 +27,7 @@
#include "ethosu_buffer.h"
#include "ethosu_core_interface.h"
#include "ethosu_inference.h"
+#include "ethosu_cancel_inference.h"
#include "ethosu_network.h"
#include "ethosu_network_info.h"
#include "uapi/ethosu.h"
@@ -209,6 +210,7 @@ static int ethosu_handle_msg(struct ethosu_device *edev)
struct ethosu_core_msg_version version;
struct ethosu_core_msg_capabilities_rsp capabilities;
struct ethosu_core_network_info_rsp network_info;
+ struct ethosu_core_cancel_inference_rsp cancellation;
} data;
/* Read message */
@@ -254,6 +256,20 @@ static int ethosu_handle_msg(struct ethosu_device *edev)
ethosu_inference_rsp(edev, &data.inf);
break;
+ case ETHOSU_CORE_MSG_CANCEL_INFERENCE_RSP:
+ if (header.length != sizeof(data.cancellation)) {
+ dev_warn(edev->dev,
+ "Msg: Cancel Inference response of incorrect size. size=%u, expected=%zu\n", header.length,
+ sizeof(data.cancellation));
+ ret = -EBADMSG;
+ break;
+ }
+
+ dev_info(edev->dev,
+ "Msg: Cancel Inference response. user_arg=0x%llx, status=%u\n",
+ data.cancellation.user_arg, data.cancellation.status);
+ ethosu_cancel_inference_rsp(edev, &data.cancellation);
+ break;
case ETHOSU_CORE_MSG_VERSION_RSP:
if (header.length != sizeof(data.version)) {
dev_warn(edev->dev,