#define ARRAY_SIZE(name) (sizeof(name)/sizeof(name[0]))
static hal_backend_power_funcs *g_power_funcs = NULL;
+static unsigned int g_power_funcs_count = 0;
static int is_supported_from_backend(hal_backend_power_funcs *funcs, int res_type)
{
EXPORT int hal_power_get_backend(unsigned int res_type)
{
+ g_power_funcs_count++;
+
if (!g_power_funcs) {
int ret;
EXPORT int hal_power_put_backend(void)
{
- if (!g_power_funcs)
- return -ENOTSUP;
+ if (!g_power_funcs_count)
+ return 0;
+
+ if (--g_power_funcs_count > 0)
+ return 0;
hal_common_put_backend(HAL_MODULE_POWER, (void *)g_power_funcs);
g_power_funcs = NULL;