aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mailbox
diff options
context:
space:
mode:
authorAnup Patel <anup.patel@broadcom.com>2017-03-15 02:40:00 -0400
committerJassi Brar <jaswinder.singh@linaro.org>2017-03-28 14:03:30 -0400
commitdbc049eee73004db996cc8f63754f8dd5f86d0f7 (patch)
treee3496fff8b5223c5e7d92e15f631e91bb13d72f3 /include/linux/mailbox
parent52e2dadd2b70269e5368acbae18cca8294c89316 (diff)
mailbox: Add driver for Broadcom FlexRM ring manager
Some of the Broadcom iProc SoCs have FlexRM ring manager which provides a ring-based programming interface to various offload engines (e.g. RAID, Crypto, etc). This patch adds a common mailbox driver for Broadcom FlexRM ring manager which can be shared by various offload engine drivers (implemented as mailbox clients). Reviewed-by: Ray Jui <ray.jui@broadcom.com> Reviewed-by: Scott Branden <scott.branden@broadcom.com> Reviewed-by: Pramod KUMAR <pramod.kumar@broadcom.com> Signed-off-by: Anup Patel <anup.patel@broadcom.com> Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
Diffstat (limited to 'include/linux/mailbox')
-rw-r--r--include/linux/mailbox/brcm-message.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/include/linux/mailbox/brcm-message.h b/include/linux/mailbox/brcm-message.h
index 6b55c938b401..c20b4843fc2d 100644
--- a/include/linux/mailbox/brcm-message.h
+++ b/include/linux/mailbox/brcm-message.h
@@ -16,6 +16,7 @@
16 16
17enum brcm_message_type { 17enum brcm_message_type {
18 BRCM_MESSAGE_UNKNOWN = 0, 18 BRCM_MESSAGE_UNKNOWN = 0,
19 BRCM_MESSAGE_BATCH,
19 BRCM_MESSAGE_SPU, 20 BRCM_MESSAGE_SPU,
20 BRCM_MESSAGE_SBA, 21 BRCM_MESSAGE_SBA,
21 BRCM_MESSAGE_MAX, 22 BRCM_MESSAGE_MAX,
@@ -23,24 +24,29 @@ enum brcm_message_type {
23 24
24struct brcm_sba_command { 25struct brcm_sba_command {
25 u64 cmd; 26 u64 cmd;
27 u64 *cmd_dma;
28 dma_addr_t cmd_dma_addr;
26#define BRCM_SBA_CMD_TYPE_A BIT(0) 29#define BRCM_SBA_CMD_TYPE_A BIT(0)
27#define BRCM_SBA_CMD_TYPE_B BIT(1) 30#define BRCM_SBA_CMD_TYPE_B BIT(1)
28#define BRCM_SBA_CMD_TYPE_C BIT(2) 31#define BRCM_SBA_CMD_TYPE_C BIT(2)
29#define BRCM_SBA_CMD_HAS_RESP BIT(3) 32#define BRCM_SBA_CMD_HAS_RESP BIT(3)
30#define BRCM_SBA_CMD_HAS_OUTPUT BIT(4) 33#define BRCM_SBA_CMD_HAS_OUTPUT BIT(4)
31 u64 flags; 34 u64 flags;
32 dma_addr_t input;
33 size_t input_len;
34 dma_addr_t resp; 35 dma_addr_t resp;
35 size_t resp_len; 36 size_t resp_len;
36 dma_addr_t output; 37 dma_addr_t data;
37 size_t output_len; 38 size_t data_len;
38}; 39};
39 40
40struct brcm_message { 41struct brcm_message {
41 enum brcm_message_type type; 42 enum brcm_message_type type;
42 union { 43 union {
43 struct { 44 struct {
45 struct brcm_message *msgs;
46 unsigned int msgs_queued;
47 unsigned int msgs_count;
48 } batch;
49 struct {
44 struct scatterlist *src; 50 struct scatterlist *src;
45 struct scatterlist *dst; 51 struct scatterlist *dst;
46 } spu; 52 } spu;