Commit | Line | Data |
---|---|---|
b2441318 | 1 | # SPDX-License-Identifier: GPL-2.0 |
c0e09200 DA |
2 | # |
3 | # Makefile for the drm device driver. This driver provides support for the | |
4 | # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. | |
5 | ||
39bf4de8 CW |
6 | # Add a set of useful warning flags and enable -Werror for CI to prevent |
7 | # trivial mistakes from creeping in. We have to do this piecemeal as we reject | |
8 | # any patch that isn't warning clean, so turning on -Wall -Wextra (or W=1) we | |
9 | # need to filter out dubious warnings. Still it is our interest | |
10 | # to keep running locally with W=1 C=1 until we are completely clean. | |
11 | # | |
12 | # Note the danger in using -Wall -Wextra is that when CI updates gcc we | |
13 | # will most likely get a sudden build breakage... Hopefully we will fix | |
14 | # new warnings before CI updates! | |
0bb95f80 | 15 | subdir-ccflags-y := -Wall -Wextra |
4ab09d0e CW |
16 | subdir-ccflags-y += $(call cc-disable-warning, unused-parameter) |
17 | subdir-ccflags-y += $(call cc-disable-warning, type-limits) | |
18 | subdir-ccflags-y += $(call cc-disable-warning, missing-field-initializers) | |
6a05d290 | 19 | subdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable) |
46e20680 MK |
20 | # clang warnings |
21 | subdir-ccflags-y += $(call cc-disable-warning, sign-compare) | |
22 | subdir-ccflags-y += $(call cc-disable-warning, sometimes-uninitialized) | |
23 | subdir-ccflags-y += $(call cc-disable-warning, initializer-overrides) | |
c5627461 | 24 | subdir-ccflags-y += $(call cc-disable-warning, uninitialized) |
39bf4de8 CW |
25 | subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror |
26 | ||
27 | # Fine grained warnings disable | |
4ab09d0e | 28 | CFLAGS_i915_pci.o = $(call cc-disable-warning, override-init) |
54b8ae66 | 29 | CFLAGS_display/intel_fbdev.o = $(call cc-disable-warning, override-init) |
39bf4de8 | 30 | |
0b1de5d5 CW |
31 | subdir-ccflags-y += \ |
32 | $(call as-instr,movntdqa (%eax)$(comma)%xmm0,-DCONFIG_AS_MOVNTDQA) | |
0a793ad3 | 33 | |
9ef424e5 | 34 | subdir-ccflags-y += -I$(srctree)/$(src) |
112ed2d3 | 35 | |
2fae6a86 DV |
36 | # Please keep these build lists sorted! |
37 | ||
38 | # core driver code | |
c2400ec3 | 39 | i915-y += i915_drv.o \ |
042794b1 | 40 | i915_irq.o \ |
26f00514 | 41 | i915_getparam.o \ |
2fae6a86 | 42 | i915_params.o \ |
42f5551d | 43 | i915_pci.o \ |
37d63f8f | 44 | i915_scatterlist.o \ |
79960227 | 45 | i915_suspend.o \ |
63bf8301 | 46 | i915_switcheroo.o \ |
2fae6a86 | 47 | i915_sysfs.o \ |
358c855c | 48 | i915_utils.o \ |
042794b1 | 49 | intel_csr.o \ |
94b4f3ba | 50 | intel_device_info.o \ |
232a6eba | 51 | intel_memory_region.o \ |
707d26dc | 52 | intel_pch.o \ |
9c065a7d | 53 | intel_pm.o \ |
7d3c425f | 54 | intel_runtime_pm.o \ |
df0566a6 JN |
55 | intel_sideband.o \ |
56 | intel_uncore.o \ | |
57 | intel_wakeref.o | |
112ed2d3 CW |
58 | |
59 | # core library code | |
60 | i915-y += \ | |
61 | i915_memcpy.o \ | |
62 | i915_mm.o \ | |
63 | i915_sw_fence.o \ | |
8e458fe2 | 64 | i915_sw_fence_work.o \ |
112ed2d3 CW |
65 | i915_syncmap.o \ |
66 | i915_user_extensions.o | |
9c065a7d | 67 | |
2fae6a86 | 68 | i915-$(CONFIG_COMPAT) += i915_ioc32.o |
df0566a6 | 69 | i915-$(CONFIG_DEBUG_FS) += i915_debugfs.o display/intel_pipe_crc.o |
b46a33e2 | 70 | i915-$(CONFIG_PERF_EVENTS) += i915_pmu.o |
2fae6a86 | 71 | |
112ed2d3 | 72 | # "Graphics Technology" (aka we talk to the gpu) |
112ed2d3 | 73 | gt-y += \ |
9dd4b065 AS |
74 | gt/debugfs_engines.o \ |
75 | gt/debugfs_gt.o \ | |
76 | gt/debugfs_gt_pm.o \ | |
2c86e55d MA |
77 | gt/gen6_ppgtt.o \ |
78 | gt/gen8_ppgtt.o \ | |
112ed2d3 CW |
79 | gt/intel_breadcrumbs.o \ |
80 | gt/intel_context.o \ | |
81 | gt/intel_engine_cs.o \ | |
b5e8e954 | 82 | gt/intel_engine_heartbeat.o \ |
79ffac85 | 83 | gt/intel_engine_pm.o \ |
b5e8e954 | 84 | gt/intel_engine_pool.o \ |
750e76b4 | 85 | gt/intel_engine_user.o \ |
2c86e55d | 86 | gt/intel_ggtt.o \ |
24635c51 | 87 | gt/intel_gt.o \ |
cf1c97dc | 88 | gt/intel_gt_irq.o \ |
79ffac85 | 89 | gt/intel_gt_pm.o \ |
d762043f | 90 | gt/intel_gt_pm_irq.o \ |
66101975 | 91 | gt/intel_gt_requests.o \ |
2c86e55d | 92 | gt/intel_gtt.o \ |
0dc3c562 | 93 | gt/intel_llc.o \ |
112ed2d3 | 94 | gt/intel_lrc.o \ |
2871ea85 | 95 | gt/intel_mocs.o \ |
2c86e55d | 96 | gt/intel_ppgtt.o \ |
c1132367 | 97 | gt/intel_rc6.o \ |
2006058e | 98 | gt/intel_renderstate.o \ |
112ed2d3 | 99 | gt/intel_reset.o \ |
2871ea85 CW |
100 | gt/intel_ring.o \ |
101 | gt/intel_ring_submission.o \ | |
3e7abf81 | 102 | gt/intel_rps.o \ |
112ed2d3 | 103 | gt/intel_sseu.o \ |
f0c02c1b | 104 | gt/intel_timeline.o \ |
112ed2d3 | 105 | gt/intel_workarounds.o |
2006058e CW |
106 | # autogenerated null render state |
107 | gt-y += \ | |
108 | gt/gen6_renderstate.o \ | |
109 | gt/gen7_renderstate.o \ | |
110 | gt/gen8_renderstate.o \ | |
111 | gt/gen9_renderstate.o | |
112ed2d3 CW |
112 | i915-y += $(gt-y) |
113 | ||
114 | # GEM (Graphics Execution Management) code | |
98932149 | 115 | gem-y += \ |
3f43c876 | 116 | gem/i915_gem_busy.o \ |
10be98a7 | 117 | gem/i915_gem_clflush.o \ |
6501aa4e | 118 | gem/i915_gem_client_blt.o \ |
10be98a7 CW |
119 | gem/i915_gem_context.o \ |
120 | gem/i915_gem_dmabuf.o \ | |
f0e4a063 | 121 | gem/i915_gem_domain.o \ |
10be98a7 | 122 | gem/i915_gem_execbuffer.o \ |
6951e589 | 123 | gem/i915_gem_fence.o \ |
10be98a7 | 124 | gem/i915_gem_internal.o \ |
8475355f | 125 | gem/i915_gem_object.o \ |
6501aa4e | 126 | gem/i915_gem_object_blt.o \ |
b908be54 | 127 | gem/i915_gem_lmem.o \ |
b414fcd5 | 128 | gem/i915_gem_mman.o \ |
f033428d CW |
129 | gem/i915_gem_pages.o \ |
130 | gem/i915_gem_phys.o \ | |
10be98a7 | 131 | gem/i915_gem_pm.o \ |
232a6eba | 132 | gem/i915_gem_region.o \ |
10be98a7 CW |
133 | gem/i915_gem_shmem.o \ |
134 | gem/i915_gem_shrinker.o \ | |
135 | gem/i915_gem_stolen.o \ | |
446e2d16 | 136 | gem/i915_gem_throttle.o \ |
10be98a7 CW |
137 | gem/i915_gem_tiling.o \ |
138 | gem/i915_gem_userptr.o \ | |
d45a1a53 | 139 | gem/i915_gem_wait.o \ |
10be98a7 | 140 | gem/i915_gemfs.o |
64d6c500 | 141 | i915-y += \ |
98932149 | 142 | $(gem-y) \ |
64d6c500 | 143 | i915_active.o \ |
14d1b9a6 | 144 | i915_buddy.o \ |
64d6c500 | 145 | i915_cmd_parser.o \ |
b47eb4a2 | 146 | i915_gem_evict.o \ |
b42fe9ca | 147 | i915_gem_fence_reg.o \ |
54cf91dc | 148 | i915_gem_gtt.o \ |
2fae6a86 | 149 | i915_gem.o \ |
32eb6bcf | 150 | i915_globals.o \ |
a446ae2c | 151 | i915_query.o \ |
e61e0f51 | 152 | i915_request.o \ |
e2f3496e | 153 | i915_scheduler.o \ |
1c5d22f7 | 154 | i915_trace_points.o \ |
b42fe9ca | 155 | i915_vma.o \ |
b908be54 | 156 | intel_region_lmem.o \ |
6b0478fb | 157 | intel_wopcm.o |
2fae6a86 | 158 | |
33a732f4 | 159 | # general-purpose microcontroller (GuC) support |
0f261b24 DCS |
160 | i915-y += gt/uc/intel_uc.o \ |
161 | gt/uc/intel_uc_fw.o \ | |
162 | gt/uc/intel_guc.o \ | |
163 | gt/uc/intel_guc_ads.o \ | |
164 | gt/uc/intel_guc_ct.o \ | |
165 | gt/uc/intel_guc_fw.o \ | |
166 | gt/uc/intel_guc_log.o \ | |
167 | gt/uc/intel_guc_submission.o \ | |
168 | gt/uc/intel_huc.o \ | |
169 | gt/uc/intel_huc_fw.o | |
33a732f4 | 170 | |
2fae6a86 | 171 | # modesetting core code |
df0566a6 JN |
172 | i915-y += \ |
173 | display/intel_atomic.o \ | |
174 | display/intel_atomic_plane.o \ | |
175 | display/intel_audio.o \ | |
176 | display/intel_bios.o \ | |
177 | display/intel_bw.o \ | |
178 | display/intel_cdclk.o \ | |
179 | display/intel_color.o \ | |
180 | display/intel_combo_phy.o \ | |
181 | display/intel_connector.o \ | |
182 | display/intel_display.o \ | |
183 | display/intel_display_power.o \ | |
184 | display/intel_dpio_phy.o \ | |
185 | display/intel_dpll_mgr.o \ | |
67f3b58f | 186 | display/intel_dsb.o \ |
df0566a6 JN |
187 | display/intel_fbc.o \ |
188 | display/intel_fifo_underrun.o \ | |
189 | display/intel_frontbuffer.o \ | |
190 | display/intel_hdcp.o \ | |
191 | display/intel_hotplug.o \ | |
192 | display/intel_lpe_audio.o \ | |
193 | display/intel_overlay.o \ | |
194 | display/intel_psr.o \ | |
195 | display/intel_quirks.o \ | |
bc85328f | 196 | display/intel_sprite.o \ |
4fb87831 JN |
197 | display/intel_tc.o \ |
198 | display/intel_vga.o | |
df0566a6 JN |
199 | i915-$(CONFIG_ACPI) += \ |
200 | display/intel_acpi.o \ | |
201 | display/intel_opregion.o | |
202 | i915-$(CONFIG_DRM_FBDEV_EMULATION) += \ | |
203 | display/intel_fbdev.o | |
2fae6a86 DV |
204 | |
205 | # modesetting output/encoder code | |
379bc100 JN |
206 | i915-y += \ |
207 | display/dvo_ch7017.o \ | |
208 | display/dvo_ch7xxx.o \ | |
209 | display/dvo_ivch.o \ | |
210 | display/dvo_ns2501.o \ | |
211 | display/dvo_sil164.o \ | |
212 | display/dvo_tfp410.o \ | |
213 | display/icl_dsi.o \ | |
214 | display/intel_crt.o \ | |
215 | display/intel_ddi.o \ | |
216 | display/intel_dp.o \ | |
217 | display/intel_dp_aux_backlight.o \ | |
218 | display/intel_dp_link_training.o \ | |
219 | display/intel_dp_mst.o \ | |
220 | display/intel_dsi.o \ | |
221 | display/intel_dsi_dcs_backlight.o \ | |
222 | display/intel_dsi_vbt.o \ | |
223 | display/intel_dvo.o \ | |
224 | display/intel_gmbus.o \ | |
225 | display/intel_hdmi.o \ | |
226 | display/intel_lspcon.o \ | |
227 | display/intel_lvds.o \ | |
228 | display/intel_panel.o \ | |
229 | display/intel_sdvo.o \ | |
230 | display/intel_tv.o \ | |
231 | display/intel_vdsc.o \ | |
232 | display/vlv_dsi.o \ | |
233 | display/vlv_dsi_pll.o | |
4520f53a | 234 | |
5ed7a0cf | 235 | # perf code |
5ed7a0cf MW |
236 | i915-y += \ |
237 | oa/i915_oa_hsw.o \ | |
238 | oa/i915_oa_bdw.o \ | |
239 | oa/i915_oa_chv.o \ | |
240 | oa/i915_oa_sklgt2.o \ | |
241 | oa/i915_oa_sklgt3.o \ | |
242 | oa/i915_oa_sklgt4.o \ | |
243 | oa/i915_oa_bxt.o \ | |
244 | oa/i915_oa_kblgt2.o \ | |
245 | oa/i915_oa_kblgt3.o \ | |
246 | oa/i915_oa_glk.o \ | |
247 | oa/i915_oa_cflgt2.o \ | |
248 | oa/i915_oa_cflgt3.o \ | |
249 | oa/i915_oa_cnl.o \ | |
00a7f0d7 LL |
250 | oa/i915_oa_icl.o \ |
251 | oa/i915_oa_tgl.o | |
5ed7a0cf MW |
252 | i915-y += i915_perf.o |
253 | ||
98a2f411 CW |
254 | # Post-mortem debug and GPU hang state capture |
255 | i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o | |
953c7f82 | 256 | i915-$(CONFIG_DRM_I915_SELFTEST) += \ |
10be98a7 | 257 | gem/selftests/igt_gem_utils.o \ |
953c7f82 | 258 | selftests/i915_random.o \ |
98dc0454 | 259 | selftests/i915_selftest.o \ |
f3bc632a | 260 | selftests/igt_atomic.o \ |
8d2f6e2f | 261 | selftests/igt_flush_test.o \ |
e4a8c813 | 262 | selftests/igt_live_test.o \ |
6fedafac | 263 | selftests/igt_mmap.o \ |
28d6ccce | 264 | selftests/igt_reset.o \ |
8d2f6e2f | 265 | selftests/igt_spinner.o |
98a2f411 | 266 | |
cf9d2890 YZ |
267 | # virtual gpu code |
268 | i915-y += i915_vgpu.o | |
269 | ||
0ad35fed ZW |
270 | ifeq ($(CONFIG_DRM_I915_GVT),y) |
271 | i915-y += intel_gvt.o | |
272 | include $(src)/gvt/Makefile | |
273 | endif | |
274 | ||
c58305af | 275 | obj-$(CONFIG_DRM_I915) += i915.o |
9bdb0734 | 276 | obj-$(CONFIG_DRM_I915_GVT_KVMGT) += gvt/kvmgt.o |
c6d4a099 MY |
277 | |
278 | # header test | |
279 | ||
280 | # exclude some broken headers from the test coverage | |
281 | no-header-test := \ | |
282 | display/intel_vbt_defs.h \ | |
c6d4a099 MY |
283 | gvt/execlist.h \ |
284 | gvt/fb_decoder.h \ | |
285 | gvt/gtt.h \ | |
286 | gvt/gvt.h \ | |
287 | gvt/interrupt.h \ | |
288 | gvt/mmio_context.h \ | |
289 | gvt/mpt.h \ | |
b2fcaac9 | 290 | gvt/scheduler.h |
c6d4a099 MY |
291 | |
292 | extra-$(CONFIG_DRM_I915_WERROR) += \ | |
293 | $(patsubst %.h,%.hdrtest, $(filter-out $(no-header-test), \ | |
294 | $(shell cd $(srctree)/$(src) && find * -name '*.h'))) | |
295 | ||
296 | quiet_cmd_hdrtest = HDRTEST $(patsubst %.hdrtest,%.h,$@) | |
b5dacc8f | 297 | cmd_hdrtest = $(CC) $(filter-out $(CFLAGS_GCOV), $(c_flags)) -S -o /dev/null -x c /dev/null -include $<; touch $@ |
c6d4a099 MY |
298 | |
299 | $(obj)/%.hdrtest: $(src)/%.h FORCE | |
300 | $(call if_changed_dep,hdrtest) |