1: 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)
2: {
3:
PGPPrmParamPGPnSTATE state;
4:
5:
6:
if ((handle == NULL) || (handle->id !=
AG903_PGP_MGR_PIPELINE_HANDLE_ID)) {
7:
return -
AG903_EINVAL;
8: }
9:
10:
if (handle->is_assign !=
true) {
11:
return -
AG903_EINVAL;
12: }
13:
14:
15:
AG903_PgpPrmGetPGPnSTATE(handle->pipeline_no, &state);
16:
17:
18:
if ((PgpContext.exec_pipeline[handle->pipeline_no] != handle) && (state.st !=
AG903_PGP_MGR_STATE_IDLE)) {
19:
return -
AG903_EINVAL;
20: }
21:
22:
if (blank != NULL) {
23: *blank = state.blank;
24: }
25:
if (is_vram_out != NULL) {
26: *is_vram_out = state.vrmacc;
27: }
28:
if (queue_cnt != NULL) {
29: *queue_cnt = state.queue;
30: }
31:
if (sub_status != NULL) {
32: *sub_status = state.sst;
33: }
34:
if (status != NULL) {
35: *status = state.st;
36: }
37:
return AG903_ENONE;
38: }