#define PASS_JSON_PATH "/hal/etc/pass/pass.json"
-/**
- * @brief Specify the supported modules according to the type of h/w
- * resource.
- */
-static uint64 supported_module[] = {
- [PASS_RESOURCE_UNKNOWN] = 0,
- [PASS_RESOURCE_CPU_ID] = PASS_MODULE_PARSER
- | PASS_MODULE_RESCON
- | PASS_MODULE_RESMON
- | PASS_MODULE_PMQOS
- | PASS_MODULE_CPUHP
- | PASS_MODULE_THERMAL,
-
- [PASS_RESOURCE_BUS_ID] = PASS_MODULE_PARSER
- | PASS_MODULE_RESCON
- | PASS_MODULE_RESMON
- | PASS_MODULE_PMQOS,
-
- [PASS_RESOURCE_GPU_ID] = PASS_MODULE_PARSER
- | PASS_MODULE_RESCON
- | PASS_MODULE_RESMON
- | PASS_MODULE_PMQOS
- | PASS_MODULE_THERMAL,
-
- [PASS_RESOURCE_MEMORY_ID] = PASS_MODULE_PARSER
- | PASS_MODULE_RESCON
- | PASS_MODULE_RESMON
- | PASS_MODULE_PMQOS,
-
- [PASS_RESOURCE_BATTERY_ID] = PASS_MODULE_PARSER
- | PASS_MODULE_RESCON
- | PASS_MODULE_RESMON
- | PASS_MODULE_PMQOS
- | PASS_MODULE_THERMAL,
-};
+#define PASS_RESOURCE_CPU_SUPPORTED_MODULES \
+ ( PASS_MODULE_PARSER \
+ | PASS_MODULE_RESCON \
+ | PASS_MODULE_RESMON \
+ | PASS_MODULE_PMQOS \
+ | PASS_MODULE_CPUHP \
+ | PASS_MODULE_THERMAL )
+
+#define PASS_RESOURCE_BUS_SUPPORTED_MODULES \
+ ( PASS_MODULE_PARSER \
+ | PASS_MODULE_RESCON \
+ | PASS_MODULE_RESMON \
+ | PASS_MODULE_PMQOS )
+
+#define PASS_RESOURCE_GPU_SUPPORTED_MODULES \
+ ( PASS_MODULE_PARSER \
+ | PASS_MODULE_RESCON \
+ | PASS_MODULE_RESMON \
+ | PASS_MODULE_PMQOS \
+ | PASS_MODULE_THERMAL )
+
+#define PASS_RESOURCE_MEMORY_SUPPORTED_MODULES \
+ ( PASS_MODULE_PARSER \
+ | PASS_MODULE_RESCON \
+ | PASS_MODULE_RESMON \
+ | PASS_MODULE_PMQOS )
+
+#define PASS_RESOURCE_BATTERY_SUPPORTED_MODULES \
+ ( PASS_MODULE_PARSER \
+ | PASS_MODULE_RESCON \
+ | PASS_MODULE_RESMON \
+ | PASS_MODULE_PMQOS \
+ | PASS_MODULE_THERMAL )
extern int pass_cpuhp_init(struct pass_resource *res);
extern int pass_cpuhp_exit(struct pass_resource *res);
static bool is_supported_module(struct pass_resource *res,
enum pass_module_type type)
{
- return !!(supported_module[res->config_data.res_type] & type);
+ switch (res->config_data.res_type) {
+ case PASS_RESOURCE_CPU_ID:
+ return !!(PASS_RESOURCE_CPU_SUPPORTED_MODULES & type);
+ case PASS_RESOURCE_BUS_ID:
+ return !!(PASS_RESOURCE_BUS_SUPPORTED_MODULES & type);
+ case PASS_RESOURCE_GPU_ID:
+ return !!(PASS_RESOURCE_GPU_SUPPORTED_MODULES & type);
+ case PASS_RESOURCE_MEMORY_ID:
+ return !!(PASS_RESOURCE_MEMORY_SUPPORTED_MODULES & type);
+ case PASS_RESOURCE_BATTERY_ID:
+ return !!(PASS_RESOURCE_BATTERY_SUPPORTED_MODULES & type);
+ default:
+ return false;
+ }
}
/**