123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- load("//build/kernel/kleaf:kernel.bzl", "ddk_module")
- load("//build/bazel_common_rules/dist:dist.bzl", "copy_to_dist_dir")
- msm_kgsl_includes = [
- "include/linux/msm_kgsl.h",
- "include/uapi/linux/msm_kgsl.h",
- ]
- def kgsl_get_srcs():
- srcs = [
- "adreno.c",
- "adreno_a3xx.c",
- "adreno_a3xx_perfcounter.c",
- "adreno_a3xx_ringbuffer.c",
- "adreno_a3xx_snapshot.c",
- "adreno_a5xx.c",
- "adreno_a5xx_perfcounter.c",
- "adreno_a5xx_preempt.c",
- "adreno_a5xx_ringbuffer.c",
- "adreno_a5xx_snapshot.c",
- "adreno_a6xx.c",
- "adreno_a6xx_gmu.c",
- "adreno_a6xx_gmu_snapshot.c",
- "adreno_a6xx_hfi.c",
- "adreno_a6xx_hwsched.c",
- "adreno_a6xx_hwsched_hfi.c",
- "adreno_a6xx_perfcounter.c",
- "adreno_a6xx_preempt.c",
- "adreno_a6xx_rgmu.c",
- "adreno_a6xx_ringbuffer.c",
- "adreno_a6xx_rpmh.c",
- "adreno_a6xx_snapshot.c",
- "adreno_cp_parser.c",
- "adreno_dispatch.c",
- "adreno_drawctxt.c",
- "adreno_gen7.c",
- "adreno_gen7_gmu.c",
- "adreno_gen7_gmu_snapshot.c",
- "adreno_gen7_hfi.c",
- "adreno_gen7_hwsched.c",
- "adreno_gen7_hwsched_hfi.c",
- "adreno_gen7_perfcounter.c",
- "adreno_gen7_preempt.c",
- "adreno_gen7_ringbuffer.c",
- "adreno_gen7_rpmh.c",
- "adreno_gen7_snapshot.c",
- "adreno_gen8.c",
- "adreno_gen8_gmu.c",
- "adreno_gen8_gmu_snapshot.c",
- "adreno_gen8_hfi.c",
- "adreno_gen8_hwsched.c",
- "adreno_gen8_hwsched_hfi.c",
- "adreno_gen8_perfcounter.c",
- "adreno_gen8_preempt.c",
- "adreno_gen8_ringbuffer.c",
- "adreno_gen8_rpmh.c",
- "adreno_gen8_snapshot.c",
- "adreno_hwsched.c",
- "adreno_ioctl.c",
- "adreno_perfcounter.c",
- "adreno_ringbuffer.c",
- "adreno_snapshot.c",
- "adreno_sysfs.c",
- "adreno_trace.c",
- "governor_msm_adreno_tz.c",
- "governor_gpubw_mon.c",
- "kgsl.c",
- "kgsl_bus.c",
- "kgsl_drawobj.c",
- "kgsl_events.c",
- "kgsl_eventlog.c",
- "kgsl_gmu_core.c",
- "kgsl_ioctl.c",
- "kgsl_mmu.c",
- "kgsl_pwrctrl.c",
- "kgsl_pwrscale.c",
- "kgsl_regmap.c",
- "kgsl_sharedmem.c",
- "kgsl_snapshot.c",
- "kgsl_timeline.c",
- "kgsl_trace.c",
- "kgsl_util.c",
- "kgsl_vbo.c",
- ]
- srcs = srcs + native.glob(["*.h"]) + msm_kgsl_includes
- return srcs
- def external_deps(target, variant):
- tv = "{}_{}".format(target, variant)
- deplist = []
- defconfigs = []
- # Add msm_hw_fence in the dependency and defconfig lists for targets that use it
- if target in [ "pineapple" ]:
- deplist = deplist + [
- "//vendor/qcom/opensource/mm-drivers/hw_fence:{}_msm_hw_fence".format(tv)
- ]
- defconfigs = defconfigs + [
- "//vendor/qcom/opensource/mm-drivers/hw_fence:defconfig"
- ]
- native.genrule(
- name = "{}_defconfig".format(tv),
- srcs = defconfigs + [ "config/{}_gpuconf".format(tv) ],
- outs = [ "{}_defconfig.generated".format(tv) ],
- cmd = "cat $(SRCS) > $@"
- )
- return deplist
- def define_target_variant_module(target, variant):
- tv = "{}_{}".format(target, variant)
- rule_name = "{}_msm_kgsl".format(tv)
- kernel_build = "//msm-kernel:{}".format(tv)
- ext_deps = external_deps(target, variant)
- ddk_module(
- name = rule_name,
- out = "msm_kgsl.ko",
- srcs = kgsl_get_srcs(),
- defconfig = "{}_defconfig".format(tv),
- kconfig = "Kconfig",
- conditional_srcs = {
- "CONFIG_ARM_SMMU": { True: [ "kgsl_iommu.c" ] },
- "CONFIG_COMPAT": { True: [ "kgsl_compat.c", "adreno_compat.c" ] },
- "CONFIG_DEBUG_FS": { True: [ "kgsl_debugfs.c", "adreno_debugfs.c", "adreno_profile.c" ] },
- "CONFIG_QCOM_KGSL_CORESIGHT": { True: [
- "adreno_coresight.c",
- "adreno_a3xx_coresight.c",
- "adreno_a5xx_coresight.c",
- "adreno_a6xx_coresight.c",
- "adreno_gen7_coresight.c"] },
- "CONFIG_QCOM_KGSL_PROCESS_RECLAIM": { True: [ "kgsl_reclaim.c" ] },
- "CONFIG_QCOM_KGSL_USE_SHMEM": { False: [ "kgsl_pool.c" ] },
- "CONFIG_SYNC_FILE": { True: [ "kgsl_sync.c" ] },
- },
- deps = [ "//msm-kernel:all_headers" ] + ext_deps,
- includes = ["include", "."],
- kernel_build = kernel_build,
- visibility = ["//visibility:private"]
- )
- copy_to_dist_dir(
- name = "{}_dist".format(rule_name),
- data = [rule_name],
- dist_dir = "out/graphics-kernel",
- flat = True,
- wipe_dist_dir = False,
- allow_duplicate_filenames = False,
- mode_overrides = {"**/*": "644"},
- log = "info",
- )
- def define_target_module(target):
- define_target_variant_module(target, "gki")
- define_target_variant_module(target, "consolidate")
|