1:
14:
15:
19:
20:
#ifndef PGPMGRH
21:
#define PGPMGRH
22:
23:
24:
#ifdef __cplusplus
25:
extern "C" {
26:
#endif
27:
28:
#include <stdint.h>
29:
#include <stdbool.h>
30:
#include "AG903_errno.h"
31:
32:
36:
#define AG903_PGP_MGR_TS_FORCE_DISABLE
37:
38:
#ifdef AG903_PGP_MGR_TS_FORCE_DISABLE
39:
40:
#define AG903_PGP_MGR_MAX_PIPELINE_HANDLE (6)
41:
42:
#define AG903_PGP_MGR_MAX_VRAMI_HANDLE (4)
43:
44:
#define AG903_PGP_MGR_MAX_FRAME_CALC_HANDLE (2)
45:
46:
#define AG903_PGP_MGR_MAX_DGC_LUT (8)
47:
#else
48:
#define AG903_PGP_MGR_MAX_PIPELINE_HANDLE (16)
49:
#define AG903_PGP_MGR_MAX_VRAMI_HANDLE (16)
50:
#define AG903_PGP_MGR_MAX_FRAME_CALC_HANDLE (16)
51:
#define AG903_PGP_MGR_MAX_DGC_LUT (16)
52:
#endif
53:
54:
55:
#define AG903_PGP_MGR_PIPELINE_NUM (6)
56:
57:
#define AG903_PGP_MGR_VRAMI_NUM (4)
58:
59:
#define AG903_PGP_MGR_CALC_PIPELINE_NUM (2)
60:
61:
62:
#define AG903_PGP_MGR_CALC_PIPELINE0 (0)
63:
64:
#define AG903_PGP_MGR_CALC_PIPELINE1 (1)
65:
66:
#define AG903_PGP_MGR_INPUT_PIPELINE0 (2)
67:
68:
#define AG903_PGP_MGR_INPUT_PIPELINE1 (3)
69:
70:
#define AG903_PGP_MGR_FRAME_PIPELINE0 (4)
71:
72:
#define AG903_PGP_MGR_FRAME_PIPELINE1 (5)
73:
74:
75:
#define AG903_PGP_MGR_PIPELINE_CMD_MAX_QUEUE (4)
76:
77:
#define AG903_PGP_MGR_VI_CMD_MAX_QUEUE (4)
78:
79:
#define AG903_PGP_MGR_LBL_CMD_MAX_QUEUE (4)
80:
81:
#define AG903_PGP_MGR_HGM_CMD_MAX_QUEUE (4)
82:
83:
84:
#define AG903_PGP_MGR_PIPELINE_HANDLE_ID (0x11223344)
85:
86:
#define AG903_PGP_MGR_VRAM_INPUT_HANDLE_ID (0x55667788)
87:
88:
#define AG903_PGP_MGR_FRAME_CALC_HANDLE_ID (0x99AABBCC)
89:
90:
#define AG903_PGP_MGR_DGC_LUT_ID (0xDDEEFF00)
91:
92:
93:
#define AG903_PGP_MGR_CMD_NONE (0x0)
94:
95:
#define AG903_PGP_MGR_CMD_EXEC (0x1)
96:
97:
#define AG903_PGP_MGR_CMD_EXEC_CONTINUE (0x2)
98:
99:
#define AG903_PGP_MGR_CMD_TRIG (0x3)
100:
101:
#define AG903_PGP_MGR_CMD_TRIG_CONTINUE (0x4)
102:
103:
#define AG903_PGP_MGR_CMD_IDLE (0x8)
104:
105:
#define AG903_PGP_MGR_CMD_RESET_TIMESTAMP_CNT (0x9)
106:
107:
#define AG903_PGP_MGR_CMD_RESET_FRAME_CNT (0xA)
108:
109:
#define AG903_PGP_MGR_CMD_RESET_INTR_CNT (0xB)
110:
111:
#define AG903_PGP_MGR_CMD_FORCE_QUIT (0xF)
112:
113:
114:
#define AG903_PGP_MGR_INTR_CTRL_FIELD_ODD (0x1)
115:
116:
#define AG903_PGP_MGR_INTR_CTRL_FIELD_EVEN (0x2)
117:
118:
#define AG903_PGP_MGR_INTR_CTRL_FIELD_ODD_EVEN (0x3)
119:
120:
121:
#define AG903_PGP_MGR_INTR_CTRL_MAX_FRAME_CNT (16)
122:
123:
124:
#define AG903_PGP_MGR_INTR_CTRL_MAX_INPUT_LINE (8191)
125:
126:
#define AG903_PGP_MGR_INTR_CTRL_MAX_OUTPUT_LINE (4095)
127:
128:
129:
#define AG903_PGP_MGR_STATE_IDLE (0x0)
130:
131:
#define AG903_PGP_MGR_STATE_1SHOT (0x1)
132:
133:
#define AG903_PGP_MGR_STATE_CONTINUE (0x2)
134:
135:
#define AG903_PGP_MGR_STATE_TRIG (0x3)
136:
137:
#define AG903_PGP_MGR_STATE_TRIG_CONTINUE (0x4)
138:
139:
#define AG903_PGP_MGR_STATE_FORCE_QUIT (0xF)
140:
141:
#define AG903_PGP_MGR_SUBSTATE_TRIG_WAIT (0x1)
142:
143:
#define AG903_PGP_MGR_SUBSTATE_VSYNC_WAIT (0x2)
144:
145:
#define AG903_PGP_MGR_SUBSTATE_EXEC (0x3)
146:
147:
148:
#define AG903_PGP_MGR_TRIG_CTRL_FIELD_ODD (0x1)
149:
150:
#define AG903_PGP_MGR_TRIG_CTRL_FIELD_EVEN (0x2)
151:
152:
#define AG903_PGP_MGR_TRIG_CTRL_FIELD_ODD_EVEN (0x3)
153:
154:
155:
#define AG903_PGP_MGR_TRIG_CTRL_MAX_FRAME_CNT (16)
156:
157:
158:
#define AG903_PGP_MGR_TRIG_CTRL_MAX_INPUT_LINE (8191)
159:
160:
#define AG903_PGP_MGR_TRIG_CTRL_MAX_OUTPUT_LINE (4095)
161:
162:
163:
#define AG903_PGP_MGR_MAX_INPUT_HSYNC_DELAY (0x7)
164:
165:
166:
#define AG903_PGP_MGR_INPUT_MD_VSYNC (0)
167:
168:
#define AG903_PGP_MGR_INPUT_MD_ODD_VSYNC (1)
169:
170:
171:
#define AG903_PGP_MGR_INPUT_TIME_CLK0 (0)
172:
173:
#define AG903_PGP_MGR_INPUT_TIME_CLK1 (1)
174:
175:
176:
#define AG903_PGP_MGR_MAX_TRIG_TIMER_CHANNEL (7)
177:
178:
179:
#define AG903_PGP_MGR_INPUT_PORT_VIA_0 (0)
180:
181:
#define AG903_PGP_MGR_INPUT_PORT_VIA_1 (1)
182:
183:
#define AG903_PGP_MGR_INPUT_PORT_VIA_2 (2)
184:
185:
#define AG903_PGP_MGR_INPUT_PORT_VIA_3 (3)
186:
187:
#define AG903_PGP_MGR_INPUT_PORT_VID_0 (4)
188:
189:
#define AG903_PGP_MGR_INPUT_PORT_VID_1 (5)
190:
191:
#define AG903_PGP_MGR_INPUT_PORT_VID_2 (6)
192:
193:
#define AG903_PGP_MGR_INPUT_PORT_VID_3 (7)
194:
195:
#define AG903_PGP_MGR_INPUT_PORT_VRAM_0 (8)
196:
197:
#define AG903_PGP_MGR_INPUT_PORT_VRAM_1 (9)
198:
199:
200:
#define AG903_PGP_MGR_INPUT_FMT_RGB888 (0x0)
201:
202:
#define AG903_PGP_MGR_INPUT_FMT_RGB565 (0x1)
203:
204:
#define AG903_PGP_MGR_INPUT_FMT_YCBCR444 (0x2)
205:
206:
#define AG903_PGP_MGR_INPUT_FMT_YCBCR422_WO_IP (0x3)
207:
208:
#define AG903_PGP_MGR_INPUT_FMT_YCBCR422_W_IP (0x4)
209:
210:
#define AG903_PGP_MGR_INPUT_FMT_CLUT8 (0x5)
211:
212:
#define AG903_PGP_MGR_INPUT_FMT_CLUT1 (0x6)
213:
214:
215:
#define AG903_PGP_MGR_IFCODR_FRAME_TO_OTHER (0x0)
216:
217:
#define AG903_PGP_MGR_IFCODR_OTHER_TO_FRAME (0x1)
218:
219:
220:
#define AG903_PGP_MGR_MAX_INPUT_SIZE (4096)
221:
222:
223:
#define AG903_PGP_MGR_MAX_INPUT_POS (8191)
224:
225:
226:
#define AG903_PGP_MGR_MAX_OUTPUT_PAD (255)
227:
228:
229:
#define AG903_PGP_MGR_LIMIT_NONE (0x0)
230:
231:
#define AG903_PGP_MGR_LIMIT_0_255 (0x0)
232:
233:
#define AG903_PGP_MGR_LIMIT_16_235_AND_240 (0x1)
234:
235:
#define AG903_PGP_MGR_LIMIT_M128_127 (0x2)
236:
237:
238:
#define AG903_PGP_MGR_SCAN_PROGRESSIVE (0x0)
239:
240:
#define AG903_PGP_MGR_SCAN_INTERLACE (0x1)
241:
242:
243:
#define AG903_PGP_MGR_ADDR_DIMENTION_1 (0x0)
244:
245:
#define AG903_PGP_MGR_ADDR_DIMENTION_2 (0x1)
246:
247:
248:
#define AG903_PGP_MGR_OUTPUT_MAX_STRIDE_BYTE (16384)
249:
250:
251:
#define AG903_PGP_MGR_OUTPUT_FRAME_SAVE_ODD (0x0)
252:
253:
#define AG903_PGP_MGR_OUTPUT_FRAME_SAVE_EVEN (0x1)
254:
255:
#define AG903_PGP_MGR_OUTPUT_FRAME_SAVE_IGNORE_FIELD (0x2)
256:
257:
#define AG903_PGP_MGR_OUTPUT_FRAME_SAVE_FIELD (0x3)
258:
259:
#define AG903_PGP_MGR_OUTPUT_FRAME_SAVE_WEAVE (0x4)
260:
261:
262:
#define AG903_PGP_MGR_OUTPUT_BMU_NONE (0x0)
263:
264:
#define AG903_PGP_MGR_OUTPUT_BMU_ENABLE (0x1)
265:
266:
#define AG903_PGP_MGR_OUTPUT_BMU_ENABLE_EVEN (0x2)
267:
268:
269:
#define AG903_PGP_MGR_OUTPUT_FMT_RGB888_TO_RGB888_32BIT (0x0)
270:
271:
#define AG903_PGP_MGR_OUTPUT_FMT_RGB888_TO_RGB888_24BIT (0x1)
272:
273:
#define AG903_PGP_MGR_OUTPUT_FMT_RGB888_TO_RGB565 (0x2)
274:
275:
#define AG903_PGP_MGR_OUTPUT_FMT_RGB888_TO_ARGB1555 (0x3)
276:
277:
#define AG903_PGP_MGR_OUTPUT_FMT_RGB888_TO_ARGB4444 (0x4)
278:
279:
#define AG903_PGP_MGR_OUTPUT_FMT_RGB888_TO_RGB888_SEP (0x5)
280:
281:
#define AG903_PGP_MGR_OUTPUT_FMT_YCBCR444_TO_YCBCR444_32BIT (0x8)
282:
283:
#define AG903_PGP_MGR_OUTPUT_FMT_YCBCR444_TO_YCBCR444_24BIT (0x9)
284:
285:
#define AG903_PGP_MGR_OUTPUT_FMT_YCBCR444_TO_YCBCR422 (0xA)
286:
287:
#define AG903_PGP_MGR_OUTPUT_FMT_YCBCR444_TO_YCBCR444_SEP (0xB)
288:
289:
#define AG903_PGP_MGR_OUTPUT_FMT_CLUT8_TO_CLUT8 (0xE)
290:
291:
#define AG903_PGP_MGR_OUTPUT_FMT_CLUT1_TO_CLUT1 (0xF)
292:
293:
294:
#define AG903_PGP_MGR_INPUT_INTERLACE_EPOS_ZERO (0x0)
295:
296:
#define AG903_PGP_MGR_INPUT_INTERLACE_EPOS_ONE (0x1)
297:
298:
#define AG903_PGP_MGR_INPUT_INTERLACE_OPOS_ZERO (0x0)
299:
300:
#define AG903_PGP_MGR_INPUT_INTERLACE_OPOS_ONE (0x1)
301:
302:
303:
#define AG903_PGP_MGR_MAX_IP_BLANK (255)
304:
305:
306:
#define AG903_PGP_MGR_MAX_COLOR_SPACE_SHIFT (15)
307:
308:
309:
#define AG903_PGP_MGR_FILTER_NEAREST (0x0)
310:
311:
#define AG903_PGP_MGR_FILTER_LINEAR (0x1)
312:
313:
314:
#define AG903_PGP_MGR_MAX_SCALING_VALUE (16)
315:
316:
317:
#define AG903_PGP_MGR_CSC_YUV_BT_601_FULL_TO_RGB (0)
318:
319:
#define AG903_PGP_MGR_CSC_RGB_TO_YUV_BT_601_FULL (1)
320:
321:
#define AG903_PGP_MGR_CSC_YUV_BT_601_LIMIT_TO_RGB (2)
322:
323:
#define AG903_PGP_MGR_CSC_RGB_TO_YUV_BT_601_LIMIT (3)
324:
325:
#define AG903_PGP_MGR_CSC_YUV_BT_709_FULL_TO_RGB (4)
326:
327:
#define AG903_PGP_MGR_CSC_RGB_TO_YUV_BT_709_FULL (5)
328:
329:
#define AG903_PGP_MGR_CSC_YUV_BT_709_LIMIT_TO_RGB (6)
330:
331:
#define AG903_PGP_MGR_CSC_RGB_TO_YUV_BT_709_LIMIT (7)
332:
333:
334:
#define AG903_PGP_MGR_MAX_SPF_SHIFT (15)
335:
336:
337:
#define AG903_PGP_MGR_SPF_BORDER_COLOR (0x0)
338:
339:
#define AG903_PGP_MGR_SPF_BORDER_NEIGHBOR (0x1)
340:
341:
342:
#define AG903_PGP_MGR_CONVERT_HSV (0x0)
343:
344:
#define AG903_PGP_MGR_CONVERT_HLS (0x1)
345:
346:
347:
#define AG903_PGP_MGR_HGM_CMD_NONE (0x0)
348:
349:
#define AG903_PGP_MGR_HGM_CMD_EXEC (0x1)
350:
351:
#define AG903_PGP_MGR_HGM_CMD_EXEC_WO_VRAM (0x2)
352:
353:
#define AG903_PGP_MGR_HGM_CMD_DELETE (0x4)
354:
355:
#define AG903_PGP_MGR_HGM_CMD_RESET (0x7)
356:
357:
358:
#define AG903_PGP_MGR_HGM_EXC_NONE (0x0)
359:
360:
#define AG903_PGP_MGR_HGM_EXC_0 (0x1)
361:
362:
#define AG903_PGP_MGR_HGM_EXC_0_16 (0x2)
363:
364:
#define AG903_PGP_MGR_HGM_EXC_0_WO_R (0x3)
365:
366:
367:
#define AG903_PGP_MGR_MAX_HGM_OUTPUT_INVALIDATE (15)
368:
369:
370:
#define AG903_PGP_MGR_MAX_HGM_THR (15)
371:
372:
373:
#define AG903_PGP_MGR_MAX_HGM_SHIFT (15)
374:
375:
376:
#define AG903_PGP_MGR_MAX_HGM_INC (15)
377:
378:
379:
#define AG903_PGP_MGR_MAX_HGM_SIZE (1024)
380:
381:
382:
#define AG903_PGP_MGR_MAX_HGM_POS (4095)
383:
384:
385:
#define AG903_PGP_MGR_THR_OUT_SEL_RGB (0x0)
386:
387:
#define AG903_PGP_MGR_THR_OUT_SEL_MUX8 (0x1)
388:
389:
#define AG903_PGP_MGR_THR_OUT_SEL_SPF1 (0x2)
390:
391:
#define AG903_PGP_MGR_THR_OUT_SEL_LBL (0x3)
392:
393:
394:
#define AG903_PGP_MGR_THR_CLUT8_OUT_B (0x0)
395:
396:
#define AG903_PGP_MGR_THR_CLUT8_OUT_G (0x1)
397:
398:
#define AG903_PGP_MGR_THR_CLUT8_OUT_R (0x2)
399:
400:
401:
#define AG903_PGP_MGR_THR_CHANNEL_B (0)
402:
403:
#define AG903_PGP_MGR_THR_CHANNEL_G (1)
404:
405:
#define AG903_PGP_MGR_THR_CHANNEL_R (2)
406:
407:
408:
#define AG903_PGP_MGR_THR_8BIT_TYPE_THR_BIN (0x0)
409:
410:
#define AG903_PGP_MGR_THR_8BIT_TYPE_THR_BIN_INV (0x1)
411:
412:
#define AG903_PGP_MGR_THR_8BIT_TYPE_TRU (0x2)
413:
414:
#define AG903_PGP_MGR_THR_8BIT_TYPE_THR_ZERO (0x3)
415:
416:
#define AG903_PGP_MGR_THR_8BIT_TYPE_THR_ZERO_INV (0x4)
417:
418:
#define AG903_PGP_MGR_THR_8BIT_TYPE_THR_BIN_EXT (0x8)
419:
420:
#define AG903_PGP_MGR_THR_8BIT_TYPE_THR_BIN_INV_EXT (0x9)
421:
422:
#define AG903_PGP_MGR_THR_8BIT_TYPE_TRU_EXT (0xA)
423:
424:
#define AG903_PGP_MGR_THR_8BIT_TYPE_THR_ZERO_EXT (0xB)
425:
426:
#define AG903_PGP_MGR_THR_8BIT_TYPE_THR_ZERO_INV_EXT (0xC)
427:
428:
429:
#define AG903_PGP_MGR_LBL_CMD_NONE (0x0)
430:
431:
#define AG903_PGP_MGR_LBL_CMD_EXEC (0x1)
432:
433:
#define AG903_PGP_MGR_LBL_CMD_DELETE (0x4)
434:
435:
#define AG903_PGP_MGR_LBL_CMD_RESET (0x7)
436:
437:
438:
#define AG903_PGP_MGR_MAX_LBL_OUTPUT_VALIDATE (16)
439:
440:
#define AG903_PGP_MGR_MAX_LBL_OUTPUT_INVALIDATE (15)
441:
442:
443:
#define AG903_PGP_MGR_LBL_CNCT_8 (0x0)
444:
445:
#define AG903_PGP_MGR_LBL_CNCT_4 (0x1)
446:
447:
448:
#define AG903_PGP_MGR_MAX_LBL_FLUSH_THR (255)
449:
450:
451:
#define AG903_PGP_MGR_MAX_LBL_ID (255)
452:
453:
454:
#define AG903_PGP_MGR_MAX_LBL_VSIZE (1024)
455:
456:
457:
#define AG903_PGP_MGR_MAX_LBL_HSIZE (640)
458:
459:
460:
#define AG903_PGP_MGR_MAX_LBL_POS (4095)
461:
462:
463:
#define AG903_PGP_MGR_IFC_SLAVE_VRAM_UI (0x0)
464:
465:
#define AG903_PGP_MGR_IFC_SLAVE_VRAM_I (0x1)
466:
467:
#define AG903_PGP_MGR_IFC_SLAVE_PIPELINE (0x2)
468:
469:
470:
#define AG903_PGP_MGR_MAX_IFC_GAIN_SHIFT (7)
471:
472:
473:
#define AG903_PGP_MGR_IFC_LIMIT_0_255 (0x0)
474:
475:
#define AG903_PGP_MGR_IFC_LIMIT_16_235_AND_240 (0x1)
476:
477:
#define AG903_PGP_MGR_IFC_LIMIT_M128_127 (0x2)
478:
479:
480:
#define AG903_PGP_MGR_IFC_OP_AND (0x0)
481:
482:
#define AG903_PGP_MGR_IFC_OP_OR (0x1)
483:
484:
#define AG903_PGP_MGR_IFC_OP_XOR (0x2)
485:
486:
#define AG903_PGP_MGR_IFC_OP_ADD (0x3)
487:
488:
#define AG903_PGP_MGR_IFC_OP_ABS (0x4)
489:
490:
491:
#define AG903_PGP_MGR_VI_CMD_NONE (0x0)
492:
493:
#define AG903_PGP_MGR_VI_CMD_EXEC (0x1)
494:
495:
#define AG903_PGP_MGR_VI_CMD_EXEC_CONTINUE (0x2)
496:
497:
#define AG903_PGP_MGR_VI_CMD_IDLE (0x8)
498:
499:
#define AG903_PGP_MGR_VI_CMD_RESET (0xF)
500:
501:
#define AG903_PGP_MGR_VI_CMD_FORCE_QUIT (0xF)
502:
503:
504:
#define AG903_PGP_MGR_VI_BMU_NONE (0x0)
505:
506:
#define AG903_PGP_MGR_VI_BMU_ENABLE (0x1)
507:
508:
#define AG903_PGP_MGR_VI_BMU_ENABLE_ODD (0x2)
509:
510:
511:
#define AG903_PGP_MGR_VI_FRAME_READ_ODD (0x0)
512:
513:
#define AG903_PGP_MGR_VI_FRAME_READ_EVEN (0x1)
514:
515:
#define AG903_PGP_MGR_VI_FRAME_READ_FIELD (0x2)
516:
517:
#define AG903_PGP_MGR_VI_FRAME_READ_WEAVE (0x4)
518:
519:
520:
#define AG903_PGP_MGR_MAX_VI_DIV (256)
521:
522:
523:
#define AG903_PGP_MGR_MAX_VI_VALIDATE (16)
524:
525:
#define AG903_PGP_MGR_MAX_VI_INVALIDATE (15)
526:
527:
528:
#define AG903_PGP_MGR_VI_FMT_RGB888_32 (0x0)
529:
530:
#define AG903_PGP_MGR_VI_FMT_RGB888_24 (0x1)
531:
532:
#define AG903_PGP_MGR_VI_FMT_RGB565 (0x2)
533:
534:
#define AG903_PGP_MGR_VI_FMT_YCBCR444_32 (0x8)
535:
536:
#define AG903_PGP_MGR_VI_FMT_YCBCR444_24 (0x9)
537:
538:
#define AG903_PGP_MGR_VI_FMT_YCBCR422 (0xA)
539:
540:
#define AG903_PGP_MGR_VI_FMT_CLUT8 (0xE)
541:
542:
#define AG903_PGP_MGR_VI_FMT_CLUT1 (0xF)
543:
544:
545:
#define AG903_PGP_MGR_VI_MAX_STRIDE_BYTE (16384)
546:
547:
548:
#define AG903_PGP_MGR_MAX_VI_H_PULES_WIDTH (4096)
549:
550:
551:
#define AG903_PGP_MGR_MAX_VI_H_FRONT_PORCH (4096)
552:
553:
554:
#define AG903_PGP_MGR_MAX_VI_H_BACK_PORCH (4096)
555:
556:
557:
#define AG903_PGP_MGR_MAX_VI_V_PULES_WIDTH (4096)
558:
559:
560:
#define AG903_PGP_MGR_MAX_VI_V_FRONT_PORCH (4096)
561:
562:
563:
#define AG903_PGP_MGR_MAX_VI_V_BACK_PORCH (4096)
564:
565:
566:
#define AG903_PGP_MGR_MAX_VI_H_SIZE (4096)
567:
568:
#define AG903_PGP_MGR_MAX_VI_V_SIZE (4096)
569:
570:
571:
#define AG903_PGP_MGR_INTR_INPUT (0)
572:
573:
#define AG903_PGP_MGR_INTR_OUTPUT (1)
574:
575:
#define AG903_PGP_MGR_INTR_DONE (2)
576:
577:
#define AG903_PGP_MGR_INTR_VRAM_ERROR (3)
578:
579:
#define AG903_PGP_MGR_INTR_LBL_ERROR (4)
580:
581:
#define AG903_PGP_MGR_INTR_HGM_ERROR (5)
582:
583:
#define AG903_PGP_MGR_INTR_ND (6)
584:
585:
#define AG903_PGP_MGR_INTR_IFC_OVF (7)
586:
587:
#define AG903_PGP_MGR_INTR_INPUT_LINE (8)
588:
589:
#define AG903_PGP_MGR_INTR_OUTPUT_LINE (9)
590:
591:
#define AG903_PGP_MGR_INTR_LBL_DONE (10)
592:
593:
#define AG903_PGP_MGR_INTR_HGM_DONE (11)
594:
595:
596:
#define AG903_PGP_MGR_CONFIG_DIRTY_NUM (29)
597:
598:
#define AG903_PGP_MGR_CONFIG_INTR_CTRL (0)
599:
600:
#define AG903_PGP_MGR_CONFIG_TRIG_CTRL (1)
601:
602:
#define AG903_PGP_MGR_CONFIG_INPUT_TRIG_CH (2)
603:
604:
#define AG903_PGP_MGR_CONFIG_OUTPUT_CTRL (3)
605:
606:
#define AG903_PGP_MGR_CONFIG_OUTPUT_COLOR_MASK (4)
607:
608:
#define AG903_PGP_MGR_CONFIG_OUTPUT_BASE_ADDR (5)
609:
610:
#define AG903_PGP_MGR_CONFIG_IP_CONV (6)
611:
612:
#define AG903_PGP_MGR_CONFIG_COLOR_SPACE (7)
613:
614:
#define AG903_PGP_MGR_CONFIG_SCALING (8)
615:
616:
#define AG903_PGP_MGR_CONFIG_SP_FILTER (9)
617:
618:
#define AG903_PGP_MGR_CONFIG_HSVHSL_CONV (10)
619:
620:
#define AG903_PGP_MGR_CONFIG_HGM_PARAM (11)
621:
622:
#define AG903_PGP_MGR_CONFIG_HGM_SIZE (12)
623:
624:
#define AG903_PGP_MGR_CONFIG_HGM_POS (13)
625:
626:
#define AG903_PGP_MGR_CONFIG_HGM_BASE_ADDR (14)
627:
628:
#define AG903_PGP_MGR_CONFIG_THR (15)
629:
630:
#define AG903_PGP_MGR_CONFIG_THR_HSCHLS_CONV (16)
631:
632:
#define AG903_PGP_MGR_CONFIG_THR_COLOR_SPACE (17)
633:
634:
#define AG903_PGP_MGR_CONFIG_THR_MASK (18)
635:
636:
#define AG903_PGP_MGR_CONFIG_THR_8BIT (19)
637:
638:
#define AG903_PGP_MGR_CONFIG_THR_1BIT (20)
639:
640:
#define AG903_PGP_MGR_CONFIG_THR_SP_FILTER_1BIT (21)
641:
642:
#define AG903_PGP_MGR_CONFIG_LBL_PARAM (22)
643:
644:
#define AG903_PGP_MGR_CONFIG_LBL_SIZE (23)
645:
646:
#define AG903_PGP_MGR_CONFIG_LBL_POS (24)
647:
648:
#define AG903_PGP_MGR_CONFIG_LBL_BASE_ADDR (25)
649:
650:
#define AG903_PGP_MGR_CONFIG_IFC_PARAM (26)
651:
652:
#define AG903_PGP_MGR_CONFIG_IFC_GAIN (27)
653:
654:
#define AG903_PGP_MGR_CONFIG_INTR_ENABLE (28)
655:
656:
#define AG903_PGP_MGR_CONFIG_VI_DIRTY_NUM (4)
657:
658:
#define AG903_PGP_MGR_CONFIG_VI_CTRL (0)
659:
660:
#define AG903_PGP_MGR_CONFIG_VI_CTRL1 (1)
661:
662:
#define AG903_PGP_MGR_CONFIG_VI_BASE (2)
663:
664:
#define AG903_PGP_MGR_CONFIG_VI_ADJUST_FRAME (3)
665:
666:
667:
typedef void (*
PGPMGRCALLBACK) (int32_t id,
void *handle);
668:
669:
672:
typedef struct _AG903_PgpMgrDGCLookupTable {
673: uint32_t id;
674: _Bool is_used;
675: uint32_t ref_cnt;
676: uint8_t lut_data[3][256];
677: }
AG903_PgpMgrDGCLookupTable;
678:
679:
680:
683:
typedef struct _AG903_PgpMgrPipelineHandle {
684: uint32_t id;
685: int32_t pipeline_no;
686: _Bool is_used;
687: _Bool is_assign;
688: _Bool is_dirty;
689: _Bool is_config_dirty[
AG903_PGP_MGR_CONFIG_DIRTY_NUM];
690: _Bool is_used_frame_calc;
691: _Bool dgc_lut_dirty;
692:
AG903_PgpMgrDGCLookupTable *dgc_lut;
693:
void *input_handle;
694: uint32_t input_intr_field;
695: uint32_t input_intr_fcnt;
696: uint32_t input_intr_line;
697: uint32_t output_intr_field;
698: uint32_t output_intr_fcnt;
699: uint32_t output_intr_line;
700: _Bool intr_nd_enable;
701: _Bool intr_voicpl_enable;
702: _Bool intr_vooflw_enable;
703: _Bool intr_ifcofs_enable;
704: _Bool intr_ifcofm_enable;
705: _Bool intr_lblcrpt_enable;
706: _Bool intr_lblcpl_enable;
707: _Bool intr_hgmicpl_enable;
708: _Bool intr_hgmcpl_enable;
709: _Bool intr_vsynco_enable;
710: _Bool intr_vlineo_enable;
711: _Bool intr_vsynci_enable;
712: _Bool intr_vlinei_enable;
713: uint32_t input_trig_field;
714: uint32_t input_trig_fcnt;
715: uint32_t input_trig_line;
716: uint32_t output_trig_field;
717: uint32_t output_trig_fcnt;
718: uint32_t output_trig_line;
719: _Bool trig_vsynco_enable;
720: _Bool trig_vlineo_enable;
721: _Bool trig_vsynci_enable;
722: _Bool trig_vlinei_enable;
723: uint32_t input_hsync_delay;
724: uint32_t input_mode;
725: uint32_t input_timer_clk;
726: uint32_t input_trig_timer_ch;
727: uint32_t input_port;
728: uint32_t input_format;
729: _Bool frame_out_enable;
730: uint32_t ifc_order;
731: _Bool ifc_enable;
732: _Bool thr_enable;
733: _Bool dgc_enable;
734: _Bool hsv1_enable;
735: _Bool spf_enable;
736: _Bool scale_enable;
737: _Bool csc1_enable;
738: _Bool nrf_enable;
739: _Bool hgm_enable;
740: _Bool lbl_enable;
741: uint32_t input_vsize;
742: uint32_t input_hsize;
743: _Bool input_epos;
744: _Bool input_opos;
745: uint32_t input_scan;
746: uint32_t input_vpos;
747: uint32_t input_hpos;
748: uint32_t output_pad;
749: uint32_t output_limit;
750: _Bool output_fai_enable;
751: _Bool output_dither_enable;
752: uint32_t output_bmu;
753: uint32_t output_scan;
754: uint32_t output_dim;
755: _Bool output_word_swap_enable;
756: _Bool output_hword_swap_enable;
757: _Bool output_1bit_swap_enable;
758: _Bool output_4bit_swap_enable;
759: uint32_t output_md;
760: uint32_t output_format;
761: _Bool output_red_enable;
762: _Bool output_green_enable;
763: _Bool output_blue_enable;
764: uint32_t output_base_addr;
765: uint32_t output_vram_stride;
766: uint32_t ipc_limit;
767: uint32_t ipc_blk_y;
768: uint32_t ipc_blk_c;
769: uint32_t csc1_limit;
770: uint32_t csc1_shift;
771: int32_t csc1_matrix[3][4];
772: uint32_t scale_limit;
773: uint32_t scale_mtd;
774: uint32_t scale_v_nmr;
775: uint32_t scale_v_dnm;
776: uint32_t scale_h_nmr;
777: uint32_t scale_h_dnm;
778: uint32_t spf_shift;
779: uint32_t spf_border_sel;
780: uint32_t spf_border_red;
781: uint32_t spf_border_green;
782: uint32_t spf_border_blue;
783: int32_t spf_coeff[9];
784: int32_t spf_offset;
785: uint32_t hsv_hls_sel;
786: uint32_t hgm_invalidate;
787: _Bool hgm_bmu;
788: uint32_t hgm_exc;
789: uint32_t hgm_thr;
790: uint32_t hgm_shift;
791: uint32_t hgm_vinc;
792: uint32_t hgm_hinc;
793: uint32_t hgm_vsize;
794: uint32_t hgm_hsize;
795: uint32_t hgm_vpos;
796: uint32_t hgm_hpos;
797: uint32_t hgm_addr;
798: uint32_t thr_limit;
799: _Bool thr_spf1_enable;
800: _Bool thr_msk_enable;
801: _Bool thr_csc2_enable;
802: _Bool thr_hsv2_enable;
803: _Bool thr_thr8bit_enable;
804: uint32_t thr_out_sel;
805: uint32_t thr_clut8_sel;
806: uint32_t thr_hsv_hls_sel;
807: uint32_t thr_csc2_limit;
808: uint32_t thr_csc2_shift;
809: int32_t thr_csc2_matrix[3][4];
810: uint32_t thr_msk_h[3];
811: uint32_t thr_msk_l[3];
812: uint32_t thr_msk_x[3];
813: uint32_t thr_msk_hmax[3];
814: uint32_t thr_msk_hmin[3];
815: uint32_t thr_msk_lmax[3];
816: uint32_t thr_msk_lmin[3];
817: uint32_t thr_thr8_prm_type[3];
818: uint32_t thr_thr8_prm_maxval[3];
819: uint32_t thr_thr8_prm_maxthr[3];
820: uint32_t thr_thr8_prm_minthr[3];
821: uint32_t thr_thr1_h;
822: uint32_t thr_thr1_l;
823: uint32_t thr_thr1_x;
824: uint32_t thr_thr1_hmax;
825: uint32_t thr_thr1_hmin;
826: uint32_t thr_thr1_lmax;
827: uint32_t thr_thr1_lmin;
828: int32_t thr_spf1_coeff[9];
829: int32_t thr_spf1_thr;
830: uint32_t lbl_valid;
831: uint32_t lbl_invalid;
832: uint32_t lbl_connect;
833: _Bool lbl_bmu;
834: uint32_t lbl_flush_thr;
835: uint32_t lbl_maxid;
836: uint32_t lbl_vsize;
837: uint32_t lbl_hsize;
838: uint32_t lbl_vpos;
839: uint32_t lbl_hpos;
840: uint32_t lbl_addr;
841: uint32_t ifc_scan;
842: uint32_t ifc_limit;
843: uint32_t ifc_slave_src;
844: uint32_t ifc_operation;
845: uint32_t ifc_slave_shift;
846: uint32_t ifc_master_shift;
847: int32_t ifc_slave_gain;
848: int32_t ifc_master_gain;
849:
PGPMGRCALLBACK intr_input_func;
850:
PGPMGRCALLBACK intr_output_func;
851:
PGPMGRCALLBACK intr_done_func;
852:
PGPMGRCALLBACK intr_vram_error_func;
853:
PGPMGRCALLBACK intr_lbl_error_func;
854:
PGPMGRCALLBACK intr_hgm_error_func;
855:
PGPMGRCALLBACK intr_nd_func;
856:
PGPMGRCALLBACK intr_ifc_ovf_func;
857:
PGPMGRCALLBACK intr_input_line_func;
858:
PGPMGRCALLBACK intr_output_line_func;
859:
PGPMGRCALLBACK intr_lbl_done_func;
860:
PGPMGRCALLBACK intr_hgm_done_func;
861: }
AG903_PgpMgrPipelineHandle;
862:
863:
864:
867:
typedef struct _AG903_PgpMgrVRAMInputHandle {
868: uint32_t id;
869: uint32_t ref_cnt;
870: int32_t port_no;
871: _Bool is_used;
872: _Bool is_dirty;
873: _Bool is_config_dirty[
AG903_PGP_MGR_CONFIG_VI_DIRTY_NUM];
874: _Bool fai_enable;
875: uint32_t bmu;
876: uint32_t scan;
877: uint32_t dim;
878: _Bool vram_word_swap_enable;
879: _Bool vram_hword_swap_enable;
880: _Bool vram_1bit_swap_enable;
881: _Bool vram_4bit_swap_enable;
882: uint32_t md;
883: uint32_t format;
884: uint32_t div;
885: uint32_t valid;
886: uint32_t invalid;
887: uint32_t addr;
888: uint32_t stride;
889: uint32_t h_pulse_width;
890: uint32_t h_front_porch;
891: uint32_t h_back_porch;
892: uint32_t h_frame_size;
893: _Bool adjust_even_vbp;
894: _Bool adjust_even_vfp;
895: _Bool adjust_odd_vbp;
896: _Bool adjust_odd_vfp;
897: uint32_t v_pulse_width;
898: uint32_t v_front_porch;
899: uint32_t v_back_porch;
900: uint32_t v_frame_size;
901: _Bool adjust_odd_vsize;
902: }
AG903_PgpMgrVRAMInputHandle;
903:
904:
905:
908:
typedef struct _AG903_PgpMgrFrameCalcHandle {
909: uint32_t id;
910: _Bool is_used;
911:
AG903_PgpMgrPipelineHandle *master_handle;
912:
void *slave_handle;
913: _Bool slave_pipeline;
914: }
AG903_PgpMgrFrameCalcHandle;
915:
916:
917:
918:
#ifndef AG903_PGP_COMMON_MALLOC
919:
927:
extern void *
ag903_pgp_common_malloc(uint32_t size);
928:
929:
#define AG903_PGP_COMMON_MALLOC ag903_pgp_common_malloc
930:
#endif
931:
932:
#ifndef AG903_PGP_COMMON_FREE
933:
938:
extern void ag903_pgp_common_free(
void *ptr);
939:
940:
#define AG903_PGP_COMMON_FREE ag903_pgp_common_free
941:
#endif
942:
943:
#ifndef AG903_PGP_MGR_TS_FORCE_DISABLE
944: int32_t
AG903_PgpMgrEnableTimeSharingPipeline(_Bool enable);
945:
#endif
946: int32_t
AG903_PgpMgrGetPipelineHandle(int32_t num,
AG903_PgpMgrPipelineHandle **handles);
947: int32_t
AG903_PgpMgrReleasePipelineHandle(
AG903_PgpMgrPipelineHandle *handle);
948: int32_t
AG903_PgpMgrAssignPipeline(
void *handle);
949: int32_t
AG903_PgpMgrForceAssignPipeline(
void *handle, uint32_t pipeline);
950: int32_t
AG903_PgpMgrReleaseAssignment(
void *handle);
951: int32_t
AG903_PgpMgrCheckFunctionValidation(
AG903_PgpMgrPipelineHandle *handle, uint32_t pipeline);
952: int32_t
AG903_PgpMgrExecPipeline(
void *handle, uint32_t cmd);
953: int32_t
AG903_PgpMgrSetIntrCallbackFunc(
AG903_PgpMgrPipelineHandle *handle, uint32_t type,
void (*func)(int32_t id,
void *handle));
954: int32_t
AG903_PgpMgrSetConfigIntrCtrl(
AG903_PgpMgrPipelineHandle *handle, uint32_t input_field, uint32_t input_fcnt, uint32_t input_line, uint32_t output_field, uint32_t output_fcnt, uint32_t output_line);
955: int32_t
AG903_PgpMgrGetPipelineStatus(
AG903_PgpMgrPipelineHandle *handle, uint32_t *blank, _Bool *is_vram_out, uint32_t *queue_cnt, uint32_t *sub_status, uint32_t *status);
956: int32_t
AG903_PgpMgrEnableParamTrigCtrl(
AG903_PgpMgrPipelineHandle *handle, _Bool vlinei_enable, _Bool vsynci_enable, _Bool vlineo_enable, _Bool vsynco_enable);
957: int32_t
AG903_PgpMgrSetConfigTrigCtrl(
AG903_PgpMgrPipelineHandle *handle, uint32_t input_field, uint32_t input_fcnt, uint32_t input_line, uint32_t output_field, uint32_t output_fcnt, uint32_t output_line);
958: int32_t
AG903_PgpMgrSetParamInputHSyncDelay(
AG903_PgpMgrPipelineHandle *handle, uint32_t h_delay);
959: int32_t
AG903_PgpMgrSetParamInputMode(
AG903_PgpMgrPipelineHandle *handle, uint32_t md);
960: int32_t
AG903_PgpMgrSetParamInputTimeCLK(
AG903_PgpMgrPipelineHandle *handle, uint32_t tick);
961: int32_t
AG903_PgpMgrSetConfigInputTrigChannel(
AG903_PgpMgrPipelineHandle *handle, uint32_t timer_ch);
962: int32_t
AG903_PgpMgrSetInputPort(
AG903_PgpMgrPipelineHandle *handle,
void *src);
963: int32_t
AG903_PgpMgrSetParamInputFormat(
AG903_PgpMgrPipelineHandle *handle, uint32_t format);
964: int32_t
AG903_PgpMgrSetParamInputSize(
AG903_PgpMgrPipelineHandle *handle, uint32_t vsize, uint32_t hsize);
965: int32_t
AG903_PgpMgrSetParamInputPosition(
AG903_PgpMgrPipelineHandle *handle, uint32_t vpos, uint32_t hpos);
966: int32_t
AG903_PgpMgrSetParamInputScan(
AG903_PgpMgrPipelineHandle *handle, uint32_t scan, _Bool epos,_Bool opos);
967: int32_t
AG903_PgpMgrSetConfigOutputFramePadding(
AG903_PgpMgrPipelineHandle *handle, uint32_t pad);
968: int32_t
AG903_PgpMgrSetConfigOutputLimit(
AG903_PgpMgrPipelineHandle *handle, uint32_t limit);
969: int32_t
AG903_PgpMgrEnableConfigOutputFrameInfo(
AG903_PgpMgrPipelineHandle *handle, _Bool enable);
970: int32_t
AG903_PgpMgrEnableConfigOutputDither(
AG903_PgpMgrPipelineHandle *handle, _Bool enable);
971: int32_t
AG903_PgpMgrSetParamOutputScan(
AG903_PgpMgrPipelineHandle *handle, uint32_t scan);
972: int32_t
AG903_PgpMgrSetParamOutputAddrDim(
AG903_PgpMgrPipelineHandle *handle, uint32_t dim);
973: int32_t
AG903_PgpMgrSetConfigOutputDataSwap(
AG903_PgpMgrPipelineHandle *handle, _Bool word, _Bool hword, _Bool four_bit, _Bool one_bit);
974: int32_t
AG903_PgpMgrSetConfigOutputInterlaceFrame(
AG903_PgpMgrPipelineHandle *handle, uint32_t frame_save);
975: int32_t
AG903_PgpMgrSetParamOutputBMU(
AG903_PgpMgrPipelineHandle *handle, uint32_t bmu);
976: int32_t
AG903_PgpMgrSetParamOutputFormat(
AG903_PgpMgrPipelineHandle *handle, uint32_t format);
977: int32_t
AG903_PgpMgrEnableConfigOutputColorMask(
AG903_PgpMgrPipelineHandle *handle, _Bool red, _Bool green, _Bool blue);
978: int32_t
AG903_PgpMgrSetConfigOutputBaseAddr(
AG903_PgpMgrPipelineHandle *handle,
void *addr);
979: int32_t
AG903_PgpMgrSetParamOutputStride(
AG903_PgpMgrPipelineHandle *handle, uint32_t stride);
980: int32_t
AG903_PgpMgrGetFrameInfo(
AG903_PgpMgrPipelineHandle *handle, uint32_t *tmstmp, uint32_t *field, uint32_t *port, uint32_t *fnum);
981: int32_t
AG903_PgpMgrSetParamFrameCalcOrder(
AG903_PgpMgrPipelineHandle *handle, uint32_t order);
982: int32_t
AG903_PgpMgrEnableParamThresholdOp(
AG903_PgpMgrPipelineHandle *handle, _Bool enable);
983: int32_t
AG903_PgpMgrEnableParamDGC(
AG903_PgpMgrPipelineHandle *handle, _Bool enable);
984: int32_t
AG903_PgpMgrEnableParamHSV(
AG903_PgpMgrPipelineHandle *handle, _Bool enable);
985: int32_t
AG903_PgpMgrEnableParamSpatialFilter(
AG903_PgpMgrPipelineHandle *handle, _Bool enable);
986: int32_t
AG903_PgpMgrEnableParamScaling(
AG903_PgpMgrPipelineHandle *handle, _Bool enable);
987: int32_t
AG903_PgpMgrEnableParamColorSpace(
AG903_PgpMgrPipelineHandle *handle, _Bool enable);
988: int32_t
AG903_PgpMgrEnableParamNRF(
AG903_PgpMgrPipelineHandle *handle, _Bool enable);
989: int32_t
AG903_PgpMgrEnableParamHistogram(
AG903_PgpMgrPipelineHandle *handle, _Bool enable);
990: int32_t
AG903_PgpMgrEnableParamLabeling(
AG903_PgpMgrPipelineHandle *handle, _Bool enable);
991: int32_t
AG903_PgpMgrSetConfigIPConversion(
AG903_PgpMgrPipelineHandle *handle, uint32_t limit, uint32_t blky, uint32_t blkc);
992: int32_t
AG903_PgpMgrSetConfigColorSpace(
AG903_PgpMgrPipelineHandle *handle, uint32_t limit, uint32_t shift, int32_t mtx[3][4]);
993: int32_t
AG903_PgpMgrSetConfigPresetColorSpace(
AG903_PgpMgrPipelineHandle *handle, uint32_t format);
994: int32_t
AG903_PgpMgrSetConfigScaling(
AG903_PgpMgrPipelineHandle *handle, uint32_t limit, uint32_t filter, uint32_t nmr_v, uint32_t dnm_v, uint32_t nmr_h, uint32_t dnm_h);
995: int32_t
AG903_PgpMgrSetConfigSpatialFilter(
AG903_PgpMgrPipelineHandle *handle, uint32_t shift, uint32_t border, uint32_t border_red, uint32_t border_green, uint32_t border_blue, int32_t coeff[9], int32_t offset);
996: int32_t
AG903_PgpMgrSetConfigHSVHLSConversion(
AG903_PgpMgrPipelineHandle *handle, uint32_t sel);
997: int32_t
AG903_PgpMgrExecHistogram(
AG903_PgpMgrPipelineHandle *handle, uint32_t cmd);
998: int32_t
AG903_PgpMgrSetConfigHistogramParameter(
AG903_PgpMgrPipelineHandle *handle, uint32_t inv, uint32_t exc, uint32_t thr, uint32_t shift, uint32_t v_inc, uint32_t h_inc);
999: int32_t
AG903_PgpMgrSetConfigHistogramSize(
AG903_PgpMgrPipelineHandle *handle, uint32_t vsize, uint32_t hsize);
1000: int32_t
AG903_PgpMgrSetConfigHistogramPosition(
AG903_PgpMgrPipelineHandle *handle, uint32_t vpos, uint32_t hpos);
1001: int32_t
AG903_PgpMgrSetConfigHistogramBaseAddr(
AG903_PgpMgrPipelineHandle *handle,
void *addr);
1002: int32_t
AG903_PgpMgrEnableParamHistogramBMU(
AG903_PgpMgrPipelineHandle *handle, _Bool enable);
1003: int32_t
AG903_PgpMgrGetHistogramParameter(
AG903_PgpMgrPipelineHandle *handle, uint32_t *most_r, uint32_t *max_r, uint32_t *min_r, uint32_t *most_g, uint32_t *max_g, uint32_t *min_g, uint32_t *most_b, uint32_t *max_b, uint32_t *min_b);
1004: int32_t
AG903_PgpMgrGetHistogramStatus(
AG903_PgpMgrPipelineHandle *handle, _Bool *is_init, _Bool *is_vram_out, _Bool *is_act, uint32_t *queue_cnt, uint32_t *exec_cmd);
1005: int32_t
AG903_PgpMgrSetConfigThreshold(
AG903_PgpMgrPipelineHandle *handle, uint32_t limit, _Bool spf, _Bool mask, _Bool csc, _Bool hsv_hls, _Bool thr8, uint32_t sel_out, uint32_t sel_clut8);
1006: int32_t
AG903_PgpMgrSetConfigThresholdHSVHLSConversion(
AG903_PgpMgrPipelineHandle *handle, uint32_t sel);
1007: int32_t
AG903_PgpMgrSetConfigThresholdColorSpace(
AG903_PgpMgrPipelineHandle *handle, uint32_t limit, uint32_t shift, int32_t mtx[3][4]);
1008: int32_t
AG903_PgpMgrSetConfigThresholdPresetColorSpace(
AG903_PgpMgrPipelineHandle *handle, uint32_t format);
1009: int32_t
AG903_PgpMgrSetConfigThresholdMask(
AG903_PgpMgrPipelineHandle *handle, uint32_t ch, uint32_t h, uint32_t l, uint32_t x, uint32_t hmax, uint32_t hmin, uint32_t lmax, uint32_t lmin);
1010: int32_t
AG903_PgpMgrSetConfigThreshold8Bit(
AG903_PgpMgrPipelineHandle *handle, uint32_t ch, uint32_t type, uint32_t maxval, uint32_t maxthr, uint32_t minthr);
1011: int32_t
AG903_PgpMgrSetConfigThreshold1Bit(
AG903_PgpMgrPipelineHandle *handle, uint32_t h, uint32_t l, uint32_t x, uint32_t hmax, uint32_t hmin, uint32_t lmax, uint32_t lmin);
1012: int32_t
AG903_PgpMgrSetConfigThresholdSpatialFilter1Bit(
AG903_PgpMgrPipelineHandle *handle, int32_t coeff[9], int32_t thr);
1013: int32_t
AG903_PgpMgrExecLabeling(
AG903_PgpMgrPipelineHandle *handle, uint32_t cmd);
1014: int32_t
AG903_PgpMgrSetConfigLabelingValidTime(
AG903_PgpMgrPipelineHandle *handle, uint32_t vld, uint32_t inv);
1015: int32_t
AG903_PgpMgrSetConfigLabelingParameter(
AG903_PgpMgrPipelineHandle *handle, uint32_t connect, uint32_t flush_thr, uint32_t max_id);
1016: int32_t
AG903_PgpMgrSetConfigLabelingSize(
AG903_PgpMgrPipelineHandle *handle, uint32_t vsize, uint32_t hsize);
1017: int32_t
AG903_PgpMgrSetConfigLabelingPosition(
AG903_PgpMgrPipelineHandle *handle, uint32_t vpos, uint32_t hpos);
1018: int32_t
AG903_PgpMgrSetConfigLabelingBaseAddr(
AG903_PgpMgrPipelineHandle *handle,
void *addr);
1019: int32_t
AG903_PgpMgrEnableParamLabelingBMU(
AG903_PgpMgrPipelineHandle *handle, _Bool enable);
1020: int32_t
AG903_PgpMgrGetLabelingStatus(
AG903_PgpMgrPipelineHandle *handle, uint32_t *id, _Bool *is_vram_out, _Bool *is_act, uint32_t *queue_cnt, uint32_t *exec_cmd);
1021: int32_t
AG903_PgpMgrAnalyzeLabelingTable(
void *src, uint32_t tbl_num,
void **dst);
1022: int32_t
AG903_PgpMgrReleaseLabelingTable(
void *dst);
1023: int32_t
AG903_PgpMgrGetFrameCalcHandle(
AG903_PgpMgrFrameCalcHandle **handle,
AG903_PgpMgrPipelineHandle *master,
void *slave);
1024: int32_t
AG903_PgpMgrReleaseFrameCalcHandle(
AG903_PgpMgrFrameCalcHandle *handle);
1025: int32_t
AG903_PgpMgrSetConfigFrameCalcParameter(
AG903_PgpMgrFrameCalcHandle *handle, uint32_t scan, uint32_t limit, uint32_t slave_src, uint32_t operation);
1026: int32_t
AG903_PgpMgrSetConfigFrameCalcGain(
AG903_PgpMgrFrameCalcHandle *handle, int32_t master_gain, int32_t slave_gain, uint32_t master_shift, uint32_t slave_shift);
1027: int32_t
AG903_PgpMgrGetVRAMInputHandle(int32_t num,
AG903_PgpMgrVRAMInputHandle **handles);
1028: int32_t
AG903_PgpMgrReleaseVRAMInputHandle(
AG903_PgpMgrVRAMInputHandle *handle);
1029: int32_t
AG903_PgpMgrExecVRAMInput(
AG903_PgpMgrVRAMInputHandle *handle, uint32_t cmd);
1030: int32_t
AG903_PgpMgrGetVRAMStatus(
AG903_PgpMgrVRAMInputHandle *handle, _Bool *is_vram_out, uint32_t *queue_cnt, uint32_t *exec_cmd);
1031: int32_t
AG903_PgpMgrSetParamVRAMInputBMU(
AG903_PgpMgrVRAMInputHandle *handle, uint32_t bmu);
1032: int32_t
AG903_PgpMgrSetParamVRAMInputScan(
AG903_PgpMgrVRAMInputHandle *handle, uint32_t scan);
1033: int32_t
AG903_PgpMgrSetParamVRAMInputAddrDim(
AG903_PgpMgrVRAMInputHandle *handle, uint32_t dim);
1034: int32_t
AG903_PgpMgrSetConfigVRAMDataSwap(
AG903_PgpMgrVRAMInputHandle *handle, _Bool word, _Bool hword, _Bool four_bit, _Bool one_bit);
1035: int32_t
AG903_PgpMgrSetConfigVRAMInterlaceFrame(
AG903_PgpMgrVRAMInputHandle *handle, uint32_t frame_read, _Bool fai);
1036: int32_t
AG903_PgpMgrSetConfigVRAMValidTime(
AG903_PgpMgrVRAMInputHandle *handle, uint32_t div, uint32_t vld, uint32_t inv);
1037: int32_t
AG903_PgpMgrSetParamVRAMFormat(
AG903_PgpMgrVRAMInputHandle *handle, uint32_t format);
1038: int32_t
AG903_PgpMgrSetConfigVRAMBaseAddr(
AG903_PgpMgrVRAMInputHandle *handle,
void *addr);
1039: int32_t
AG903_PgpMgrSetParamVRAMStride(
AG903_PgpMgrVRAMInputHandle *handle, uint32_t stride);
1040: int32_t
AG903_PgpMgrSetParamVRAMSyncSignal(
AG903_PgpMgrVRAMInputHandle *handle, uint32_t h_pw, uint32_t h_fp, uint32_t h_bp, uint32_t v_pw, uint32_t v_fp, uint32_t v_bp);
1041: int32_t
AG903_PgpMgrSetParamVRAMSize(
AG903_PgpMgrVRAMInputHandle *handle, uint32_t h_size, uint32_t v_size);
1042: int32_t
AG903_PgpMgrAdjustVRAMFrame(
AG903_PgpMgrVRAMInputHandle *handle, _Bool e_vbp, _Bool e_vfp, _Bool o_vbp, _Bool o_vfp, _Bool o_vsize);
1043: int32_t
AG903_PgpMgrCheckVRAMParameter(
AG903_PgpMgrVRAMInputHandle *vram,
AG903_PgpMgrPipelineHandle *pipeline);
1044: int32_t
AG903_PgpMgrSetJPEG(
AG903_PgpMgrPipelineHandle *handle);
1045: int32_t
AG903_PgpMgrEnableJPEG(_Bool enable);
1046: int32_t
AG903_PgpMgrGetDGCLUT(uint8_t red[256], uint8_t green[256], uint8_t blue[256],
AG903_PgpMgrDGCLookupTable **table);
1047: int32_t
AG903_PgpMgrReleaseDGCLUT(
AG903_PgpMgrDGCLookupTable *table);
1048: int32_t
AG903_PgpMgrSetConfigDGCLUT(
AG903_PgpMgrPipelineHandle *pipeline,
AG903_PgpMgrDGCLookupTable *dgc_lut);
1049:
1050:
1051:
#ifdef __cplusplus
1052: }
1053:
#endif
1054:
1055:
1056:
#endif
1057: