Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
[linux-2.6] / drivers / staging / benet / fwcmd_mcc.h
1 /*
2  * Copyright (C) 2005 - 2008 ServerEngines
3  * All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License version 2
7  * as published by the Free Software Foundation.  The full GNU General
8  * Public License is included in this distribution in the file called COPYING.
9  *
10  * Contact Information:
11  * linux-drivers@serverengines.com
12  *
13  * ServerEngines
14  * 209 N. Fair Oaks Ave
15  * Sunnyvale, CA 94085
16  */
17 /*
18  * Autogenerated by srcgen version: 0127
19  */
20 #ifndef __fwcmd_mcc_amap_h__
21 #define __fwcmd_mcc_amap_h__
22 #include "fwcmd_opcodes.h"
23 /*
24  * Where applicable, a WRB, may contain a list of Scatter-gather elements.
25  * Each element supports a 64 bit address and a 32bit length field.
26  */
27 struct BE_MCC_SGE_AMAP {
28         u8 pa_lo[32];   /* DWORD 0 */
29         u8 pa_hi[32];   /* DWORD 1 */
30         u8 length[32];  /* DWORD 2 */
31 } __packed;
32 struct MCC_SGE_AMAP {
33         u32 dw[3];
34 };
35 /*
36  * The design of an MCC_SGE allows up to 19 elements to be embedded
37  * in a WRB, supporting 64KB data transfers (assuming a 4KB page size).
38  */
39 struct BE_MCC_WRB_PAYLOAD_AMAP {
40         union {
41                 struct BE_MCC_SGE_AMAP sgl[19];
42                 u8 embedded[59][32];    /* DWORD 0 */
43         };
44 } __packed;
45 struct MCC_WRB_PAYLOAD_AMAP {
46         u32 dw[59];
47 };
48
49 /*
50  * This is the structure of the MCC Command WRB for commands
51  * sent to the Management Processing Unit (MPU). See section
52  * for usage in embedded and non-embedded modes.
53  */
54 struct BE_MCC_WRB_AMAP {
55         u8 embedded;    /* DWORD 0 */
56         u8 rsvd0[2];    /* DWORD 0 */
57         u8 sge_count[5];        /* DWORD 0 */
58         u8 rsvd1[16];   /* DWORD 0 */
59         u8 special[8];  /* DWORD 0 */
60         u8 payload_length[32];  /* DWORD 1 */
61         u8 tag[2][32];  /* DWORD 2 */
62         u8 rsvd2[32];   /* DWORD 4 */
63         struct BE_MCC_WRB_PAYLOAD_AMAP payload;
64 } __packed;
65 struct MCC_WRB_AMAP {
66         u32 dw[64];
67 };
68
69 /*  This is the structure of the MCC Completion queue entry  */
70 struct BE_MCC_CQ_ENTRY_AMAP {
71         u8 completion_status[16];       /* DWORD 0 */
72         u8 extended_status[16]; /* DWORD 0 */
73         u8 mcc_tag[2][32];      /* DWORD 1 */
74         u8 rsvd0[27];   /* DWORD 3 */
75         u8 consumed;    /* DWORD 3 */
76         u8 completed;   /* DWORD 3 */
77         u8 hpi_buffer_completion;       /* DWORD 3 */
78         u8 async_event; /* DWORD 3 */
79         u8 valid;               /* DWORD 3 */
80 } __packed;
81 struct MCC_CQ_ENTRY_AMAP {
82         u32 dw[4];
83 };
84
85 /* Mailbox structures used by the MPU during bootstrap */
86 struct BE_MCC_MAILBOX_AMAP {
87         struct BE_MCC_WRB_AMAP wrb;
88         struct BE_MCC_CQ_ENTRY_AMAP cq;
89 } __packed;
90 struct MCC_MAILBOX_AMAP {
91         u32 dw[68];
92 };
93
94 #endif /* __fwcmd_mcc_amap_h__ */