1: int32_t AG903_PgpMgrSetIntrCallbackFunc(
AG903_PgpMgrPipelineHandle *handle, uint32_t type,
void (*func)(int32_t id,
void *handle))
2: {
3:
4:
if ((handle == NULL) || (handle->id !=
AG903_PGP_MGR_PIPELINE_HANDLE_ID)) {
5:
return -
AG903_EINVAL;
6: }
7:
8:
switch (type) {
9:
case AG903_PGP_MGR_INTR_INPUT:
10: handle->intr_vsynci_enable = (func == NULL) ?
false :
true;
11: handle->intr_input_func = func;
12:
break;
13:
case AG903_PGP_MGR_INTR_OUTPUT:
14: handle->intr_vsynco_enable = (func == NULL) ?
false :
true;
15: handle->intr_output_func = func;
16:
break;
17:
case AG903_PGP_MGR_INTR_DONE:
18: handle->intr_vsynco_enable = (func == NULL) ?
false :
true;
19: handle->intr_done_func = func;
20:
break;
21:
case AG903_PGP_MGR_INTR_VRAM_ERROR:
22: handle->intr_voicpl_enable = handle->intr_vooflw_enable = (func == NULL) ?
false :
true;
23: handle->intr_vram_error_func = func;
24:
break;
25:
case AG903_PGP_MGR_INTR_LBL_ERROR:
26: handle->intr_lblcrpt_enable = (func == NULL) ?
false :
true;
27: handle->intr_lbl_error_func = func;
28:
break;
29:
case AG903_PGP_MGR_INTR_HGM_ERROR:
30: handle->intr_hgmicpl_enable = (func == NULL) ?
false :
true;
31: handle->intr_hgm_error_func = func;
32:
break;
33:
case AG903_PGP_MGR_INTR_ND:
34: handle->intr_nd_enable = (func == NULL) ?
false :
true;
35: handle->intr_nd_func = func;
36:
break;
37:
case AG903_PGP_MGR_INTR_IFC_OVF:
38: handle->intr_ifcofs_enable = handle->intr_ifcofm_enable = (func == NULL) ?
false :
true;
39: handle->intr_ifc_ovf_func = func;
40:
break;
41:
case AG903_PGP_MGR_INTR_INPUT_LINE:
42: handle->intr_vlinei_enable = (func == NULL) ?
false :
true;
43: handle->intr_input_line_func = func;
44:
break;
45:
case AG903_PGP_MGR_INTR_OUTPUT_LINE:
46: handle->intr_vlineo_enable = (func == NULL) ?
false :
true;
47: handle->intr_output_line_func = func;
48:
break;
49:
case AG903_PGP_MGR_INTR_LBL_DONE:
50: handle->intr_lblcpl_enable = (func == NULL) ?
false :
true;
51: handle->intr_lbl_done_func = func;
52:
break;
53:
case AG903_PGP_MGR_INTR_HGM_DONE:
54: handle->intr_hgmcpl_enable = (func == NULL) ?
false :
true;
55: handle->intr_hgm_done_func = func;
56:
break;
57:
default:
58:
return -
AG903_EINVAL;
59: }
60:
61: handle->is_dirty =
true;
62: handle->is_config_dirty[
AG903_PGP_MGR_CONFIG_INTR_ENABLE] =
true;
63:
return AG903_ENONE;
64: }