AG903ライブラリリファレンス
内容インデックスホーム
Body Source
本文ソース
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:
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.