18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci# 38c2ecf20Sopenharmony_ci# Makefile for the drm device driver. This driver provides support for the 48c2ecf20Sopenharmony_ci# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci# Add a set of useful warning flags and enable -Werror for CI to prevent 78c2ecf20Sopenharmony_ci# trivial mistakes from creeping in. We have to do this piecemeal as we reject 88c2ecf20Sopenharmony_ci# any patch that isn't warning clean, so turning on -Wall -Wextra (or W=1) we 98c2ecf20Sopenharmony_ci# need to filter out dubious warnings. Still it is our interest 108c2ecf20Sopenharmony_ci# to keep running locally with W=1 C=1 until we are completely clean. 118c2ecf20Sopenharmony_ci# 128c2ecf20Sopenharmony_ci# Note the danger in using -Wall -Wextra is that when CI updates gcc we 138c2ecf20Sopenharmony_ci# will most likely get a sudden build breakage... Hopefully we will fix 148c2ecf20Sopenharmony_ci# new warnings before CI updates! 158c2ecf20Sopenharmony_cisubdir-ccflags-y := -Wall -Wextra 168c2ecf20Sopenharmony_cisubdir-ccflags-y += $(call cc-disable-warning, unused-parameter) 178c2ecf20Sopenharmony_cisubdir-ccflags-y += $(call cc-disable-warning, type-limits) 188c2ecf20Sopenharmony_cisubdir-ccflags-y += $(call cc-disable-warning, missing-field-initializers) 198c2ecf20Sopenharmony_cisubdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable) 208c2ecf20Sopenharmony_ci# clang warnings 218c2ecf20Sopenharmony_cisubdir-ccflags-y += $(call cc-disable-warning, sign-compare) 228c2ecf20Sopenharmony_cisubdir-ccflags-y += $(call cc-disable-warning, sometimes-uninitialized) 238c2ecf20Sopenharmony_cisubdir-ccflags-y += $(call cc-disable-warning, initializer-overrides) 248c2ecf20Sopenharmony_cisubdir-ccflags-y += $(call cc-disable-warning, uninitialized) 258c2ecf20Sopenharmony_cisubdir-ccflags-y += $(call cc-disable-warning, frame-address) 268c2ecf20Sopenharmony_cisubdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci# Fine grained warnings disable 298c2ecf20Sopenharmony_ciCFLAGS_i915_pci.o = $(call cc-disable-warning, override-init) 308c2ecf20Sopenharmony_ciCFLAGS_display/intel_fbdev.o = $(call cc-disable-warning, override-init) 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_cisubdir-ccflags-y += -I$(srctree)/$(src) 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci# Please keep these build lists sorted! 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci# core driver code 378c2ecf20Sopenharmony_cii915-y += i915_drv.o \ 388c2ecf20Sopenharmony_ci i915_config.o \ 398c2ecf20Sopenharmony_ci i915_irq.o \ 408c2ecf20Sopenharmony_ci i915_getparam.o \ 418c2ecf20Sopenharmony_ci i915_mitigations.o \ 428c2ecf20Sopenharmony_ci i915_params.o \ 438c2ecf20Sopenharmony_ci i915_pci.o \ 448c2ecf20Sopenharmony_ci i915_scatterlist.o \ 458c2ecf20Sopenharmony_ci i915_suspend.o \ 468c2ecf20Sopenharmony_ci i915_switcheroo.o \ 478c2ecf20Sopenharmony_ci i915_sysfs.o \ 488c2ecf20Sopenharmony_ci i915_utils.o \ 498c2ecf20Sopenharmony_ci intel_device_info.o \ 508c2ecf20Sopenharmony_ci intel_dram.o \ 518c2ecf20Sopenharmony_ci intel_memory_region.o \ 528c2ecf20Sopenharmony_ci intel_pch.o \ 538c2ecf20Sopenharmony_ci intel_pm.o \ 548c2ecf20Sopenharmony_ci intel_runtime_pm.o \ 558c2ecf20Sopenharmony_ci intel_sideband.o \ 568c2ecf20Sopenharmony_ci intel_uncore.o \ 578c2ecf20Sopenharmony_ci intel_wakeref.o \ 588c2ecf20Sopenharmony_ci vlv_suspend.o 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci# core library code 618c2ecf20Sopenharmony_cii915-y += \ 628c2ecf20Sopenharmony_ci i915_memcpy.o \ 638c2ecf20Sopenharmony_ci i915_mm.o \ 648c2ecf20Sopenharmony_ci i915_sw_fence.o \ 658c2ecf20Sopenharmony_ci i915_sw_fence_work.o \ 668c2ecf20Sopenharmony_ci i915_syncmap.o \ 678c2ecf20Sopenharmony_ci i915_user_extensions.o 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_cii915-$(CONFIG_COMPAT) += i915_ioc32.o 708c2ecf20Sopenharmony_cii915-$(CONFIG_DEBUG_FS) += \ 718c2ecf20Sopenharmony_ci i915_debugfs.o \ 728c2ecf20Sopenharmony_ci i915_debugfs_params.o \ 738c2ecf20Sopenharmony_ci display/intel_display_debugfs.o \ 748c2ecf20Sopenharmony_ci display/intel_pipe_crc.o 758c2ecf20Sopenharmony_cii915-$(CONFIG_PERF_EVENTS) += i915_pmu.o 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_ci# "Graphics Technology" (aka we talk to the gpu) 788c2ecf20Sopenharmony_cigt-y += \ 798c2ecf20Sopenharmony_ci gt/debugfs_engines.o \ 808c2ecf20Sopenharmony_ci gt/debugfs_gt.o \ 818c2ecf20Sopenharmony_ci gt/debugfs_gt_pm.o \ 828c2ecf20Sopenharmony_ci gt/gen2_engine_cs.o \ 838c2ecf20Sopenharmony_ci gt/gen6_engine_cs.o \ 848c2ecf20Sopenharmony_ci gt/gen6_ppgtt.o \ 858c2ecf20Sopenharmony_ci gt/gen7_renderclear.o \ 868c2ecf20Sopenharmony_ci gt/gen8_ppgtt.o \ 878c2ecf20Sopenharmony_ci gt/intel_breadcrumbs.o \ 888c2ecf20Sopenharmony_ci gt/intel_context.o \ 898c2ecf20Sopenharmony_ci gt/intel_context_param.o \ 908c2ecf20Sopenharmony_ci gt/intel_context_sseu.o \ 918c2ecf20Sopenharmony_ci gt/intel_engine_cs.o \ 928c2ecf20Sopenharmony_ci gt/intel_engine_heartbeat.o \ 938c2ecf20Sopenharmony_ci gt/intel_engine_pm.o \ 948c2ecf20Sopenharmony_ci gt/intel_engine_user.o \ 958c2ecf20Sopenharmony_ci gt/intel_ggtt.o \ 968c2ecf20Sopenharmony_ci gt/intel_ggtt_fencing.o \ 978c2ecf20Sopenharmony_ci gt/intel_gt.o \ 988c2ecf20Sopenharmony_ci gt/intel_gt_buffer_pool.o \ 998c2ecf20Sopenharmony_ci gt/intel_gt_clock_utils.o \ 1008c2ecf20Sopenharmony_ci gt/intel_gt_irq.o \ 1018c2ecf20Sopenharmony_ci gt/intel_gt_pm.o \ 1028c2ecf20Sopenharmony_ci gt/intel_gt_pm_irq.o \ 1038c2ecf20Sopenharmony_ci gt/intel_gt_requests.o \ 1048c2ecf20Sopenharmony_ci gt/intel_gtt.o \ 1058c2ecf20Sopenharmony_ci gt/intel_llc.o \ 1068c2ecf20Sopenharmony_ci gt/intel_lrc.o \ 1078c2ecf20Sopenharmony_ci gt/intel_mocs.o \ 1088c2ecf20Sopenharmony_ci gt/intel_ppgtt.o \ 1098c2ecf20Sopenharmony_ci gt/intel_rc6.o \ 1108c2ecf20Sopenharmony_ci gt/intel_renderstate.o \ 1118c2ecf20Sopenharmony_ci gt/intel_reset.o \ 1128c2ecf20Sopenharmony_ci gt/intel_ring.o \ 1138c2ecf20Sopenharmony_ci gt/intel_ring_submission.o \ 1148c2ecf20Sopenharmony_ci gt/intel_rps.o \ 1158c2ecf20Sopenharmony_ci gt/intel_sseu.o \ 1168c2ecf20Sopenharmony_ci gt/intel_sseu_debugfs.o \ 1178c2ecf20Sopenharmony_ci gt/intel_timeline.o \ 1188c2ecf20Sopenharmony_ci gt/intel_workarounds.o \ 1198c2ecf20Sopenharmony_ci gt/shmem_utils.o \ 1208c2ecf20Sopenharmony_ci gt/sysfs_engines.o 1218c2ecf20Sopenharmony_ci# autogenerated null render state 1228c2ecf20Sopenharmony_cigt-y += \ 1238c2ecf20Sopenharmony_ci gt/gen6_renderstate.o \ 1248c2ecf20Sopenharmony_ci gt/gen7_renderstate.o \ 1258c2ecf20Sopenharmony_ci gt/gen8_renderstate.o \ 1268c2ecf20Sopenharmony_ci gt/gen9_renderstate.o 1278c2ecf20Sopenharmony_cii915-y += $(gt-y) 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ci# GEM (Graphics Execution Management) code 1308c2ecf20Sopenharmony_cigem-y += \ 1318c2ecf20Sopenharmony_ci gem/i915_gem_busy.o \ 1328c2ecf20Sopenharmony_ci gem/i915_gem_clflush.o \ 1338c2ecf20Sopenharmony_ci gem/i915_gem_client_blt.o \ 1348c2ecf20Sopenharmony_ci gem/i915_gem_context.o \ 1358c2ecf20Sopenharmony_ci gem/i915_gem_dmabuf.o \ 1368c2ecf20Sopenharmony_ci gem/i915_gem_domain.o \ 1378c2ecf20Sopenharmony_ci gem/i915_gem_execbuffer.o \ 1388c2ecf20Sopenharmony_ci gem/i915_gem_fence.o \ 1398c2ecf20Sopenharmony_ci gem/i915_gem_internal.o \ 1408c2ecf20Sopenharmony_ci gem/i915_gem_object.o \ 1418c2ecf20Sopenharmony_ci gem/i915_gem_object_blt.o \ 1428c2ecf20Sopenharmony_ci gem/i915_gem_lmem.o \ 1438c2ecf20Sopenharmony_ci gem/i915_gem_mman.o \ 1448c2ecf20Sopenharmony_ci gem/i915_gem_pages.o \ 1458c2ecf20Sopenharmony_ci gem/i915_gem_phys.o \ 1468c2ecf20Sopenharmony_ci gem/i915_gem_pm.o \ 1478c2ecf20Sopenharmony_ci gem/i915_gem_region.o \ 1488c2ecf20Sopenharmony_ci gem/i915_gem_shmem.o \ 1498c2ecf20Sopenharmony_ci gem/i915_gem_shrinker.o \ 1508c2ecf20Sopenharmony_ci gem/i915_gem_stolen.o \ 1518c2ecf20Sopenharmony_ci gem/i915_gem_throttle.o \ 1528c2ecf20Sopenharmony_ci gem/i915_gem_tiling.o \ 1538c2ecf20Sopenharmony_ci gem/i915_gem_userptr.o \ 1548c2ecf20Sopenharmony_ci gem/i915_gem_wait.o \ 1558c2ecf20Sopenharmony_ci gem/i915_gemfs.o 1568c2ecf20Sopenharmony_cii915-y += \ 1578c2ecf20Sopenharmony_ci $(gem-y) \ 1588c2ecf20Sopenharmony_ci i915_active.o \ 1598c2ecf20Sopenharmony_ci i915_buddy.o \ 1608c2ecf20Sopenharmony_ci i915_cmd_parser.o \ 1618c2ecf20Sopenharmony_ci i915_gem_evict.o \ 1628c2ecf20Sopenharmony_ci i915_gem_gtt.o \ 1638c2ecf20Sopenharmony_ci i915_gem.o \ 1648c2ecf20Sopenharmony_ci i915_globals.o \ 1658c2ecf20Sopenharmony_ci i915_query.o \ 1668c2ecf20Sopenharmony_ci i915_request.o \ 1678c2ecf20Sopenharmony_ci i915_scheduler.o \ 1688c2ecf20Sopenharmony_ci i915_trace_points.o \ 1698c2ecf20Sopenharmony_ci i915_vma.o \ 1708c2ecf20Sopenharmony_ci intel_region_lmem.o \ 1718c2ecf20Sopenharmony_ci intel_wopcm.o 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_ci# general-purpose microcontroller (GuC) support 1748c2ecf20Sopenharmony_cii915-y += gt/uc/intel_uc.o \ 1758c2ecf20Sopenharmony_ci gt/uc/intel_uc_debugfs.o \ 1768c2ecf20Sopenharmony_ci gt/uc/intel_uc_fw.o \ 1778c2ecf20Sopenharmony_ci gt/uc/intel_guc.o \ 1788c2ecf20Sopenharmony_ci gt/uc/intel_guc_ads.o \ 1798c2ecf20Sopenharmony_ci gt/uc/intel_guc_ct.o \ 1808c2ecf20Sopenharmony_ci gt/uc/intel_guc_debugfs.o \ 1818c2ecf20Sopenharmony_ci gt/uc/intel_guc_fw.o \ 1828c2ecf20Sopenharmony_ci gt/uc/intel_guc_log.o \ 1838c2ecf20Sopenharmony_ci gt/uc/intel_guc_log_debugfs.o \ 1848c2ecf20Sopenharmony_ci gt/uc/intel_guc_submission.o \ 1858c2ecf20Sopenharmony_ci gt/uc/intel_huc.o \ 1868c2ecf20Sopenharmony_ci gt/uc/intel_huc_debugfs.o \ 1878c2ecf20Sopenharmony_ci gt/uc/intel_huc_fw.o 1888c2ecf20Sopenharmony_ci 1898c2ecf20Sopenharmony_ci# modesetting core code 1908c2ecf20Sopenharmony_cii915-y += \ 1918c2ecf20Sopenharmony_ci display/intel_atomic.o \ 1928c2ecf20Sopenharmony_ci display/intel_atomic_plane.o \ 1938c2ecf20Sopenharmony_ci display/intel_audio.o \ 1948c2ecf20Sopenharmony_ci display/intel_bios.o \ 1958c2ecf20Sopenharmony_ci display/intel_bw.o \ 1968c2ecf20Sopenharmony_ci display/intel_cdclk.o \ 1978c2ecf20Sopenharmony_ci display/intel_color.o \ 1988c2ecf20Sopenharmony_ci display/intel_combo_phy.o \ 1998c2ecf20Sopenharmony_ci display/intel_connector.o \ 2008c2ecf20Sopenharmony_ci display/intel_csr.o \ 2018c2ecf20Sopenharmony_ci display/intel_display.o \ 2028c2ecf20Sopenharmony_ci display/intel_display_power.o \ 2038c2ecf20Sopenharmony_ci display/intel_dpio_phy.o \ 2048c2ecf20Sopenharmony_ci display/intel_dpll_mgr.o \ 2058c2ecf20Sopenharmony_ci display/intel_dsb.o \ 2068c2ecf20Sopenharmony_ci display/intel_fbc.o \ 2078c2ecf20Sopenharmony_ci display/intel_fifo_underrun.o \ 2088c2ecf20Sopenharmony_ci display/intel_frontbuffer.o \ 2098c2ecf20Sopenharmony_ci display/intel_global_state.o \ 2108c2ecf20Sopenharmony_ci display/intel_hdcp.o \ 2118c2ecf20Sopenharmony_ci display/intel_hotplug.o \ 2128c2ecf20Sopenharmony_ci display/intel_lpe_audio.o \ 2138c2ecf20Sopenharmony_ci display/intel_overlay.o \ 2148c2ecf20Sopenharmony_ci display/intel_psr.o \ 2158c2ecf20Sopenharmony_ci display/intel_quirks.o \ 2168c2ecf20Sopenharmony_ci display/intel_sprite.o \ 2178c2ecf20Sopenharmony_ci display/intel_tc.o \ 2188c2ecf20Sopenharmony_ci display/intel_vga.o 2198c2ecf20Sopenharmony_cii915-$(CONFIG_ACPI) += \ 2208c2ecf20Sopenharmony_ci display/intel_acpi.o \ 2218c2ecf20Sopenharmony_ci display/intel_opregion.o 2228c2ecf20Sopenharmony_cii915-$(CONFIG_DRM_FBDEV_EMULATION) += \ 2238c2ecf20Sopenharmony_ci display/intel_fbdev.o 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ci# modesetting output/encoder code 2268c2ecf20Sopenharmony_cii915-y += \ 2278c2ecf20Sopenharmony_ci display/dvo_ch7017.o \ 2288c2ecf20Sopenharmony_ci display/dvo_ch7xxx.o \ 2298c2ecf20Sopenharmony_ci display/dvo_ivch.o \ 2308c2ecf20Sopenharmony_ci display/dvo_ns2501.o \ 2318c2ecf20Sopenharmony_ci display/dvo_sil164.o \ 2328c2ecf20Sopenharmony_ci display/dvo_tfp410.o \ 2338c2ecf20Sopenharmony_ci display/icl_dsi.o \ 2348c2ecf20Sopenharmony_ci display/intel_crt.o \ 2358c2ecf20Sopenharmony_ci display/intel_ddi.o \ 2368c2ecf20Sopenharmony_ci display/intel_dp.o \ 2378c2ecf20Sopenharmony_ci display/intel_dp_aux_backlight.o \ 2388c2ecf20Sopenharmony_ci display/intel_dp_hdcp.o \ 2398c2ecf20Sopenharmony_ci display/intel_dp_link_training.o \ 2408c2ecf20Sopenharmony_ci display/intel_dp_mst.o \ 2418c2ecf20Sopenharmony_ci display/intel_dsi.o \ 2428c2ecf20Sopenharmony_ci display/intel_dsi_dcs_backlight.o \ 2438c2ecf20Sopenharmony_ci display/intel_dsi_vbt.o \ 2448c2ecf20Sopenharmony_ci display/intel_dvo.o \ 2458c2ecf20Sopenharmony_ci display/intel_gmbus.o \ 2468c2ecf20Sopenharmony_ci display/intel_hdmi.o \ 2478c2ecf20Sopenharmony_ci display/intel_lspcon.o \ 2488c2ecf20Sopenharmony_ci display/intel_lvds.o \ 2498c2ecf20Sopenharmony_ci display/intel_panel.o \ 2508c2ecf20Sopenharmony_ci display/intel_sdvo.o \ 2518c2ecf20Sopenharmony_ci display/intel_tv.o \ 2528c2ecf20Sopenharmony_ci display/intel_vdsc.o \ 2538c2ecf20Sopenharmony_ci display/vlv_dsi.o \ 2548c2ecf20Sopenharmony_ci display/vlv_dsi_pll.o 2558c2ecf20Sopenharmony_ci 2568c2ecf20Sopenharmony_cii915-y += i915_perf.o 2578c2ecf20Sopenharmony_ci 2588c2ecf20Sopenharmony_ci# Post-mortem debug and GPU hang state capture 2598c2ecf20Sopenharmony_cii915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o 2608c2ecf20Sopenharmony_cii915-$(CONFIG_DRM_I915_SELFTEST) += \ 2618c2ecf20Sopenharmony_ci gem/selftests/igt_gem_utils.o \ 2628c2ecf20Sopenharmony_ci selftests/i915_random.o \ 2638c2ecf20Sopenharmony_ci selftests/i915_selftest.o \ 2648c2ecf20Sopenharmony_ci selftests/igt_atomic.o \ 2658c2ecf20Sopenharmony_ci selftests/igt_flush_test.o \ 2668c2ecf20Sopenharmony_ci selftests/igt_live_test.o \ 2678c2ecf20Sopenharmony_ci selftests/igt_mmap.o \ 2688c2ecf20Sopenharmony_ci selftests/igt_reset.o \ 2698c2ecf20Sopenharmony_ci selftests/igt_spinner.o \ 2708c2ecf20Sopenharmony_ci selftests/librapl.o 2718c2ecf20Sopenharmony_ci 2728c2ecf20Sopenharmony_ci# virtual gpu code 2738c2ecf20Sopenharmony_cii915-y += i915_vgpu.o 2748c2ecf20Sopenharmony_ci 2758c2ecf20Sopenharmony_ciifeq ($(CONFIG_DRM_I915_GVT),y) 2768c2ecf20Sopenharmony_cii915-y += intel_gvt.o 2778c2ecf20Sopenharmony_ciinclude $(src)/gvt/Makefile 2788c2ecf20Sopenharmony_ciendif 2798c2ecf20Sopenharmony_ci 2808c2ecf20Sopenharmony_ciobj-$(CONFIG_DRM_I915) += i915.o 2818c2ecf20Sopenharmony_ciobj-$(CONFIG_DRM_I915_GVT_KVMGT) += gvt/kvmgt.o 2828c2ecf20Sopenharmony_ci 2838c2ecf20Sopenharmony_ci# header test 2848c2ecf20Sopenharmony_ci 2858c2ecf20Sopenharmony_ci# exclude some broken headers from the test coverage 2868c2ecf20Sopenharmony_cino-header-test := \ 2878c2ecf20Sopenharmony_ci display/intel_vbt_defs.h \ 2888c2ecf20Sopenharmony_ci gvt/execlist.h \ 2898c2ecf20Sopenharmony_ci gvt/fb_decoder.h \ 2908c2ecf20Sopenharmony_ci gvt/gtt.h \ 2918c2ecf20Sopenharmony_ci gvt/gvt.h \ 2928c2ecf20Sopenharmony_ci gvt/interrupt.h \ 2938c2ecf20Sopenharmony_ci gvt/mmio_context.h \ 2948c2ecf20Sopenharmony_ci gvt/mpt.h \ 2958c2ecf20Sopenharmony_ci gvt/scheduler.h 2968c2ecf20Sopenharmony_ci 2978c2ecf20Sopenharmony_ciextra-$(CONFIG_DRM_I915_WERROR) += \ 2988c2ecf20Sopenharmony_ci $(patsubst %.h,%.hdrtest, $(filter-out $(no-header-test), \ 2998c2ecf20Sopenharmony_ci $(shell cd $(srctree)/$(src) && find * -name '*.h'))) 3008c2ecf20Sopenharmony_ci 3018c2ecf20Sopenharmony_ciquiet_cmd_hdrtest = HDRTEST $(patsubst %.hdrtest,%.h,$@) 3028c2ecf20Sopenharmony_ci cmd_hdrtest = $(CC) $(filter-out $(CFLAGS_GCOV), $(c_flags)) -S -o /dev/null -x c /dev/null -include $<; touch $@ 3038c2ecf20Sopenharmony_ci 3048c2ecf20Sopenharmony_ci$(obj)/%.hdrtest: $(src)/%.h FORCE 3058c2ecf20Sopenharmony_ci $(call if_changed_dep,hdrtest) 306