1:
9:
10:
14:
15:
#ifndef _BMUMGR_H_
16:
#define _BMUMGR_H_
17:
18:
19:
20:
#ifdef __cplusplus
21:
extern "C" {
22:
#endif
23:
24:
#ifndef AG903_BMU_UNIT_NUM
25:
26:
#define AG903_BMU_UNIT_NUM (16)
27:
#endif
28:
29:
30:
31:
32:
33:
#define AG903_BMU_SRC_PGP0 (0)
34:
35:
#define AG903_BMU_SRC_PGP1 (1)
36:
37:
#define AG903_BMU_SRC_PGP2 (2)
38:
39:
#define AG903_BMU_SRC_PGP3 (3)
40:
41:
#define AG903_BMU_SRC_PGP4 (4)
42:
43:
#define AG903_BMU_SRC_PGP5 (5)
44:
45:
#define AG903_BMU_SRC_PGP6 (6)
46:
47:
#define AG903_BMU_SRC_PGP7 (7)
48:
49:
#define AG903_BMU_SRC_PGP8 (8)
50:
51:
#define AG903_BMU_SRC_PGP9 (9)
52:
53:
#define AG903_BMU_SRC_PGP10 (10)
54:
55:
#define AG903_BMU_SRC_PGP11 (11)
56:
57:
#define AG903_BMU_SRC_GFX0 (12)
58:
59:
#define AG903_BMU_SRC_GFX1 (13)
60:
61:
#define AG903_BMU_SRC_GFX2 (14)
62:
63:
#define AG903_BMU_SRC_GFX3 (15)
64:
65:
#define AG903_BMU_SRC_GVD0 (16)
66:
67:
#define AG903_BMU_SRC_GVD1 (17)
68:
69:
#define AG903_BMU_SRC_GVD2 (18)
70:
71:
#define AG903_BMU_SRC_GVD3 (19)
72:
73:
#define AG903_BMU_SRC_SYS0 (20)
74:
75:
#define AG903_BMU_SRC_SYS1 (21)
76:
77:
#define AG903_BMU_SRC_SYS2 (22)
78:
79:
#define AG903_BMU_SRC_SYS3 (23)
80:
81:
#define AG903_BMU_SRC_SYS4 (24)
82:
83:
#define AG903_BMU_SRC_SYS5 (25)
84:
85:
#define AG903_BMU_SRC_SYS6 (26)
86:
87:
#define AG903_BMU_SRC_SYS7 (27)
88:
89:
#define AG903_BMU_SRC_SYS8 (28)
90:
91:
#define AG903_BMU_SRC_SYS9 (29)
92:
93:
#define AG903_BMU_SRC_SYS10 (30)
94:
95:
#define AG903_BMU_SRC_JPG0 (31)
96:
97:
98:
99:
100:
#define AG903_BMU_SINK_PGP0 (0)
101:
102:
#define AG903_BMU_SINK_PGP1 (1)
103:
104:
#define AG903_BMU_SINK_PGP2 (2)
105:
106:
#define AG903_BMU_SINK_PGP3 (3)
107:
108:
#define AG903_BMU_SINK_GFX0 (4)
109:
110:
#define AG903_BMU_SINK_GFX1 (5)
111:
112:
#define AG903_BMU_SINK_GFX2 (6)
113:
114:
#define AG903_BMU_SINK_GFX3 (7)
115:
116:
#define AG903_BMU_SINK_SYS0 (8)
117:
118:
#define AG903_BMU_SINK_SYS1 (9)
119:
120:
#define AG903_BMU_SINK_SYS2 (10)
121:
122:
#define AG903_BMU_SINK_SYS3 (11)
123:
124:
#define AG903_BMU_SINK_DSP0 (12)
125:
126:
#define AG903_BMU_SINK_DSP1 (13)
127:
128:
#define AG903_BMU_SINK_JPG0 (14)
129:
130:
131:
132:
133:
#define AG903_BMU_SINK_WAIT_ENABLE (0)
134:
135:
#define AG903_BMU_SINK_WAIT_DISABLE (1)
136:
137:
138:
139:
140:
#define AG903_BMU_BUF_MGR_MODE0 (0)
141:
142:
#define AG903_BMU_BUF_MGR_MODE1 (1)
143:
144:
#define AG903_BMU_BUF_MGR_MODE2 (2)
145:
146:
#define AG903_BMU_BUF_MGR_MODE3 (3)
147:
148:
149:
typedef struct _AG903_BMUMgrStatus
150: {
151: uint8_t is_valid;
152: uint8_t is_empty;
153: uint8_t is_read_wait_appeared;
154: uint8_t is_read_busy;
155: uint8_t read_module_num;
156:
157: uint8_t is_full;
158: uint8_t is_write_wait_appeared;
159: uint8_t is_write_busy;
160: uint8_t write_module_num;
161: }
AG903_BMUMgrStatus;
162:
163:
164:
typedef struct _AG903_BMUMgrHandle
165: {
166: uint8_t unit_id;
167: uint8_t is_exec;
168: uint32_t src_id;
169: }
AG903_BMUMgrHandle;
170:
171: int32_t
AG903_BMUMgrGetHandle(
AG903_BMUMgrHandle **handle);
172: int32_t
AG903_BMUMgrReleaseHandle(
AG903_BMUMgrHandle *handle);
173: int32_t
AG903_BMUMgrEnable(
AG903_BMUMgrHandle *handle);
174: int32_t
AG903_BMUMgrDisable(
AG903_BMUMgrHandle *handle);
175: int32_t
AG903_BMUMgrSetMode(
AG903_BMUMgrHandle *handle, uint8_t ini, uint8_t mgr);
176: int32_t
AG903_BMUMgrSetSrcModule(
AG903_BMUMgrHandle *handle, uint8_t src);
177: int32_t
AG903_BMUMgrAddSinkModule(
AG903_BMUMgrHandle *handle, uint8_t sink);
178: int32_t
AG903_BMUMgrRemoveSinkModule(
AG903_BMUMgrHandle *handle, uint8_t sink);
179: int32_t
AG903_BMUMgrGetSinkStatus(
AG903_BMUMgrHandle *handle, uint8_t sink, uint8_t *status);
180: int32_t
AG903_BMUMgrSetBufferConfig(
AG903_BMUMgrHandle *handle,
void *buffer, uint32_t stride, uint32_t buf_num);
181: int32_t
AG903_BMUMgrGetStatus(
AG903_BMUMgrHandle *handle,
AG903_BMUMgrStatus *status);
182: int32_t
AG903_BMUMgrGetBMUSinkAddress(
AG903_BMUMgrHandle *handle, uint32_t *addr);
183: int32_t
AG903_BMUMgrGetBMUSrcAddress(
AG903_BMUMgrHandle *handle, uint32_t *addr);
184: int32_t
AG903_BMUMgrGetBMUId(
AG903_BMUMgrHandle *handle, uint8_t *id);
185:
186:
#ifdef __cplusplus
187: }
188:
#endif
189:
#endif