Merge "Video: Driver: Added support for multiple project configuration"

This commit is contained in:
qctecmdr
2024-03-16 13:17:58 -07:00
committed by Gerrit - the friendly Code Review server
4 changed files with 104 additions and 29 deletions

View File

@@ -36,6 +36,10 @@ LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_DEBUG_ENABLE := true LOCAL_MODULE_DEBUG_ENABLE := true
LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT) LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
LOCAL_MODULE_DDK_BUILD := true LOCAL_MODULE_DDK_BUILD := true
LOCAL_MODULE_DDK_SUBTARGET_REGEX := "video.*"
ifeq ($(TARGET_BOARD_PLATFORM), volcano)
LOCAL_MODULE_DDK_SUBTARGET_REGEX := "$(TARGET_BOARD_PLATFORM)_video.*"
endif
LOCAL_MODULE_KO_DIRS := msm_video/msm_video.ko LOCAL_MODULE_KO_DIRS := msm_video/msm_video.ko
LOCAL_REQUIRED_MODULES := mmrm-module-symvers LOCAL_REQUIRED_MODULES := mmrm-module-symvers

View File

@@ -69,8 +69,5 @@ ddk_headers(
hdrs = [":uapi_headers", "pineapple_headers", "cliffs_headers", "iris33_headers", "volcano_headers", "iris2_headers", "vidc_headers"] hdrs = [":uapi_headers", "pineapple_headers", "cliffs_headers", "iris33_headers", "volcano_headers", "iris2_headers", "vidc_headers"]
) )
load(":target.bzl", "define_pineapple") load(":target.bzl", "define_target_modules")
define_pineapple() define_target_modules()
load(":target.bzl", "define_volcano")
define_volcano()

View File

@@ -1,27 +1,28 @@
load(":video_modules.bzl", "video_driver_modules") load(":video_modules.bzl", "video_driver_modules")
load(":video_driver_build.bzl", "define_consolidate_gki_modules") load(":video_driver_build.bzl", "define_lunch_target_variant_modules")
load("//msm-kernel:target_variants.bzl", "get_all_la_variants")
load("//msm-kernel:target_variants.bzl", "get_all_lunch_target_base_target_variants")
def define_pineapple(): def define_target_modules():
define_consolidate_gki_modules( for (target, variant) in get_all_la_variants():
target = "pineapple", define_lunch_target_variant_modules(
registry = video_driver_modules, target = target,
modules = [ variant = variant,
"msm_video", registry = video_driver_modules,
"video", modules = [
], "msm_video",
config_options = [ "video",
"CONFIG_MSM_VIDC_PINEAPPLE", ],
], )
)
def define_volcano(): for (lt, bt, v) in get_all_lunch_target_base_target_variants():
define_consolidate_gki_modules( define_lunch_target_variant_modules(
target = "volcano", target = bt,
registry = video_driver_modules, variant = v,
modules = [ registry = video_driver_modules,
"msm_video", modules = [
], "msm_video",
config_options = [ "video",
"CONFIG_MSM_VIDC_VOLCANO", ],
], lunch_target = lt,
) )

View File

@@ -97,6 +97,79 @@ def define_target_variant_modules(target, variant, registry, modules, config_opt
log = "info", log = "info",
) )
def define_lunch_target_variant_modules(target, variant, registry, modules, lunch_target=None):
print(lunch_target)
kernel_build = "{}_{}".format(target, variant)
print("kernel_build: "+ kernel_build)
kernel_build_label = "//msm-kernel:{}".format(kernel_build)
print(kernel_build_label)
if lunch_target != None:
kernel_build = "{}_{}_{}".format(target, variant, lunch_target)
print("kernel_build: "+ kernel_build)
ddk_mod_name = "{}_video_driver_modules".format(kernel_build)
print("ddk_mod_name : " + ddk_mod_name)
dist_target_name = "{}_video_driver_modules_dist".format(kernel_build)
data = [":{}_video_driver_modules".format(kernel_build)]
config_options = ["CONFIG_MSM_VIDC_{}".format(lunch_target.upper())]
else:
ddk_mod_name = "{}_video_driver_modules".format(kernel_build)
print("ddk_mod_name: " + ddk_mod_name)
dist_target_name = "{}_video_driver_modules_dist".format(kernel_build)
print("dist_target_name: " + dist_target_name)
data = [":{}_video_driver_modules".format(kernel_build)]
config_options = ["CONFIG_MSM_VIDC_{}".format(target.upper())]
modules = [registry.get(module_name) for module_name in modules]
options = _get_kernel_build_options(modules, config_options)
build_print = lambda message : print("{}: {}".format(kernel_build, message))
formatter = lambda s : s.replace("%b", kernel_build).replace("%t", target)
headers = ["//msm-kernel:all_headers"] + registry.hdrs + [":{}_headers".format(target)]
print(headers)
all_module_rules = []
for module in modules:
print("Module name: "+ module.name)
rule_name = "{}_{}".format(kernel_build, module.name)
module_srcs = _get_kernel_build_module_srcs(module, options, formatter)
if not module_srcs:
continue
ddk_submodule(
name = rule_name,
srcs = module_srcs,
out = "{}.ko".format(module.name),
deps = headers + _get_kernel_build_module_deps(module, options, formatter),
local_defines = options.keys(),
)
all_module_rules.append(rule_name)
ddk_module(
name = ddk_mod_name,
kernel_build = kernel_build_label,
deps = all_module_rules,
)
copy_to_dist_dir(
name = dist_target_name,
data = data,
dist_dir = "out/target/product/{}/dlkm/lib/modules/".format(target),
flat = True,
wipe_dist_dir = False,
allow_duplicate_filenames = False,
mode_overrides = {"**/*": "644"},
log = "info",
)
def define_consolidate_gki_modules(target, registry, modules, config_options = []): def define_consolidate_gki_modules(target, registry, modules, config_options = []):
define_target_variant_modules(target, "consolidate", registry, modules, config_options) define_target_variant_modules(target, "consolidate", registry, modules, config_options)
define_target_variant_modules(target, "gki", registry, modules, config_options) define_target_variant_modules(target, "gki", registry, modules, config_options)