644b015d39b1bc8aeefa22b4eb48bd2182796360
[AGL/meta-agl-devel.git] /
1 From 0771d1d96e6439c00497a521f8d2c9803f7e07e2 Mon Sep 17 00:00:00 2001
2 From: Igor Skalkin <igor.skalkin@opensynergy.com>
3 Date: Thu, 5 Nov 2020 22:21:10 +0100
4 Subject: [PATCH] firmware: arm_scmi: Add per message transport data
5
6 The virtio transport in this patch series can be simplified by using the
7 scmi_xfer tx/rx buffers for data exchange with the virtio device, and
8 for saving the message state. But the virtio transport requires
9 prepending a transport-specific header. Also, for data exchange using
10 virtqueues, the tx and rx buffers should not overlap.
11
12 The first step to solve the aforementioned issues is to add a
13 transport-specific data pointer to scmi_xfer.
14
15 Co-developed-by: Peter Hilber <peter.hilber@opensynergy.com>
16 Signed-off-by: Peter Hilber <peter.hilber@opensynergy.com>
17 Signed-off-by: Igor Skalkin <igor.skalkin@opensynergy.com>
18 Signed-off-by: Vasyl Vavrychuk <vasyl.vavrychuk@opensynergy.com>
19 ---
20  drivers/firmware/arm_scmi/common.h | 2 ++
21  1 file changed, 2 insertions(+)
22
23 diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi/common.h
24 index 9a8359ecd220..c998ec29018e 100644
25 --- a/drivers/firmware/arm_scmi/common.h
26 +++ b/drivers/firmware/arm_scmi/common.h
27 @@ -131,6 +131,7 @@ struct scmi_msg {
28   *     buffer for the rx path as we use for the tx path.
29   * @done: command message transmit completion event
30   * @async_done: pointer to delayed response message received event completion
31 + * @extra_data: Transport-specific private data pointer
32   */
33  struct scmi_xfer {
34         int transfer_id;
35 @@ -139,6 +140,7 @@ struct scmi_xfer {
36         struct scmi_msg rx;
37         struct completion done;
38         struct completion *async_done;
39 +       void *extra_data;
40  };
41  
42  void scmi_xfer_put(const struct scmi_handle *h, struct scmi_xfer *xfer);