Makefile 7.9 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 \
49
	  intel_device_info.o \
50
	  intel_memory_region.o \
51
	  intel_pch.o \
52
	  intel_pm.o \
53
	  intel_runtime_pm.o \
54 55
	  intel_sideband.o \
	  intel_uncore.o \
56 57
	  intel_wakeref.o \
	  vlv_suspend.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 70 71
i915-$(CONFIG_DEBUG_FS) += \
	i915_debugfs.o \
	i915_debugfs_params.o \
72
	display/intel_display_debugfs.o \
73
	display/intel_pipe_crc.o
74
i915-$(CONFIG_PERF_EVENTS) += i915_pmu.o
D
Daniel Vetter 已提交
75

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

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

165
# general-purpose microcontroller (GuC) support
166 167 168 169 170 171 172 173 174 175
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
176

D
Daniel Vetter 已提交
177
# modesetting core code
178 179 180 181 182 183 184 185 186 187
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 \
188
	display/intel_csr.o \
189 190 191 192
	display/intel_display.o \
	display/intel_display_power.o \
	display/intel_dpio_phy.o \
	display/intel_dpll_mgr.o \
193
	display/intel_dsb.o \
194 195 196
	display/intel_fbc.o \
	display/intel_fifo_underrun.o \
	display/intel_frontbuffer.o \
197
	display/intel_global_state.o \
198 199 200 201 202 203
	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 \
204
	display/intel_sprite.o \
205 206
	display/intel_tc.o \
	display/intel_vga.o
207 208 209 210 211
i915-$(CONFIG_ACPI) += \
	display/intel_acpi.o \
	display/intel_opregion.o
i915-$(CONFIG_DRM_FBDEV_EMULATION) += \
	display/intel_fbdev.o
D
Daniel Vetter 已提交
212 213

# modesetting output/encoder code
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241
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
242

243 244 245 246 247 248 249 250 251 252 253 254 255 256 257
# 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 \
258 259
	oa/i915_oa_icl.o \
	oa/i915_oa_tgl.o
260 261
i915-y += i915_perf.o

262 263
# Post-mortem debug and GPU hang state capture
i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o
264
i915-$(CONFIG_DRM_I915_SELFTEST) += \
265
	gem/selftests/igt_gem_utils.o \
266
	selftests/i915_random.o \
267
	selftests/i915_selftest.o \
268
	selftests/igt_atomic.o \
269
	selftests/igt_flush_test.o \
270
	selftests/igt_live_test.o \
271
	selftests/igt_mmap.o \
272
	selftests/igt_reset.o \
273
	selftests/igt_spinner.o
274

275 276 277
# virtual gpu code
i915-y += i915_vgpu.o

278 279 280 281 282
ifeq ($(CONFIG_DRM_I915_GVT),y)
i915-y += intel_gvt.o
include $(src)/gvt/Makefile
endif

283
obj-$(CONFIG_DRM_I915) += i915.o
284
obj-$(CONFIG_DRM_I915_GVT_KVMGT) += gvt/kvmgt.o
285 286 287 288 289 290 291 292 293 294 295 296 297

# 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 \
298
	gvt/scheduler.h
299 300 301 302 303 304

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,$@)
305
      cmd_hdrtest = $(CC) $(filter-out $(CFLAGS_GCOV), $(c_flags)) -S -o /dev/null -x c /dev/null -include $<; touch $@
306 307 308

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