# SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
#
# (C) COPYRIGHT 2018-2022 ARM Limited. All rights reserved.
#
# This program is free software and is provided to you under the terms of the
# GNU General Public License version 2 as published by the Free Software
# Foundation, and any use by you of this program is subject to the terms
# of such GNU license.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, you can access it online at
# http://www.gnu.org/licenses/gpl-2.0.html.
#
#

mali_kbase-y += \
    csf/mali_kbase_csf_firmware_cfg.o \
    csf/mali_kbase_csf_trace_buffer.o \
    csf/mali_kbase_csf.o \
    csf/mali_kbase_csf_scheduler.o \
    csf/mali_kbase_csf_kcpu.o \
    csf/mali_kbase_csf_tiler_heap.o \
    csf/mali_kbase_csf_timeout.o \
    csf/mali_kbase_csf_tl_reader.o \
    csf/mali_kbase_csf_heap_context_alloc.o \
    csf/mali_kbase_csf_reset_gpu.o \
    csf/mali_kbase_csf_csg_debugfs.o \
    csf/mali_kbase_csf_kcpu_debugfs.o \
    csf/mali_kbase_csf_protected_memory.o \
    csf/mali_kbase_csf_tiler_heap_debugfs.o \
    csf/mali_kbase_csf_cpu_queue_debugfs.o \
    csf/mali_kbase_csf_event.o \
    csf/mali_kbase_csf_firmware_log.o

mali_kbase-$(CONFIG_MALI_REAL_HW) += csf/mali_kbase_csf_firmware.o

mali_kbase-$(CONFIG_MALI_NO_MALI) += csf/mali_kbase_csf_firmware_no_mali.o

mali_kbase-$(CONFIG_DEBUG_FS) += csf/mali_kbase_debug_csf_fault.o


ifeq ($(KBUILD_EXTMOD),)
# in-tree
    -include $(src)/csf/ipa_control/Kbuild
else
# out-of-tree
    include $(src)/csf/ipa_control/Kbuild
endif
