| # SPDX-License-Identifier: GPL-2.0 | |
| # | |
| # Makefile for the drm device driver. This driver provides support for the | |
| # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. | |
| # Enable W=1 warnings not enabled in drm subsystem Makefile | |
| subdir-ccflags-y += $(call cc-option, -Wformat-truncation) | |
| # Enable -Werror in CI and development | |
| subdir-ccflags-$(CONFIG_DRM_XE_WERROR) += -Werror | |
| subdir-ccflags-y += -I$(obj) -I$(src) | |
| # generated sources | |
| hostprogs := xe_gen_wa_oob | |
| generated_oob := $(obj)/generated/xe_wa_oob.c $(obj)/generated/xe_wa_oob.h | |
| quiet_cmd_wa_oob = GEN $(notdir $(generated_oob)) | |
| cmd_wa_oob = mkdir -p $(@D); $(obj)/xe_gen_wa_oob $(src)/xe_wa_oob.rules $(generated_oob) | |
| $(obj)/generated/%_wa_oob.c $(obj)/generated/%_wa_oob.h: $(obj)/xe_gen_wa_oob \ | |
| $(src)/xe_wa_oob.rules | |
| $(call cmd,wa_oob) | |
| generated_device_oob := $(obj)/generated/xe_device_wa_oob.c $(obj)/generated/xe_device_wa_oob.h | |
| quiet_cmd_device_wa_oob = GEN $(notdir $(generated_device_oob)) | |
| cmd_device_wa_oob = mkdir -p $(@D); $(obj)/xe_gen_wa_oob $(src)/xe_device_wa_oob.rules $(generated_device_oob) | |
| $(obj)/generated/%_device_wa_oob.c $(obj)/generated/%_device_wa_oob.h: $(obj)/xe_gen_wa_oob \ | |
| $(src)/xe_device_wa_oob.rules | |
| $(call cmd,device_wa_oob) | |
| # Please keep these build lists sorted! | |
| # core driver code | |
| xe-y += xe_bb.o \ | |
| xe_bo.o \ | |
| xe_bo_evict.o \ | |
| xe_dep_scheduler.o \ | |
| xe_devcoredump.o \ | |
| xe_device.o \ | |
| xe_device_sysfs.o \ | |
| xe_dma_buf.o \ | |
| xe_drm_client.o \ | |
| xe_drm_ras.o \ | |
| xe_eu_stall.o \ | |
| xe_exec.o \ | |
| xe_exec_queue.o \ | |
| xe_execlist.o \ | |
| xe_force_wake.o \ | |
| xe_ggtt.o \ | |
| xe_gpu_scheduler.o \ | |
| xe_gsc.o \ | |
| xe_gsc_debugfs.o \ | |
| xe_gsc_proxy.o \ | |
| xe_gsc_submit.o \ | |
| xe_gt.o \ | |
| xe_gt_ccs_mode.o \ | |
| xe_gt_clock.o \ | |
| xe_gt_freq.o \ | |
| xe_gt_idle.o \ | |
| xe_gt_mcr.o \ | |
| xe_gt_sysfs.o \ | |
| xe_gt_throttle.o \ | |
| xe_gt_topology.o \ | |
| xe_guc.o \ | |
| xe_guc_ads.o \ | |
| xe_guc_buf.o \ | |
| xe_guc_capture.o \ | |
| xe_guc_ct.o \ | |
| xe_guc_db_mgr.o \ | |
| xe_guc_engine_activity.o \ | |
| xe_guc_hwconfig.o \ | |
| xe_guc_id_mgr.o \ | |
| xe_guc_klv_helpers.o \ | |
| xe_guc_log.o \ | |
| xe_guc_pagefault.o \ | |
| xe_guc_pc.o \ | |
| xe_guc_rc.o \ | |
| xe_guc_submit.o \ | |
| xe_guc_tlb_inval.o \ | |
| xe_heci_gsc.o \ | |
| xe_huc.o \ | |
| xe_hw_engine.o \ | |
| xe_hw_engine_class_sysfs.o \ | |
| xe_hw_engine_group.o \ | |
| xe_hw_error.o \ | |
| xe_hw_fence.o \ | |
| xe_irq.o \ | |
| xe_late_bind_fw.o \ | |
| xe_lrc.o \ | |
| xe_mem_pool.o \ | |
| xe_migrate.o \ | |
| xe_mmio.o \ | |
| xe_mmio_gem.o \ | |
| xe_mocs.o \ | |
| xe_module.o \ | |
| xe_nvm.o \ | |
| xe_oa.o \ | |
| xe_observation.o \ | |
| xe_pagefault.o \ | |
| xe_page_reclaim.o \ | |
| xe_pat.o \ | |
| xe_pci.o \ | |
| xe_pci_error.o \ | |
| xe_pci_rebar.o \ | |
| xe_pcode.o \ | |
| xe_pm.o \ | |
| xe_preempt_fence.o \ | |
| xe_psmi.o \ | |
| xe_pt.o \ | |
| xe_pt_walk.o \ | |
| xe_pxp.o \ | |
| xe_pxp_debugfs.o \ | |
| xe_pxp_submit.o \ | |
| xe_query.o \ | |
| xe_range_fence.o \ | |
| xe_ras.o \ | |
| xe_reg_sr.o \ | |
| xe_reg_whitelist.o \ | |
| xe_ring_ops.o \ | |
| xe_rtp.o \ | |
| xe_sa.o \ | |
| xe_sched_job.o \ | |
| xe_shrinker.o \ | |
| xe_soc_remapper.o \ | |
| xe_step.o \ | |
| xe_survivability_mode.o \ | |
| xe_sync.o \ | |
| xe_sysctrl.o \ | |
| xe_sysctrl_event.o \ | |
| xe_sysctrl_mailbox.o \ | |
| xe_tile.o \ | |
| xe_tile_sysfs.o \ | |
| xe_tlb_inval.o \ | |
| xe_tlb_inval_job.o \ | |
| xe_trace.o \ | |
| xe_trace_bo.o \ | |
| xe_trace_guc.o \ | |
| xe_trace_lrc.o \ | |
| xe_ttm_stolen_mgr.o \ | |
| xe_ttm_sys_mgr.o \ | |
| xe_ttm_vram_mgr.o \ | |
| xe_tuning.o \ | |
| xe_uc.o \ | |
| xe_uc_fw.o \ | |
| xe_validation.o \ | |
| xe_vm.o \ | |
| xe_vm_madvise.o \ | |
| xe_vram.o \ | |
| xe_vram_freq.o \ | |
| xe_vsec.o \ | |
| xe_wa.o \ | |
| xe_wait_user_fence.o \ | |
| xe_wopcm.o | |
| xe-$(CONFIG_I2C) += xe_i2c.o \ | |
| xe_amc.o | |
| xe-$(CONFIG_DRM_XE_GPUSVM) += xe_svm.o | |
| xe-$(CONFIG_DRM_GPUSVM) += xe_userptr.o | |
| # graphics hardware monitoring (HWMON) support | |
| xe-$(CONFIG_HWMON) += xe_hwmon.o | |
| xe-$(CONFIG_PERF_EVENTS) += xe_pmu.o | |
| xe-$(CONFIG_CONFIGFS_FS) += xe_configfs.o | |
| # graphics virtualization (SR-IOV) support | |
| xe-y += \ | |
| xe_gt_sriov_vf.o \ | |
| xe_guc_relay.o \ | |
| xe_memirq.o \ | |
| xe_sriov.o \ | |
| xe_sriov_vf.o \ | |
| xe_sriov_vf_ccs.o \ | |
| xe_tile_sriov_vf.o | |
| xe-$(CONFIG_PCI_IOV) += \ | |
| xe_gt_sriov_pf.o \ | |
| xe_gt_sriov_pf_config.o \ | |
| xe_gt_sriov_pf_control.o \ | |
| xe_gt_sriov_pf_migration.o \ | |
| xe_gt_sriov_pf_monitor.o \ | |
| xe_gt_sriov_pf_policy.o \ | |
| xe_gt_sriov_pf_service.o \ | |
| xe_lmtt.o \ | |
| xe_lmtt_2l.o \ | |
| xe_lmtt_ml.o \ | |
| xe_mert.o \ | |
| xe_pci_sriov.o \ | |
| xe_sriov_packet.o \ | |
| xe_sriov_pf.o \ | |
| xe_sriov_pf_control.o \ | |
| xe_sriov_pf_debugfs.o \ | |
| xe_sriov_pf_migration.o \ | |
| xe_sriov_pf_provision.o \ | |
| xe_sriov_pf_service.o \ | |
| xe_sriov_pf_sysfs.o \ | |
| xe_tile_sriov_pf_debugfs.o | |
| ifdef CONFIG_XE_VFIO_PCI | |
| xe-$(CONFIG_PCI_IOV) += xe_sriov_vfio.o | |
| endif | |
| # include helpers for tests even when XE is built-in | |
| ifdef CONFIG_DRM_XE_KUNIT_TEST | |
| xe-y += tests/xe_kunit_helpers.o | |
| endif | |
| # i915 Display compat #defines and #includes | |
| subdir-ccflags-$(CONFIG_DRM_XE_DISPLAY) += \ | |
| -I$(src)/compat-i915-headers \ | |
| -I$(srctree)/drivers/gpu/drm/i915/display/ | |
| # Rule to build display code shared with i915 | |
| $(obj)/i915-display/%.o: $(srctree)/drivers/gpu/drm/i915/display/%.c FORCE | |
| $(call cmd,force_checksrc) | |
| $(call if_changed_rule,cc_o_c) | |
| # Display code specific to xe | |
| xe-$(CONFIG_DRM_XE_DISPLAY) += \ | |
| display/xe_display.o \ | |
| display/xe_display_bo.o \ | |
| display/xe_display_pcode.o \ | |
| display/xe_display_rpm.o \ | |
| display/xe_display_wa.o \ | |
| display/xe_dsb_buffer.o \ | |
| display/xe_fb_pin.o \ | |
| display/xe_frontbuffer.o \ | |
| display/xe_hdcp_gsc.o \ | |
| display/xe_initial_plane.o \ | |
| display/xe_panic.o \ | |
| display/xe_stolen.o \ | |
| display/xe_tdf.o | |
| # Display code shared with i915 | |
| xe-$(CONFIG_DRM_XE_DISPLAY) += \ | |
| i915-display/icl_dsi.o \ | |
| i915-display/intel_alpm.o \ | |
| i915-display/intel_atomic.o \ | |
| i915-display/intel_audio.o \ | |
| i915-display/intel_backlight.o \ | |
| i915-display/intel_bios.o \ | |
| i915-display/intel_bo.o \ | |
| i915-display/intel_bw.o \ | |
| i915-display/intel_casf.o \ | |
| i915-display/intel_cdclk.o \ | |
| i915-display/intel_cmtg.o \ | |
| i915-display/intel_color.o \ | |
| i915-display/intel_colorop.o \ | |
| i915-display/intel_color_pipeline.o \ | |
| i915-display/intel_combo_phy.o \ | |
| i915-display/intel_connector.o \ | |
| i915-display/intel_crtc.o \ | |
| i915-display/intel_crtc_state_dump.o \ | |
| i915-display/intel_cursor.o \ | |
| i915-display/intel_cx0_phy.o \ | |
| i915-display/intel_dbuf_bw.o \ | |
| i915-display/intel_ddi.o \ | |
| i915-display/intel_ddi_buf_trans.o \ | |
| i915-display/intel_de.o \ | |
| i915-display/intel_display.o \ | |
| i915-display/intel_display_conversion.o \ | |
| i915-display/intel_display_device.o \ | |
| i915-display/intel_display_driver.o \ | |
| i915-display/intel_display_irq.o \ | |
| i915-display/intel_display_params.o \ | |
| i915-display/intel_display_power.o \ | |
| i915-display/intel_display_power_map.o \ | |
| i915-display/intel_display_power_well.o \ | |
| i915-display/intel_display_reset.o \ | |
| i915-display/intel_display_rpm.o \ | |
| i915-display/intel_display_rps.o \ | |
| i915-display/intel_display_trace.o \ | |
| i915-display/intel_display_utils.o \ | |
| i915-display/intel_display_wa.o \ | |
| i915-display/intel_dkl_phy.o \ | |
| i915-display/intel_dmc.o \ | |
| i915-display/intel_dmc_wl.o \ | |
| i915-display/intel_dp.o \ | |
| i915-display/intel_dp_aux.o \ | |
| i915-display/intel_dp_aux_backlight.o \ | |
| i915-display/intel_dp_hdcp.o \ | |
| i915-display/intel_dp_link_caps.o \ | |
| i915-display/intel_dp_link_training.o \ | |
| i915-display/intel_dp_mst.o \ | |
| i915-display/intel_dp_test.o \ | |
| i915-display/intel_dpll.o \ | |
| i915-display/intel_dpll_mgr.o \ | |
| i915-display/intel_dpt.o \ | |
| i915-display/intel_dram.o \ | |
| i915-display/intel_drrs.o \ | |
| i915-display/intel_dsb.o \ | |
| i915-display/intel_dsi.o \ | |
| i915-display/intel_dsi_dcs_backlight.o \ | |
| i915-display/intel_dsi_vbt.o \ | |
| i915-display/intel_encoder.o \ | |
| i915-display/intel_fb.o \ | |
| i915-display/intel_fbc.o \ | |
| i915-display/intel_fdi.o \ | |
| i915-display/intel_fifo_underrun.o \ | |
| i915-display/intel_flipq.o \ | |
| i915-display/intel_frontbuffer.o \ | |
| i915-display/intel_global_state.o \ | |
| i915-display/intel_gmbus.o \ | |
| i915-display/intel_hdcp.o \ | |
| i915-display/intel_hdcp_gsc_message.o \ | |
| i915-display/intel_hdmi.o \ | |
| i915-display/intel_hotplug.o \ | |
| i915-display/intel_hotplug_irq.o \ | |
| i915-display/intel_hti.o \ | |
| i915-display/intel_initial_plane.o \ | |
| i915-display/intel_link_bw.o \ | |
| i915-display/intel_lspcon.o \ | |
| i915-display/intel_lt_phy.o \ | |
| i915-display/intel_mchbar.o \ | |
| i915-display/intel_modeset_lock.o \ | |
| i915-display/intel_modeset_setup.o \ | |
| i915-display/intel_modeset_verify.o \ | |
| i915-display/intel_overlay.o \ | |
| i915-display/intel_panel.o \ | |
| i915-display/intel_parent.o \ | |
| i915-display/intel_pch.o \ | |
| i915-display/intel_pfit.o \ | |
| i915-display/intel_plane.o \ | |
| i915-display/intel_pmdemand.o \ | |
| i915-display/intel_pps.o \ | |
| i915-display/intel_psr.o \ | |
| i915-display/intel_qp_tables.o \ | |
| i915-display/intel_quirks.o \ | |
| i915-display/intel_rom.o \ | |
| i915-display/intel_snps_hdmi_pll.o \ | |
| i915-display/intel_snps_phy.o \ | |
| i915-display/intel_tc.o \ | |
| i915-display/intel_vblank.o \ | |
| i915-display/intel_vdsc.o \ | |
| i915-display/intel_vga.o \ | |
| i915-display/intel_vrr.o \ | |
| i915-display/intel_wm.o \ | |
| i915-display/skl_prefill.o \ | |
| i915-display/skl_scaler.o \ | |
| i915-display/skl_universal_plane.o \ | |
| i915-display/skl_watermark.o \ | |
| i915-display/vlv_sideband.o | |
| ifeq ($(CONFIG_ACPI),y) | |
| xe-$(CONFIG_DRM_XE_DISPLAY) += \ | |
| i915-display/intel_acpi.o \ | |
| i915-display/intel_opregion.o | |
| endif | |
| ifeq ($(CONFIG_DRM_FBDEV_EMULATION),y) | |
| xe-$(CONFIG_DRM_XE_DISPLAY) += i915-display/intel_fbdev.o | |
| endif | |
| ifeq ($(CONFIG_DEBUG_FS),y) | |
| xe-y += xe_debugfs.o \ | |
| xe_gt_debugfs.o \ | |
| xe_gt_sriov_vf_debugfs.o \ | |
| xe_gt_stats.o \ | |
| xe_guc_debugfs.o \ | |
| xe_huc_debugfs.o \ | |
| xe_tile_debugfs.o \ | |
| xe_uc_debugfs.o | |
| xe-$(CONFIG_PCI_IOV) += xe_gt_sriov_pf_debugfs.o | |
| xe-$(CONFIG_DRM_XE_DISPLAY) += \ | |
| i915-display/intel_display_debugfs.o \ | |
| i915-display/intel_display_debugfs_params.o \ | |
| i915-display/intel_pipe_crc.o | |
| endif | |
| xe-$(CONFIG_DRM_XE_DP_TUNNEL) += \ | |
| i915-display/intel_dp_tunnel.o | |
| obj-$(CONFIG_DRM_XE) += xe.o | |
| obj-$(CONFIG_DRM_XE_KUNIT_TEST) += tests/ | |
| ifeq ($(CONFIG_DRM_XE_DISPLAY),y) | |
| obj-$(CONFIG_DRM_XE_KUNIT_TEST) += display/tests/ | |
| endif | |
| # header test | |
| hdrtest_find_args := -not -path xe_rtp_helpers.h | |
| ifneq ($(CONFIG_DRM_XE_DISPLAY),y) | |
| hdrtest_find_args += -not -path display/\* -not -path compat-i915-headers/\* -not -path xe_display.h | |
| endif | |
| always-$(CONFIG_DRM_XE_WERROR) += \ | |
| $(patsubst %.h,%.hdrtest, $(shell cd $(src) && find * -name '*.h' $(hdrtest_find_args))) | |
| quiet_cmd_hdrtest = HDRTEST $(patsubst %.hdrtest,%.h,$@) | |
| cmd_hdrtest = $(CC) $(filter-out $(CFLAGS_GCOV), $(c_flags)) -S -o /dev/null -x c /dev/null -include $< -include $<; \ | |
| $(srctree)/scripts/kernel-doc -none -Werror $<; touch $@ | |
| $(obj)/%.hdrtest: $(src)/%.h FORCE | |
| $(call if_changed_dep,hdrtest) | |
| uses_generated_oob := $(addprefix $(obj)/, $(xe-y)) | |
| $(uses_generated_oob): $(obj)/generated/xe_wa_oob.h $(obj)/generated/xe_device_wa_oob.h |