# SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
#
# (C) COPYRIGHT 2014-2021 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 += \
    backend/gpu/mali_kbase_cache_policy_backend.o \
    backend/gpu/mali_kbase_gpuprops_backend.o \
    backend/gpu/mali_kbase_irq_linux.o \
    backend/gpu/mali_kbase_js_backend.o \
    backend/gpu/mali_kbase_pm_backend.o \
    backend/gpu/mali_kbase_pm_driver.o \
    backend/gpu/mali_kbase_pm_metrics.o \
    backend/gpu/mali_kbase_pm_ca.o \
    backend/gpu/mali_kbase_pm_always_on.o \
    backend/gpu/mali_kbase_pm_coarse_demand.o \
    backend/gpu/mali_kbase_pm_policy.o \
    backend/gpu/mali_kbase_time.o \
    backend/gpu/mali_kbase_l2_mmu_config.o \
    backend/gpu/mali_kbase_clk_rate_trace_mgr.o

ifeq ($(MALI_USE_CSF),0)
    mali_kbase-y += \
        backend/gpu/mali_kbase_instr_backend.o \
        backend/gpu/mali_kbase_jm_as.o \
        backend/gpu/mali_kbase_debug_job_fault_backend.o \
        backend/gpu/mali_kbase_jm_hw.o \
        backend/gpu/mali_kbase_jm_rb.o
endif


mali_kbase-$(CONFIG_MALI_DEVFREQ) += \
    backend/gpu/mali_kbase_devfreq.o

