Use hal-rootstrap package for build and change hal_backend_power_funcs memory allocat... 98/314798/1 accepted/tizen_unified_dev accepted/tizen/9.0/unified/20241031.000319 accepted/tizen/unified/20240722.104248 accepted/tizen/unified/dev/20240724.110135 accepted/tizen/unified/x/asan/20241224.003813 tizen_9.0_m2_release
authorChanwoo Choi <cw00.choi@samsung.com>
Fri, 19 Jul 2024 08:05:36 +0000 (17:05 +0900)
committerChanwoo Choi <cw00.choi@samsung.com>
Fri, 19 Jul 2024 08:05:36 +0000 (17:05 +0900)
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.

Lastly, remove the deprecated abi_version filed and then
add the major_version and minor_version.

Change-Id: Icf5492043553c30c58614ffb7eae41c9561de746
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
CMakeLists.txt
packaging/hal-backend-power-vim3.spec
src/hal-backend-power.c

index f7b4e867c7673e7acf67aa8363e8068e122fdedd..85da319ddcec68e432d39e4bc769b35e5cadb237 100644 (file)
@@ -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})
index 5b3a2edfd5e4fce8bd2f157e4f803ce609bc9895..4625f6b16192f346c7b36ccf1a54f9c6ae725f4e 100644 (file)
@@ -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
index 8de87a62489ba8d839393e099e8178e3357570a4..9d1906222c2e94bd3e48828ebb45b2b17059659e 100644 (file)
@@ -472,107 +472,38 @@ 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;
-       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;
-       }
 
-       /* 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;
 
-       memory->get_fault_around_bytes = memory_get_fault_around_bytes;
-       memory->set_fault_around_bytes = memory_set_fault_around_bytes;
+       power_funcs->bus->dvfs = bus_dvfs_ops;
+       power_funcs->bus->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->gpu->dvfs = gpu_dvfs_ops;
+       power_funcs->gpu->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_gpu:
-       if (gpu)
-               free(gpu);
-err_bus:
-       if (bus)
-               free(bus);
-err_cpu:
-       if (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;
-
-       if (funcs->cpu)
-               free(funcs->cpu);
-       if (funcs->bus)
-               free(funcs->bus);
-       if (funcs->gpu)
-               free(funcs->gpu);
-       if (funcs->memory)
-               free(funcs->memory);
-
-       free(funcs);
-
        return 0;
 }
 
 hal_backend hal_backend_power_data = {
        .name = "hal-backend-power-vim3",
        .vendor = "amlogic",
-       .abi_version = HAL_ABI_VERSION_TIZEN_6_5,
        .init = power_init,
        .exit = power_exit,
+       .major_version = 1,
+       .minor_version = 0,
 };