| /* |
| * Copyright (c) 2023, MediaTek Inc. All rights reserved. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| #ifndef MT_LP_RQM_H |
| #define MT_LP_RQM_H |
| |
| #include "mt_lp_rq.h" |
| |
| enum plat_mt_lpm_rq_update_type { |
| PLAT_RQ_USER_NUM, |
| PLAT_RQ_USER_VALID, |
| PLAT_RQ_USER_REQ, |
| PLAT_RQ_USER_REL, |
| PLAT_RQ_PER_USER_NAME, |
| PLAT_RQ_REQ_NUM, |
| PLAT_RQ_REQ_USAGE, |
| }; |
| |
| /* Determine the request valid */ |
| #define MT_LP_RQ_VALID (0x1) |
| #define MT_LP_RQ_INVALID (0x0) |
| |
| /* Determine the request user opertions */ |
| #define MT_LP_RQ_USER_INVALID (-1) |
| #define MT_LP_RQ_USER_MAX (32) |
| #define MT_LP_RQ_USER_NAME_LEN (4) |
| #define MT_LP_RQ_USER_CHAR_U (8) |
| |
| /* Determine the request update flag */ |
| #define MT_LP_RQ_FLAG_DONE (0) |
| #define MT_LP_RQ_FLAG_NEED_UPDATE BIT(6) |
| |
| /* Determine the resource update id */ |
| #define MT_LP_RQ_ID_ALL_USAGE (-1) |
| |
| /* Determine the return status */ |
| #define MT_LP_RQ_STA_OK (0) |
| #define MT_LP_RQ_STA_BAD (-1) |
| |
| struct mt_lp_res_req { |
| /* Determine the resource req public identify */ |
| const unsigned int res_id; |
| /* Determine the resource bitwise internal control */ |
| const unsigned int res_rq; |
| /* Determine the users per bit for current resource usage */ |
| unsigned int res_usage; |
| }; |
| |
| struct mt_resource_req_manager { |
| /* Determine the set of resources */ |
| struct mt_lp_res_req **res; |
| }; |
| |
| struct resource_req_status { |
| /* Determine the status id */ |
| unsigned int id; |
| /* Determine the status value */ |
| unsigned int val; |
| }; |
| |
| int mt_lp_resource_request_manager_register(struct mt_resource_req_manager *rqm); |
| int mt_lp_rq_update_status(int type, void *p); |
| int mt_lp_rq_get_status(int type, void *p); |
| |
| #endif /* MT_LP_RQM_H */ |