Makefile 7.6 KB
Newer Older
1
# SPDX-License-Identifier: GPL-2.0
2 3 4 5
#
# Makefile for the drm device driver.  This driver provides support for the
# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.

6 7 8 9 10 11 12 13 14
# Add a set of useful warning flags and enable -Werror for CI to prevent
# trivial mistakes from creeping in. We have to do this piecemeal as we reject
# any patch that isn't warning clean, so turning on -Wall -Wextra (or W=1) we
# need to filter out dubious warnings.  Still it is our interest
# to keep running locally with W=1 C=1 until we are completely clean.
#
# Note the danger in using -Wall -Wextra is that when CI updates gcc we
# will most likely get a sudden build breakage... Hopefully we will fix
# new warnings before CI updates!
K
Kees Cook 已提交
15
subdir-ccflags-y := -Wall -Wextra
16 17 18
subdir-ccflags-y += $(call cc-disable-warning, unused-parameter)
subdir-ccflags-y += $(call cc-disable-warning, type-limits)
subdir-ccflags-y += $(call cc-disable-warning, missing-field-initializers)
19
subdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable)
20 21 22 23
# clang warnings
subdir-ccflags-y += $(call cc-disable-warning, sign-compare)
subdir-ccflags-y += $(call cc-disable-warning, sometimes-uninitialized)
subdir-ccflags-y += $(call cc-disable-warning, initializer-overrides)
24
subdir-ccflags-y += $(call cc-disable-warning, uninitialized)
25 26 27
subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror

# Fine grained warnings disable
28
CFLAGS_i915_pci.o = $(call cc-disable-warning, override-init)
29
CFLAGS_display/intel_fbdev.o = $(call cc-disable-warning, override-init)
30

31 32
subdir-ccflags-y += \
	$(call as-instr,movntdqa (%eax)$(comma)%xmm0,-DCONFIG_AS_MOVNTDQA)
33

34
subdir-ccflags-y += -I$(srctree)/$(src)
35

D
Daniel Vetter 已提交
36 37 38
# Please keep these build lists sorted!

# core driver code
39
i915-y += i915_drv.o \
D
Daniel Vetter 已提交
40
	  i915_irq.o \
41
	  i915_getparam.o \
D
Daniel Vetter 已提交
42
	  i915_params.o \
43
	  i915_pci.o \
44
	  i915_scatterlist.o \
P
Pedro Tammela 已提交
45
	  i915_suspend.o \
46
	  i915_switcheroo.o \
D
Daniel Vetter 已提交
47
	  i915_sysfs.o \
48
	  i915_utils.o \
D
Daniel Vetter 已提交
49
	  intel_csr.o \
50
	  intel_device_info.o \
51
	  intel_memory_region.o \
52
	  intel_pch.o \
53
	  intel_pm.o \
54
	  intel_runtime_pm.o \
55 56 57
	  intel_sideband.o \
	  intel_uncore.o \
	  intel_wakeref.o
58 59 60 61 62 63

# core library code
i915-y += \
	i915_memcpy.o \
	i915_mm.o \
	i915_sw_fence.o \
64
	i915_sw_fence_work.o \
65 66
	i915_syncmap.o \
	i915_user_extensions.o
67

D
Daniel Vetter 已提交
68
i915-$(CONFIG_COMPAT)   += i915_ioc32.o
69
i915-$(CONFIG_DEBUG_FS) += i915_debugfs.o display/intel_pipe_crc.o
70
i915-$(CONFIG_PERF_EVENTS) += i915_pmu.o
D
Daniel Vetter 已提交
71

72 73
# "Graphics Technology" (aka we talk to the gpu)
gt-y += \
74 75 76
	gt/debugfs_engines.o \
	gt/debugfs_gt.o \
	gt/debugfs_gt_pm.o \
77 78 79
	gt/intel_breadcrumbs.o \
	gt/intel_context.o \
	gt/intel_engine_cs.o \
80
	gt/intel_engine_heartbeat.o \
81
	gt/intel_engine_pm.o \
82
	gt/intel_engine_pool.o \
83
	gt/intel_engine_user.o \
84
	gt/intel_gt.o \
85
	gt/intel_gt_irq.o \
86
	gt/intel_gt_pm.o \
87
	gt/intel_gt_pm_irq.o \
88
	gt/intel_gt_requests.o \
A
Andi Shyti 已提交
89
	gt/intel_llc.o \
90
	gt/intel_lrc.o \
91
	gt/intel_mocs.o \
92
	gt/intel_rc6.o \
93
	gt/intel_renderstate.o \
94
	gt/intel_reset.o \
95 96
	gt/intel_ring.o \
	gt/intel_ring_submission.o \
97
	gt/intel_rps.o \
98
	gt/intel_sseu.o \
99
	gt/intel_timeline.o \
100
	gt/intel_workarounds.o
101 102 103 104 105 106
# autogenerated null render state
gt-y += \
	gt/gen6_renderstate.o \
	gt/gen7_renderstate.o \
	gt/gen8_renderstate.o \
	gt/gen9_renderstate.o
107 108 109
i915-y += $(gt-y)

# GEM (Graphics Execution Management) code
110
gem-y += \
111
	gem/i915_gem_busy.o \
112
	gem/i915_gem_clflush.o \
113
	gem/i915_gem_client_blt.o \
114 115
	gem/i915_gem_context.o \
	gem/i915_gem_dmabuf.o \
116
	gem/i915_gem_domain.o \
117
	gem/i915_gem_execbuffer.o \
118
	gem/i915_gem_fence.o \
119
	gem/i915_gem_internal.o \
120
	gem/i915_gem_object.o \
121
	gem/i915_gem_object_blt.o \
122
	gem/i915_gem_lmem.o \
123
	gem/i915_gem_mman.o \
124 125
	gem/i915_gem_pages.o \
	gem/i915_gem_phys.o \
126
	gem/i915_gem_pm.o \
127
	gem/i915_gem_region.o \
128 129 130
	gem/i915_gem_shmem.o \
	gem/i915_gem_shrinker.o \
	gem/i915_gem_stolen.o \
131
	gem/i915_gem_throttle.o \
132 133
	gem/i915_gem_tiling.o \
	gem/i915_gem_userptr.o \
134
	gem/i915_gem_wait.o \
135
	gem/i915_gemfs.o
136
i915-y += \
137
	  $(gem-y) \
138
	  i915_active.o \
M
Matthew Auld 已提交
139
	  i915_buddy.o \
140
	  i915_cmd_parser.o \
141
	  i915_gem_evict.o \
J
Joonas Lahtinen 已提交
142
	  i915_gem_fence_reg.o \
143
	  i915_gem_gtt.o \
D
Daniel Vetter 已提交
144
	  i915_gem.o \
145
	  i915_globals.o \
L
Lionel Landwerlin 已提交
146
	  i915_query.o \
147
	  i915_request.o \
148
	  i915_scheduler.o \
C
Chris Wilson 已提交
149
	  i915_trace_points.o \
J
Joonas Lahtinen 已提交
150
	  i915_vma.o \
151
	  intel_region_lmem.o \
152
	  intel_wopcm.o
D
Daniel Vetter 已提交
153

154
# general-purpose microcontroller (GuC) support
155 156 157 158 159 160 161 162 163 164
i915-y += gt/uc/intel_uc.o \
	  gt/uc/intel_uc_fw.o \
	  gt/uc/intel_guc.o \
	  gt/uc/intel_guc_ads.o \
	  gt/uc/intel_guc_ct.o \
	  gt/uc/intel_guc_fw.o \
	  gt/uc/intel_guc_log.o \
	  gt/uc/intel_guc_submission.o \
	  gt/uc/intel_huc.o \
	  gt/uc/intel_huc_fw.o
165

D
Daniel Vetter 已提交
166
# modesetting core code
167 168 169 170 171 172 173 174 175 176 177 178 179 180
i915-y += \
	display/intel_atomic.o \
	display/intel_atomic_plane.o \
	display/intel_audio.o \
	display/intel_bios.o \
	display/intel_bw.o \
	display/intel_cdclk.o \
	display/intel_color.o \
	display/intel_combo_phy.o \
	display/intel_connector.o \
	display/intel_display.o \
	display/intel_display_power.o \
	display/intel_dpio_phy.o \
	display/intel_dpll_mgr.o \
181
	display/intel_dsb.o \
182 183 184 185 186 187 188 189 190
	display/intel_fbc.o \
	display/intel_fifo_underrun.o \
	display/intel_frontbuffer.o \
	display/intel_hdcp.o \
	display/intel_hotplug.o \
	display/intel_lpe_audio.o \
	display/intel_overlay.o \
	display/intel_psr.o \
	display/intel_quirks.o \
191
	display/intel_sprite.o \
192 193
	display/intel_tc.o \
	display/intel_vga.o
194 195 196 197 198
i915-$(CONFIG_ACPI) += \
	display/intel_acpi.o \
	display/intel_opregion.o
i915-$(CONFIG_DRM_FBDEV_EMULATION) += \
	display/intel_fbdev.o
D
Daniel Vetter 已提交
199 200

# modesetting output/encoder code
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228
i915-y += \
	display/dvo_ch7017.o \
	display/dvo_ch7xxx.o \
	display/dvo_ivch.o \
	display/dvo_ns2501.o \
	display/dvo_sil164.o \
	display/dvo_tfp410.o \
	display/icl_dsi.o \
	display/intel_crt.o \
	display/intel_ddi.o \
	display/intel_dp.o \
	display/intel_dp_aux_backlight.o \
	display/intel_dp_link_training.o \
	display/intel_dp_mst.o \
	display/intel_dsi.o \
	display/intel_dsi_dcs_backlight.o \
	display/intel_dsi_vbt.o \
	display/intel_dvo.o \
	display/intel_gmbus.o \
	display/intel_hdmi.o \
	display/intel_lspcon.o \
	display/intel_lvds.o \
	display/intel_panel.o \
	display/intel_sdvo.o \
	display/intel_tv.o \
	display/intel_vdsc.o \
	display/vlv_dsi.o \
	display/vlv_dsi_pll.o
229

230 231 232 233 234 235 236 237 238 239 240 241 242 243 244
# perf code
i915-y += \
	oa/i915_oa_hsw.o \
	oa/i915_oa_bdw.o \
	oa/i915_oa_chv.o \
	oa/i915_oa_sklgt2.o \
	oa/i915_oa_sklgt3.o \
	oa/i915_oa_sklgt4.o \
	oa/i915_oa_bxt.o \
	oa/i915_oa_kblgt2.o \
	oa/i915_oa_kblgt3.o \
	oa/i915_oa_glk.o \
	oa/i915_oa_cflgt2.o \
	oa/i915_oa_cflgt3.o \
	oa/i915_oa_cnl.o \
245 246
	oa/i915_oa_icl.o \
	oa/i915_oa_tgl.o
247 248
i915-y += i915_perf.o

249 250
# Post-mortem debug and GPU hang state capture
i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o
251
i915-$(CONFIG_DRM_I915_SELFTEST) += \
252
	gem/selftests/igt_gem_utils.o \
253
	selftests/i915_random.o \
254
	selftests/i915_selftest.o \
255
	selftests/igt_atomic.o \
256
	selftests/igt_flush_test.o \
257
	selftests/igt_live_test.o \
258
	selftests/igt_mmap.o \
259
	selftests/igt_reset.o \
260
	selftests/igt_spinner.o
261

262 263 264
# virtual gpu code
i915-y += i915_vgpu.o

265 266 267 268 269
ifeq ($(CONFIG_DRM_I915_GVT),y)
i915-y += intel_gvt.o
include $(src)/gvt/Makefile
endif

270
obj-$(CONFIG_DRM_I915) += i915.o
271
obj-$(CONFIG_DRM_I915_GVT_KVMGT) += gvt/kvmgt.o
272 273 274 275 276 277 278 279 280 281 282 283 284

# header test

# exclude some broken headers from the test coverage
no-header-test := \
	display/intel_vbt_defs.h \
	gvt/execlist.h \
	gvt/fb_decoder.h \
	gvt/gtt.h \
	gvt/gvt.h \
	gvt/interrupt.h \
	gvt/mmio_context.h \
	gvt/mpt.h \
285
	gvt/scheduler.h
286 287 288 289 290 291 292 293 294 295

extra-$(CONFIG_DRM_I915_WERROR) += \
	$(patsubst %.h,%.hdrtest, $(filter-out $(no-header-test), \
		$(shell cd $(srctree)/$(src) && find * -name '*.h')))

quiet_cmd_hdrtest = HDRTEST $(patsubst %.hdrtest,%.h,$@)
      cmd_hdrtest = $(CC) $(c_flags) -S -o /dev/null -x c /dev/null -include $<; touch $@

$(obj)/%.hdrtest: $(src)/%.h FORCE
	$(call if_changed_dep,hdrtest)