Makefile 7.7 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
subdir-ccflags-y += $(call cc-disable-warning, frame-address)
26 27 28
subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror

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

32
subdir-ccflags-y += -I$(srctree)/$(src)
33

D
Daniel Vetter 已提交
34 35 36
# Please keep these build lists sorted!

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

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

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

75 76
# "Graphics Technology" (aka we talk to the gpu)
gt-y += \
77 78 79
	gt/debugfs_engines.o \
	gt/debugfs_gt.o \
	gt/debugfs_gt_pm.o \
80
	gt/gen6_ppgtt.o \
81
	gt/gen7_renderclear.o \
82
	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_ggtt_fencing.o \
94
	gt/intel_gt.o \
95
	gt/intel_gt_clock_utils.o \
96
	gt/intel_gt_irq.o \
97
	gt/intel_gt_pm.o \
98
	gt/intel_gt_pm_irq.o \
99
	gt/intel_gt_requests.o \
100
	gt/intel_gtt.o \
A
Andi Shyti 已提交
101
	gt/intel_llc.o \
102
	gt/intel_lrc.o \
103
	gt/intel_mocs.o \
104
	gt/intel_ppgtt.o \
105
	gt/intel_rc6.o \
106
	gt/intel_renderstate.o \
107
	gt/intel_reset.o \
108 109
	gt/intel_ring.o \
	gt/intel_ring_submission.o \
110
	gt/intel_rps.o \
111
	gt/intel_sseu.o \
112
	gt/intel_timeline.o \
113
	gt/intel_workarounds.o \
114
	gt/shmem_utils.o \
115
	gt/sysfs_engines.o
116 117 118 119 120 121
# autogenerated null render state
gt-y += \
	gt/gen6_renderstate.o \
	gt/gen7_renderstate.o \
	gt/gen8_renderstate.o \
	gt/gen9_renderstate.o
122 123 124
i915-y += $(gt-y)

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

168
# general-purpose microcontroller (GuC) support
169
i915-y += gt/uc/intel_uc.o \
170
	  gt/uc/intel_uc_debugfs.o \
171 172 173 174
	  gt/uc/intel_uc_fw.o \
	  gt/uc/intel_guc.o \
	  gt/uc/intel_guc_ads.o \
	  gt/uc/intel_guc_ct.o \
175
	  gt/uc/intel_guc_debugfs.o \
176 177
	  gt/uc/intel_guc_fw.o \
	  gt/uc/intel_guc_log.o \
178
	  gt/uc/intel_guc_log_debugfs.o \
179 180
	  gt/uc/intel_guc_submission.o \
	  gt/uc/intel_huc.o \
181
	  gt/uc/intel_huc_debugfs.o \
182
	  gt/uc/intel_huc_fw.o
183

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

# modesetting output/encoder code
221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248
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
249

250 251
i915-y += i915_perf.o

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

266 267 268
# virtual gpu code
i915-y += i915_vgpu.o

269 270 271 272 273
ifeq ($(CONFIG_DRM_I915_GVT),y)
i915-y += intel_gvt.o
include $(src)/gvt/Makefile
endif

274
obj-$(CONFIG_DRM_I915) += i915.o
275
obj-$(CONFIG_DRM_I915_GVT_KVMGT) += gvt/kvmgt.o
276 277 278 279 280 281 282 283 284 285 286 287 288

# 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 \
289
	gvt/scheduler.h
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,$@)
296
      cmd_hdrtest = $(CC) $(filter-out $(CFLAGS_GCOV), $(c_flags)) -S -o /dev/null -x c /dev/null -include $<; touch $@
297 298 299

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