162306a36Sopenharmony_ci#
262306a36Sopenharmony_ci# Copyright 2017 Advanced Micro Devices, Inc.
362306a36Sopenharmony_ci#
462306a36Sopenharmony_ci# Permission is hereby granted, free of charge, to any person obtaining a
562306a36Sopenharmony_ci# copy of this software and associated documentation files (the "Software"),
662306a36Sopenharmony_ci# to deal in the Software without restriction, including without limitation
762306a36Sopenharmony_ci# the rights to use, copy, modify, merge, publish, distribute, sublicense,
862306a36Sopenharmony_ci# and/or sell copies of the Software, and to permit persons to whom the
962306a36Sopenharmony_ci# Software is furnished to do so, subject to the following conditions:
1062306a36Sopenharmony_ci#
1162306a36Sopenharmony_ci# The above copyright notice and this permission notice shall be included in
1262306a36Sopenharmony_ci# all copies or substantial portions of the Software.
1362306a36Sopenharmony_ci#
1462306a36Sopenharmony_ci# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1562306a36Sopenharmony_ci# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1662306a36Sopenharmony_ci# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
1762306a36Sopenharmony_ci# THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
1862306a36Sopenharmony_ci# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
1962306a36Sopenharmony_ci# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
2062306a36Sopenharmony_ci# OTHER DEALINGS IN THE SOFTWARE.
2162306a36Sopenharmony_ci#
2262306a36Sopenharmony_ci#
2362306a36Sopenharmony_ci# Makefile for the drm device driver.  This driver provides support for the
2462306a36Sopenharmony_ci# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciFULL_AMD_PATH=$(srctree)/$(src)/..
2762306a36Sopenharmony_ciDISPLAY_FOLDER_NAME=display
2862306a36Sopenharmony_ciFULL_AMD_DISPLAY_PATH = $(FULL_AMD_PATH)/$(DISPLAY_FOLDER_NAME)
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciccflags-y := -I$(FULL_AMD_PATH)/include/asic_reg \
3162306a36Sopenharmony_ci	-I$(FULL_AMD_PATH)/include \
3262306a36Sopenharmony_ci	-I$(FULL_AMD_PATH)/amdgpu \
3362306a36Sopenharmony_ci	-I$(FULL_AMD_PATH)/pm/inc \
3462306a36Sopenharmony_ci	-I$(FULL_AMD_PATH)/acp/include \
3562306a36Sopenharmony_ci	-I$(FULL_AMD_DISPLAY_PATH) \
3662306a36Sopenharmony_ci	-I$(FULL_AMD_DISPLAY_PATH)/include \
3762306a36Sopenharmony_ci	-I$(FULL_AMD_DISPLAY_PATH)/modules/inc \
3862306a36Sopenharmony_ci	-I$(FULL_AMD_DISPLAY_PATH)/dc \
3962306a36Sopenharmony_ci	-I$(FULL_AMD_DISPLAY_PATH)/amdgpu_dm \
4062306a36Sopenharmony_ci	-I$(FULL_AMD_PATH)/amdkfd
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_cisubdir-ccflags-y := -Wextra
4362306a36Sopenharmony_cisubdir-ccflags-y += -Wunused
4462306a36Sopenharmony_cisubdir-ccflags-y += -Wmissing-prototypes
4562306a36Sopenharmony_cisubdir-ccflags-y += -Wmissing-declarations
4662306a36Sopenharmony_cisubdir-ccflags-y += -Wmissing-include-dirs
4762306a36Sopenharmony_cisubdir-ccflags-y += -Wold-style-definition
4862306a36Sopenharmony_cisubdir-ccflags-y += -Wmissing-format-attribute
4962306a36Sopenharmony_ci# Need this to avoid recursive variable evaluation issues
5062306a36Sopenharmony_cicond-flags := $(call cc-option, -Wunused-but-set-variable) \
5162306a36Sopenharmony_ci	$(call cc-option, -Wunused-const-variable) \
5262306a36Sopenharmony_ci	$(call cc-option, -Wstringop-truncation) \
5362306a36Sopenharmony_ci	$(call cc-option, -Wpacked-not-aligned)
5462306a36Sopenharmony_cisubdir-ccflags-y += $(cond-flags)
5562306a36Sopenharmony_cisubdir-ccflags-y += -Wno-unused-parameter
5662306a36Sopenharmony_cisubdir-ccflags-y += -Wno-type-limits
5762306a36Sopenharmony_cisubdir-ccflags-y += -Wno-sign-compare
5862306a36Sopenharmony_cisubdir-ccflags-y += -Wno-missing-field-initializers
5962306a36Sopenharmony_cisubdir-ccflags-y += -Wno-override-init
6062306a36Sopenharmony_cisubdir-ccflags-$(CONFIG_DRM_AMDGPU_WERROR) += -Werror
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciamdgpu-y := amdgpu_drv.o
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci# add KMS driver
6562306a36Sopenharmony_ciamdgpu-y += amdgpu_device.o amdgpu_doorbell_mgr.o amdgpu_kms.o \
6662306a36Sopenharmony_ci	amdgpu_atombios.o atombios_crtc.o amdgpu_connectors.o \
6762306a36Sopenharmony_ci	atom.o amdgpu_fence.o amdgpu_ttm.o amdgpu_object.o amdgpu_gart.o \
6862306a36Sopenharmony_ci	amdgpu_encoders.o amdgpu_display.o amdgpu_i2c.o \
6962306a36Sopenharmony_ci	amdgpu_gem.o amdgpu_ring.o \
7062306a36Sopenharmony_ci	amdgpu_cs.o amdgpu_bios.o amdgpu_benchmark.o \
7162306a36Sopenharmony_ci	atombios_dp.o amdgpu_afmt.o amdgpu_trace_points.o \
7262306a36Sopenharmony_ci	atombios_encoders.o amdgpu_sa.o atombios_i2c.o \
7362306a36Sopenharmony_ci	amdgpu_dma_buf.o amdgpu_vm.o amdgpu_vm_pt.o amdgpu_ib.o amdgpu_pll.o \
7462306a36Sopenharmony_ci	amdgpu_ucode.o amdgpu_bo_list.o amdgpu_ctx.o amdgpu_sync.o \
7562306a36Sopenharmony_ci	amdgpu_gtt_mgr.o amdgpu_preempt_mgr.o amdgpu_vram_mgr.o amdgpu_virt.o \
7662306a36Sopenharmony_ci	amdgpu_atomfirmware.o amdgpu_vf_error.o amdgpu_sched.o \
7762306a36Sopenharmony_ci	amdgpu_debugfs.o amdgpu_ids.o amdgpu_gmc.o amdgpu_mmhub.o amdgpu_hdp.o \
7862306a36Sopenharmony_ci	amdgpu_xgmi.o amdgpu_csa.o amdgpu_ras.o amdgpu_vm_cpu.o \
7962306a36Sopenharmony_ci	amdgpu_vm_sdma.o amdgpu_discovery.o amdgpu_ras_eeprom.o amdgpu_nbio.o \
8062306a36Sopenharmony_ci	amdgpu_umc.o smu_v11_0_i2c.o amdgpu_fru_eeprom.o amdgpu_rap.o \
8162306a36Sopenharmony_ci	amdgpu_fw_attestation.o amdgpu_securedisplay.o \
8262306a36Sopenharmony_ci	amdgpu_eeprom.o amdgpu_mca.o amdgpu_psp_ta.o amdgpu_lsdma.o \
8362306a36Sopenharmony_ci	amdgpu_ring_mux.o amdgpu_xcp.o
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ciamdgpu-$(CONFIG_PROC_FS) += amdgpu_fdinfo.o
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ciamdgpu-$(CONFIG_PERF_EVENTS) += amdgpu_pmu.o
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci# add asic specific block
9062306a36Sopenharmony_ciamdgpu-$(CONFIG_DRM_AMDGPU_CIK)+= cik.o cik_ih.o \
9162306a36Sopenharmony_ci	dce_v8_0.o gfx_v7_0.o cik_sdma.o uvd_v4_2.o vce_v2_0.o
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ciamdgpu-$(CONFIG_DRM_AMDGPU_SI)+= si.o gmc_v6_0.o gfx_v6_0.o si_ih.o si_dma.o dce_v6_0.o \
9462306a36Sopenharmony_ci	uvd_v3_1.o
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ciamdgpu-y += \
9762306a36Sopenharmony_ci	vi.o mxgpu_vi.o nbio_v6_1.o soc15.o emu_soc.o mxgpu_ai.o nbio_v7_0.o vega10_reg_init.o \
9862306a36Sopenharmony_ci	vega20_reg_init.o nbio_v7_4.o nbio_v2_3.o nv.o arct_reg_init.o mxgpu_nv.o \
9962306a36Sopenharmony_ci	nbio_v7_2.o hdp_v4_0.o hdp_v5_0.o aldebaran_reg_init.o aldebaran.o soc21.o \
10062306a36Sopenharmony_ci	sienna_cichlid.o smu_v13_0_10.o nbio_v4_3.o hdp_v6_0.o nbio_v7_7.o hdp_v5_2.o lsdma_v6_0.o \
10162306a36Sopenharmony_ci	nbio_v7_9.o aqua_vanjaram.o
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci# add DF block
10462306a36Sopenharmony_ciamdgpu-y += \
10562306a36Sopenharmony_ci	df_v1_7.o \
10662306a36Sopenharmony_ci	df_v3_6.o \
10762306a36Sopenharmony_ci	df_v4_3.o
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci# add GMC block
11062306a36Sopenharmony_ciamdgpu-y += \
11162306a36Sopenharmony_ci	gmc_v7_0.o \
11262306a36Sopenharmony_ci	gmc_v8_0.o \
11362306a36Sopenharmony_ci	gfxhub_v1_0.o mmhub_v1_0.o gmc_v9_0.o gfxhub_v1_1.o mmhub_v9_4.o \
11462306a36Sopenharmony_ci	gfxhub_v2_0.o mmhub_v2_0.o gmc_v10_0.o gfxhub_v2_1.o mmhub_v2_3.o \
11562306a36Sopenharmony_ci	mmhub_v1_7.o gfxhub_v3_0.o mmhub_v3_0.o mmhub_v3_0_2.o gmc_v11_0.o \
11662306a36Sopenharmony_ci	mmhub_v3_0_1.o gfxhub_v3_0_3.o gfxhub_v1_2.o mmhub_v1_8.o
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci# add UMC block
11962306a36Sopenharmony_ciamdgpu-y += \
12062306a36Sopenharmony_ci	umc_v6_0.o umc_v6_1.o umc_v6_7.o umc_v8_7.o umc_v8_10.o
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci# add IH block
12362306a36Sopenharmony_ciamdgpu-y += \
12462306a36Sopenharmony_ci	amdgpu_irq.o \
12562306a36Sopenharmony_ci	amdgpu_ih.o \
12662306a36Sopenharmony_ci	iceland_ih.o \
12762306a36Sopenharmony_ci	tonga_ih.o \
12862306a36Sopenharmony_ci	cz_ih.o \
12962306a36Sopenharmony_ci	vega10_ih.o \
13062306a36Sopenharmony_ci	vega20_ih.o \
13162306a36Sopenharmony_ci	navi10_ih.o \
13262306a36Sopenharmony_ci	ih_v6_0.o \
13362306a36Sopenharmony_ci	ih_v6_1.o
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci# add PSP block
13662306a36Sopenharmony_ciamdgpu-y += \
13762306a36Sopenharmony_ci	amdgpu_psp.o \
13862306a36Sopenharmony_ci	psp_v3_1.o \
13962306a36Sopenharmony_ci	psp_v10_0.o \
14062306a36Sopenharmony_ci	psp_v11_0.o \
14162306a36Sopenharmony_ci	psp_v11_0_8.o \
14262306a36Sopenharmony_ci	psp_v12_0.o \
14362306a36Sopenharmony_ci	psp_v13_0.o \
14462306a36Sopenharmony_ci	psp_v13_0_4.o
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ci# add DCE block
14762306a36Sopenharmony_ciamdgpu-y += \
14862306a36Sopenharmony_ci	dce_v10_0.o \
14962306a36Sopenharmony_ci	dce_v11_0.o \
15062306a36Sopenharmony_ci	amdgpu_vkms.o
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci# add GFX block
15362306a36Sopenharmony_ciamdgpu-y += \
15462306a36Sopenharmony_ci	amdgpu_gfx.o \
15562306a36Sopenharmony_ci	amdgpu_rlc.o \
15662306a36Sopenharmony_ci	gfx_v8_0.o \
15762306a36Sopenharmony_ci	gfx_v9_0.o \
15862306a36Sopenharmony_ci	gfx_v9_4.o \
15962306a36Sopenharmony_ci	gfx_v9_4_2.o \
16062306a36Sopenharmony_ci	gfx_v9_4_3.o \
16162306a36Sopenharmony_ci	gfx_v10_0.o \
16262306a36Sopenharmony_ci	imu_v11_0.o \
16362306a36Sopenharmony_ci	gfx_v11_0.o \
16462306a36Sopenharmony_ci	gfx_v11_0_3.o \
16562306a36Sopenharmony_ci	imu_v11_0_3.o
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ci# add async DMA block
16862306a36Sopenharmony_ciamdgpu-y += \
16962306a36Sopenharmony_ci	amdgpu_sdma.o \
17062306a36Sopenharmony_ci	sdma_v2_4.o \
17162306a36Sopenharmony_ci	sdma_v3_0.o \
17262306a36Sopenharmony_ci	sdma_v4_0.o \
17362306a36Sopenharmony_ci	sdma_v4_4.o \
17462306a36Sopenharmony_ci	sdma_v4_4_2.o \
17562306a36Sopenharmony_ci	sdma_v5_0.o \
17662306a36Sopenharmony_ci	sdma_v5_2.o \
17762306a36Sopenharmony_ci	sdma_v6_0.o
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ci# add MES block
18062306a36Sopenharmony_ciamdgpu-y += \
18162306a36Sopenharmony_ci	amdgpu_mes.o \
18262306a36Sopenharmony_ci	mes_v10_1.o \
18362306a36Sopenharmony_ci	mes_v11_0.o
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ci# add UVD block
18662306a36Sopenharmony_ciamdgpu-y += \
18762306a36Sopenharmony_ci	amdgpu_uvd.o \
18862306a36Sopenharmony_ci	uvd_v5_0.o \
18962306a36Sopenharmony_ci	uvd_v6_0.o \
19062306a36Sopenharmony_ci	uvd_v7_0.o
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ci# add VCE block
19362306a36Sopenharmony_ciamdgpu-y += \
19462306a36Sopenharmony_ci	amdgpu_vce.o \
19562306a36Sopenharmony_ci	vce_v3_0.o \
19662306a36Sopenharmony_ci	vce_v4_0.o
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ci# add VCN and JPEG block
19962306a36Sopenharmony_ciamdgpu-y += \
20062306a36Sopenharmony_ci	amdgpu_vcn.o \
20162306a36Sopenharmony_ci	vcn_sw_ring.o \
20262306a36Sopenharmony_ci	vcn_v1_0.o \
20362306a36Sopenharmony_ci	vcn_v2_0.o \
20462306a36Sopenharmony_ci	vcn_v2_5.o \
20562306a36Sopenharmony_ci	vcn_v3_0.o \
20662306a36Sopenharmony_ci	vcn_v4_0.o \
20762306a36Sopenharmony_ci	vcn_v4_0_3.o \
20862306a36Sopenharmony_ci	amdgpu_jpeg.o \
20962306a36Sopenharmony_ci	jpeg_v1_0.o \
21062306a36Sopenharmony_ci	jpeg_v2_0.o \
21162306a36Sopenharmony_ci	jpeg_v2_5.o \
21262306a36Sopenharmony_ci	jpeg_v3_0.o \
21362306a36Sopenharmony_ci	jpeg_v4_0.o \
21462306a36Sopenharmony_ci	jpeg_v4_0_3.o
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_ci# add ATHUB block
21762306a36Sopenharmony_ciamdgpu-y += \
21862306a36Sopenharmony_ci	athub_v1_0.o \
21962306a36Sopenharmony_ci	athub_v2_0.o \
22062306a36Sopenharmony_ci	athub_v2_1.o \
22162306a36Sopenharmony_ci	athub_v3_0.o
22262306a36Sopenharmony_ci
22362306a36Sopenharmony_ci# add SMUIO block
22462306a36Sopenharmony_ciamdgpu-y += \
22562306a36Sopenharmony_ci	smuio_v9_0.o \
22662306a36Sopenharmony_ci	smuio_v11_0.o \
22762306a36Sopenharmony_ci	smuio_v11_0_6.o \
22862306a36Sopenharmony_ci	smuio_v13_0.o \
22962306a36Sopenharmony_ci	smuio_v13_0_3.o \
23062306a36Sopenharmony_ci	smuio_v13_0_6.o
23162306a36Sopenharmony_ci
23262306a36Sopenharmony_ci# add reset block
23362306a36Sopenharmony_ciamdgpu-y += \
23462306a36Sopenharmony_ci	amdgpu_reset.o
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ci# add MCA block
23762306a36Sopenharmony_ciamdgpu-y += \
23862306a36Sopenharmony_ci	mca_v3_0.o
23962306a36Sopenharmony_ci
24062306a36Sopenharmony_ci# add amdkfd interfaces
24162306a36Sopenharmony_ciamdgpu-y += amdgpu_amdkfd.o
24262306a36Sopenharmony_ci
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_ciifneq ($(CONFIG_HSA_AMD),)
24562306a36Sopenharmony_ciAMDKFD_PATH := ../amdkfd
24662306a36Sopenharmony_ciinclude $(FULL_AMD_PATH)/amdkfd/Makefile
24762306a36Sopenharmony_ciamdgpu-y += $(AMDKFD_FILES)
24862306a36Sopenharmony_ciamdgpu-y += \
24962306a36Sopenharmony_ci	amdgpu_amdkfd_fence.o \
25062306a36Sopenharmony_ci	amdgpu_amdkfd_gpuvm.o \
25162306a36Sopenharmony_ci	amdgpu_amdkfd_gfx_v8.o \
25262306a36Sopenharmony_ci	amdgpu_amdkfd_gfx_v9.o \
25362306a36Sopenharmony_ci	amdgpu_amdkfd_arcturus.o \
25462306a36Sopenharmony_ci	amdgpu_amdkfd_aldebaran.o \
25562306a36Sopenharmony_ci	amdgpu_amdkfd_gc_9_4_3.o \
25662306a36Sopenharmony_ci	amdgpu_amdkfd_gfx_v10.o \
25762306a36Sopenharmony_ci	amdgpu_amdkfd_gfx_v10_3.o \
25862306a36Sopenharmony_ci	amdgpu_amdkfd_gfx_v11.o
25962306a36Sopenharmony_ci
26062306a36Sopenharmony_ciifneq ($(CONFIG_DRM_AMDGPU_CIK),)
26162306a36Sopenharmony_ciamdgpu-y += amdgpu_amdkfd_gfx_v7.o
26262306a36Sopenharmony_ciendif
26362306a36Sopenharmony_ci
26462306a36Sopenharmony_ciendif
26562306a36Sopenharmony_ci
26662306a36Sopenharmony_ci# add cgs
26762306a36Sopenharmony_ciamdgpu-y += amdgpu_cgs.o
26862306a36Sopenharmony_ci
26962306a36Sopenharmony_ci# GPU scheduler
27062306a36Sopenharmony_ciamdgpu-y += amdgpu_job.o
27162306a36Sopenharmony_ci
27262306a36Sopenharmony_ci# ACP componet
27362306a36Sopenharmony_ciifneq ($(CONFIG_DRM_AMD_ACP),)
27462306a36Sopenharmony_ciamdgpu-y += amdgpu_acp.o
27562306a36Sopenharmony_ci
27662306a36Sopenharmony_ciAMDACPPATH := ../acp
27762306a36Sopenharmony_ciinclude $(FULL_AMD_PATH)/acp/Makefile
27862306a36Sopenharmony_ci
27962306a36Sopenharmony_ciamdgpu-y += $(AMD_ACP_FILES)
28062306a36Sopenharmony_ciendif
28162306a36Sopenharmony_ci
28262306a36Sopenharmony_ciamdgpu-$(CONFIG_COMPAT) += amdgpu_ioc32.o
28362306a36Sopenharmony_ciamdgpu-$(CONFIG_VGA_SWITCHEROO) += amdgpu_atpx_handler.o
28462306a36Sopenharmony_ciamdgpu-$(CONFIG_ACPI) += amdgpu_acpi.o
28562306a36Sopenharmony_ciamdgpu-$(CONFIG_HMM_MIRROR) += amdgpu_hmm.o
28662306a36Sopenharmony_ci
28762306a36Sopenharmony_ciinclude $(FULL_AMD_PATH)/pm/Makefile
28862306a36Sopenharmony_ci
28962306a36Sopenharmony_ciamdgpu-y += $(AMD_POWERPLAY_FILES)
29062306a36Sopenharmony_ci
29162306a36Sopenharmony_ciifneq ($(CONFIG_DRM_AMD_DC),)
29262306a36Sopenharmony_ci
29362306a36Sopenharmony_ciRELATIVE_AMD_DISPLAY_PATH = ../$(DISPLAY_FOLDER_NAME)
29462306a36Sopenharmony_ciinclude $(FULL_AMD_DISPLAY_PATH)/Makefile
29562306a36Sopenharmony_ci
29662306a36Sopenharmony_ciamdgpu-y += $(AMD_DISPLAY_FILES)
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_ciendif
29962306a36Sopenharmony_ci
30062306a36Sopenharmony_ciobj-$(CONFIG_DRM_AMDGPU)+= amdgpu.o
301