Reset firmware

Reset the firmware if it becomes unresponsive. Use ping to send
keep alive requests.

Only monitor ping and inference request messages. The other messages
pass no resources to the firmware and can be cancelled without
resetting the firmware.

Change-Id: Ifbcc370f02d79a64f25598f11376a1dc84a7a066
diff --git a/kernel/ethosu_device.h b/kernel/ethosu_device.h
index 7d8791a..7c6c99d 100644
--- a/kernel/ethosu_device.h
+++ b/kernel/ethosu_device.h
@@ -40,6 +40,8 @@
  * Types
  ****************************************************************************/
 
+struct reset_control;
+
 /**
  * struct ethosu_device - Device structure
  */
@@ -51,9 +53,7 @@
 	struct mutex           mutex;
 	struct ethosu_mailbox  mailbox;
 	struct ethosu_watchdog watchdog;
-	struct list_head       capabilities_list;
-	struct list_head       inference_list;
-	struct list_head       network_info_list;
+	struct reset_control   *reset;
 };
 
 /**
@@ -64,7 +64,8 @@
 	struct completion                      done;
 	struct kref                            refcount;
 	struct ethosu_uapi_device_capabilities *capabilities;
-	struct list_head                       list;
+	struct ethosu_mailbox_msg              msg;
+	int                                    errno;
 };
 
 /****************************************************************************