From 83bd1c308ba220483ab9aed0bbbc24bb995f1c55 Mon Sep 17 00:00:00 2001 From: Chanwoo Choi Date: Fri, 19 Jul 2024 15:50:36 +0900 Subject: Use hal-rootstrap package for build and change hal_backend_power_funcs memory allocation/free hal-roostrap package contains the allowed and maintained files to build hal-backend package. In order to keep ABI (Application Binary Interface) compatibility between platfrom and hal image, must use only hal-rootstrap pacakge for build. And chagnge the memory allocation/free way of hal_backend_power_funcs in order to support new 1-platform Multi-HAL Interface approach. Change-Id: I15707fae89d53a5702be1bfe34e9779325319253 Signed-off-by: Chanwoo Choi --- CMakeLists.txt | 3 +- packaging/hal-backend-power-emulator.spec | 3 +- src/hal-backend-power.c | 100 ++++-------------------------- 3 files changed, 15 insertions(+), 91 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5edccaa..696bb71 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,8 +9,7 @@ SET(HAL_LICENSEDIR ${CMAKE_HAL_LICENSEDIR_PREFIX}) INCLUDE(FindPkgConfig) pkg_check_modules(pkgs REQUIRED - hal-api-common - hal-api-power + hal-rootstrap ) FOREACH(flag ${pkgs_CFLAGS}) diff --git a/packaging/hal-backend-power-emulator.spec b/packaging/hal-backend-power-emulator.spec index 47ae21c..09f0b17 100644 --- a/packaging/hal-backend-power-emulator.spec +++ b/packaging/hal-backend-power-emulator.spec @@ -16,8 +16,7 @@ Requires(post): security-config Requires(postun): /sbin/ldconfig Requires(postun): /bin/systemctl BuildRequires: cmake -BuildRequires: pkgconfig(hal-api-common) -BuildRequires: pkgconfig(hal-api-power) +BuildRequires: pkgconfig(hal-rootstrap) %description PASS standard hal diff --git a/src/hal-backend-power.c b/src/hal-backend-power.c index ae12b60..24f79be 100644 --- a/src/hal-backend-power.c +++ b/src/hal-backend-power.c @@ -472,106 +472,32 @@ static int memory_set_fault_around_bytes(char *res_name, static int power_init(void **data) { hal_backend_power_funcs *power_funcs = NULL; - struct pass_resource_cpu *cpu = NULL; - struct pass_resource_bus *bus = NULL; - struct pass_resource_gpu *gpu = NULL; - struct pass_resource_memory *memory = NULL; - struct pass_resource_battery *battery = NULL; - int ret; - - /* Allocate memory */ - power_funcs = calloc(1, sizeof(hal_backend_power_funcs)); - if (!power_funcs) - return -ENOMEM; - - cpu = calloc(1, sizeof(struct pass_resource_cpu)); - if (!cpu) { - ret = -ENOMEM; - goto err_funcs; - } - - bus = calloc(1, sizeof(struct pass_resource_bus)); - if (!bus) { - ret = -ENOMEM; - goto err_cpu; - } - - gpu = calloc(1, sizeof(struct pass_resource_gpu)); - if (!gpu) { - ret = -ENOMEM; - goto err_bus; - } - - memory = calloc(1, sizeof(struct pass_resource_memory)); - if (!memory) { - ret = -ENOMEM; - goto err_gpu; - } - - battery = calloc(1, sizeof(struct pass_resource_battery)); - if (!battery) { - ret = -ENOMEM; - goto err_memory; - } - /* Initialize each h/w resource */ - cpu->dvfs = cpufreq_dvfs_ops; - cpu->hotplug = cpu_hotplus_ops; - cpu->tmu = tmu_ops; + if (!data) + return -EINVAL; - bus->dvfs = bus_dvfs_ops; - bus->tmu = tmu_ops; + power_funcs = *(hal_backend_power_funcs **)data; - gpu->dvfs = gpu_dvfs_ops; - gpu->tmu = tmu_ops; + power_funcs->cpu->dvfs = cpufreq_dvfs_ops; + power_funcs->cpu->hotplug = cpu_hotplus_ops; + power_funcs->cpu->tmu = tmu_ops; - battery->tmu = tmu_ops; + power_funcs->bus->dvfs = bus_dvfs_ops; + power_funcs->bus->tmu = tmu_ops; - memory->get_fault_around_bytes = memory_get_fault_around_bytes; - memory->set_fault_around_bytes = memory_set_fault_around_bytes; + power_funcs->gpu->dvfs = gpu_dvfs_ops; + power_funcs->gpu->tmu = tmu_ops; - /* Initialize hal_backend_power_funcs */ - power_funcs->cpu = cpu; - power_funcs->bus = bus; - power_funcs->gpu = gpu; - power_funcs->memory = memory; - power_funcs->battery = battery; + power_funcs->battery->tmu = tmu_ops; - *data = (void *)power_funcs; + power_funcs->memory->get_fault_around_bytes = memory_get_fault_around_bytes; + power_funcs->memory->set_fault_around_bytes = memory_set_fault_around_bytes; return 0; - -err_memory: - free(memory); -err_gpu: - free(gpu); -err_bus: - free(bus); -err_cpu: - free(cpu); -err_funcs: - free(power_funcs); - - return ret; } static int power_exit(void *data) { - hal_backend_power_funcs *funcs; - - if (!data) - return -EINVAL; - - funcs = (hal_backend_power_funcs *)data; - - free(funcs->cpu); - free(funcs->bus); - free(funcs->gpu); - free(funcs->memory); - free(funcs->battery); - - free(funcs); - return 0; } -- cgit v1.2.3