Makefile 6.3 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 19
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)
subdir-ccflags-y += $(call cc-disable-warning, implicit-fallthrough)
20
subdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable)
21 22 23 24
# 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)
25
subdir-ccflags-y += $(call cc-disable-warning, uninitialized)
26 27 28
subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror

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

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

35 36 37
# Extra header tests
include $(src)/Makefile.header-test

38 39
subdir-ccflags-y += -I$(src)

D
Daniel Vetter 已提交
40 41 42
# Please keep these build lists sorted!

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

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

D
Daniel Vetter 已提交
65
i915-$(CONFIG_COMPAT)   += i915_ioc32.o
66
i915-$(CONFIG_DEBUG_FS) += i915_debugfs.o intel_pipe_crc.o
67
i915-$(CONFIG_PERF_EVENTS) += i915_pmu.o
D
Daniel Vetter 已提交
68

69 70 71 72 73 74
# "Graphics Technology" (aka we talk to the gpu)
obj-y += gt/
gt-y += \
	gt/intel_breadcrumbs.o \
	gt/intel_context.o \
	gt/intel_engine_cs.o \
75 76
	gt/intel_engine_pm.o \
	gt/intel_gt_pm.o \
77 78 79 80 81 82 83 84 85 86 87 88
	gt/intel_hangcheck.o \
	gt/intel_lrc.o \
	gt/intel_reset.o \
	gt/intel_ringbuffer.o \
	gt/intel_mocs.o \
	gt/intel_sseu.o \
	gt/intel_workarounds.o
gt-$(CONFIG_DRM_I915_SELFTEST) += \
	gt/mock_engine.o
i915-y += $(gt-y)

# GEM (Graphics Execution Management) code
89
obj-y += gem/
90
gem-y += \
91
	gem/i915_gem_busy.o \
92
	gem/i915_gem_clflush.o \
93
	gem/i915_gem_client_blt.o \
94 95
	gem/i915_gem_context.o \
	gem/i915_gem_dmabuf.o \
96
	gem/i915_gem_domain.o \
97
	gem/i915_gem_execbuffer.o \
98
	gem/i915_gem_fence.o \
99
	gem/i915_gem_internal.o \
100
	gem/i915_gem_object.o \
101
	gem/i915_gem_object_blt.o \
102
	gem/i915_gem_mman.o \
103 104
	gem/i915_gem_pages.o \
	gem/i915_gem_phys.o \
105 106 107 108
	gem/i915_gem_pm.o \
	gem/i915_gem_shmem.o \
	gem/i915_gem_shrinker.o \
	gem/i915_gem_stolen.o \
109
	gem/i915_gem_throttle.o \
110 111
	gem/i915_gem_tiling.o \
	gem/i915_gem_userptr.o \
112
	gem/i915_gem_wait.o \
113
	gem/i915_gemfs.o
114
i915-y += \
115
	  $(gem-y) \
116 117
	  i915_active.o \
	  i915_cmd_parser.o \
118
	  i915_gem_batch_pool.o \
119
	  i915_gem_evict.o \
J
Joonas Lahtinen 已提交
120
	  i915_gem_fence_reg.o \
121
	  i915_gem_gtt.o \
D
Daniel Vetter 已提交
122
	  i915_gem.o \
D
Daniel Vetter 已提交
123
	  i915_gem_render_state.o \
124
	  i915_globals.o \
L
Lionel Landwerlin 已提交
125
	  i915_query.o \
126
	  i915_request.o \
127
	  i915_scheduler.o \
128
	  i915_timeline.o \
C
Chris Wilson 已提交
129
	  i915_trace_points.o \
J
Joonas Lahtinen 已提交
130
	  i915_vma.o \
131
	  intel_wopcm.o
D
Daniel Vetter 已提交
132

133
# general-purpose microcontroller (GuC) support
134
i915-y += intel_uc.o \
135
	  intel_uc_fw.o \
136
	  intel_guc.o \
137
	  intel_guc_ads.o \
138
	  intel_guc_ct.o \
139
	  intel_guc_fw.o \
140 141
	  intel_guc_log.o \
	  intel_guc_submission.o \
142 143
	  intel_huc.o \
	  intel_huc_fw.o
144

145 146 147
# autogenerated null render state
i915-y += intel_renderstate_gen6.o \
	  intel_renderstate_gen7.o \
148 149
	  intel_renderstate_gen8.o \
	  intel_renderstate_gen9.o
150

D
Daniel Vetter 已提交
151
# modesetting core code
152
i915-y += intel_audio.o \
D
Daniel Vetter 已提交
153 154
	  intel_atomic.o \
	  intel_atomic_plane.o \
155
	  intel_bios.o \
156
	  intel_bw.o \
157
	  intel_cdclk.o \
158
	  intel_color.o \
159
	  intel_combo_phy.o \
160
	  intel_connector.o \
J
Jesse Barnes 已提交
161
	  intel_display.o \
162
	  intel_display_power.o \
163
	  intel_dpio_phy.o \
164
	  intel_dpll_mgr.o \
165
	  intel_fbc.o \
166
	  intel_fifo_underrun.o \
167
	  intel_frontbuffer.o \
168
	  intel_hdcp.o \
D
Daniel Vetter 已提交
169
	  intel_hotplug.o \
D
Daniel Vetter 已提交
170
	  intel_overlay.o \
R
Rodrigo Vivi 已提交
171
	  intel_psr.o \
172
	  intel_quirks.o \
173
	  intel_sideband.o \
D
Daniel Vetter 已提交
174
	  intel_sprite.o
175
i915-$(CONFIG_ACPI)		+= intel_acpi.o intel_opregion.o
176
i915-$(CONFIG_DRM_FBDEV_EMULATION)	+= intel_fbdev.o
D
Daniel Vetter 已提交
177 178

# modesetting output/encoder code
179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
obj-y += display/
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
208

209 210
# Post-mortem debug and GPU hang state capture
i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o
211
i915-$(CONFIG_DRM_I915_SELFTEST) += \
212
	gem/selftests/igt_gem_utils.o \
213
	selftests/i915_random.o \
214
	selftests/i915_selftest.o \
215
	selftests/igt_flush_test.o \
216
	selftests/igt_live_test.o \
217
	selftests/igt_reset.o \
218
	selftests/igt_spinner.o
219

220 221 222
# virtual gpu code
i915-y += i915_vgpu.o

223
# perf code
224
i915-y += i915_perf.o \
225 226 227 228 229 230
	  i915_oa_hsw.o \
	  i915_oa_bdw.o \
	  i915_oa_chv.o \
	  i915_oa_sklgt2.o \
	  i915_oa_sklgt3.o \
	  i915_oa_sklgt4.o \
231 232
	  i915_oa_bxt.o \
	  i915_oa_kblgt2.o \
233
	  i915_oa_kblgt3.o \
234
	  i915_oa_glk.o \
235
	  i915_oa_cflgt2.o \
236
	  i915_oa_cflgt3.o \
237 238
	  i915_oa_cnl.o \
	  i915_oa_icl.o
239

240 241 242 243 244
ifeq ($(CONFIG_DRM_I915_GVT),y)
i915-y += intel_gvt.o
include $(src)/gvt/Makefile
endif

245 246 247
# LPE Audio for VLV and CHT
i915-y += intel_lpe_audio.o

248
obj-$(CONFIG_DRM_I915) += i915.o
249
obj-$(CONFIG_DRM_I915_GVT_KVMGT) += gvt/kvmgt.o