summaryrefslogtreecommitdiffstats
path: root/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-scmi/0004-firmware-arm_scmi-Add-per-message-transport-data.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-scmi/0004-firmware-arm_scmi-Add-per-message-transport-data.patch')
-rw-r--r--meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-scmi/0004-firmware-arm_scmi-Add-per-message-transport-data.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-scmi/0004-firmware-arm_scmi-Add-per-message-transport-data.patch b/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-scmi/0004-firmware-arm_scmi-Add-per-message-transport-data.patch
new file mode 100644
index 00000000..644b015d
--- /dev/null
+++ b/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-scmi/0004-firmware-arm_scmi-Add-per-message-transport-data.patch
@@ -0,0 +1,42 @@
+From 0771d1d96e6439c00497a521f8d2c9803f7e07e2 Mon Sep 17 00:00:00 2001
+From: Igor Skalkin <igor.skalkin@opensynergy.com>
+Date: Thu, 5 Nov 2020 22:21:10 +0100
+Subject: [PATCH] firmware: arm_scmi: Add per message transport data
+
+The virtio transport in this patch series can be simplified by using the
+scmi_xfer tx/rx buffers for data exchange with the virtio device, and
+for saving the message state. But the virtio transport requires
+prepending a transport-specific header. Also, for data exchange using
+virtqueues, the tx and rx buffers should not overlap.
+
+The first step to solve the aforementioned issues is to add a
+transport-specific data pointer to scmi_xfer.
+
+Co-developed-by: Peter Hilber <peter.hilber@opensynergy.com>
+Signed-off-by: Peter Hilber <peter.hilber@opensynergy.com>
+Signed-off-by: Igor Skalkin <igor.skalkin@opensynergy.com>
+Signed-off-by: Vasyl Vavrychuk <vasyl.vavrychuk@opensynergy.com>
+---
+ drivers/firmware/arm_scmi/common.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi/common.h
+index 9a8359ecd220..c998ec29018e 100644
+--- a/drivers/firmware/arm_scmi/common.h
++++ b/drivers/firmware/arm_scmi/common.h
+@@ -131,6 +131,7 @@ struct scmi_msg {
+ * buffer for the rx path as we use for the tx path.
+ * @done: command message transmit completion event
+ * @async_done: pointer to delayed response message received event completion
++ * @extra_data: Transport-specific private data pointer
+ */
+ struct scmi_xfer {
+ int transfer_id;
+@@ -139,6 +140,7 @@ struct scmi_xfer {
+ struct scmi_msg rx;
+ struct completion done;
+ struct completion *async_done;
++ void *extra_data;
+ };
+
+ void scmi_xfer_put(const struct scmi_handle *h, struct scmi_xfer *xfer);