mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-17 16:16:10 +07:00
0ef1905ecf
Our current global state handling is pretty ad-hoc. Let's try to make it better by imitating the standard drm core private object approach. The reason why we don't want to directly use the private objects is locking; Each private object has its own lock so if we introduce any global private objects we get serialized by that single lock across all pipes. The global state apporoach instead uses a read/write lock type of approach where each individual crtc lock counts as a read lock, and grabbing all the crtc locks allows one write access. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200120174728.21095-15-ville.syrjala@linux.intel.com Reviewed-by: Imre Deak <imre.deak@intel.com>
305 lines
7.7 KiB
Makefile
305 lines
7.7 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the drm device driver. This driver provides support for the
|
|
# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
|
|
|
|
# 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!
|
|
subdir-ccflags-y := -Wall -Wextra
|
|
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, unused-but-set-variable)
|
|
# 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)
|
|
subdir-ccflags-y += $(call cc-disable-warning, uninitialized)
|
|
subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror
|
|
|
|
# Fine grained warnings disable
|
|
CFLAGS_i915_pci.o = $(call cc-disable-warning, override-init)
|
|
CFLAGS_display/intel_fbdev.o = $(call cc-disable-warning, override-init)
|
|
|
|
subdir-ccflags-y += \
|
|
$(call as-instr,movntdqa (%eax)$(comma)%xmm0,-DCONFIG_AS_MOVNTDQA)
|
|
|
|
subdir-ccflags-y += -I$(srctree)/$(src)
|
|
|
|
# Please keep these build lists sorted!
|
|
|
|
# core driver code
|
|
i915-y += i915_drv.o \
|
|
i915_irq.o \
|
|
i915_getparam.o \
|
|
i915_params.o \
|
|
i915_pci.o \
|
|
i915_scatterlist.o \
|
|
i915_suspend.o \
|
|
i915_switcheroo.o \
|
|
i915_sysfs.o \
|
|
i915_utils.o \
|
|
intel_csr.o \
|
|
intel_device_info.o \
|
|
intel_memory_region.o \
|
|
intel_pch.o \
|
|
intel_pm.o \
|
|
intel_runtime_pm.o \
|
|
intel_sideband.o \
|
|
intel_uncore.o \
|
|
intel_wakeref.o
|
|
|
|
# core library code
|
|
i915-y += \
|
|
i915_memcpy.o \
|
|
i915_mm.o \
|
|
i915_sw_fence.o \
|
|
i915_sw_fence_work.o \
|
|
i915_syncmap.o \
|
|
i915_user_extensions.o
|
|
|
|
i915-$(CONFIG_COMPAT) += i915_ioc32.o
|
|
i915-$(CONFIG_DEBUG_FS) += \
|
|
i915_debugfs.o \
|
|
i915_debugfs_params.o \
|
|
display/intel_pipe_crc.o
|
|
i915-$(CONFIG_PERF_EVENTS) += i915_pmu.o
|
|
|
|
# "Graphics Technology" (aka we talk to the gpu)
|
|
gt-y += \
|
|
gt/debugfs_engines.o \
|
|
gt/debugfs_gt.o \
|
|
gt/debugfs_gt_pm.o \
|
|
gt/gen6_ppgtt.o \
|
|
gt/gen8_ppgtt.o \
|
|
gt/intel_breadcrumbs.o \
|
|
gt/intel_context.o \
|
|
gt/intel_engine_cs.o \
|
|
gt/intel_engine_heartbeat.o \
|
|
gt/intel_engine_pm.o \
|
|
gt/intel_engine_pool.o \
|
|
gt/intel_engine_user.o \
|
|
gt/intel_ggtt.o \
|
|
gt/intel_gt.o \
|
|
gt/intel_gt_irq.o \
|
|
gt/intel_gt_pm.o \
|
|
gt/intel_gt_pm_irq.o \
|
|
gt/intel_gt_requests.o \
|
|
gt/intel_gtt.o \
|
|
gt/intel_llc.o \
|
|
gt/intel_lrc.o \
|
|
gt/intel_mocs.o \
|
|
gt/intel_ppgtt.o \
|
|
gt/intel_rc6.o \
|
|
gt/intel_renderstate.o \
|
|
gt/intel_reset.o \
|
|
gt/intel_ring.o \
|
|
gt/intel_ring_submission.o \
|
|
gt/intel_rps.o \
|
|
gt/intel_sseu.o \
|
|
gt/intel_timeline.o \
|
|
gt/intel_workarounds.o
|
|
# autogenerated null render state
|
|
gt-y += \
|
|
gt/gen6_renderstate.o \
|
|
gt/gen7_renderstate.o \
|
|
gt/gen8_renderstate.o \
|
|
gt/gen9_renderstate.o
|
|
i915-y += $(gt-y)
|
|
|
|
# GEM (Graphics Execution Management) code
|
|
gem-y += \
|
|
gem/i915_gem_busy.o \
|
|
gem/i915_gem_clflush.o \
|
|
gem/i915_gem_client_blt.o \
|
|
gem/i915_gem_context.o \
|
|
gem/i915_gem_dmabuf.o \
|
|
gem/i915_gem_domain.o \
|
|
gem/i915_gem_execbuffer.o \
|
|
gem/i915_gem_fence.o \
|
|
gem/i915_gem_internal.o \
|
|
gem/i915_gem_object.o \
|
|
gem/i915_gem_object_blt.o \
|
|
gem/i915_gem_lmem.o \
|
|
gem/i915_gem_mman.o \
|
|
gem/i915_gem_pages.o \
|
|
gem/i915_gem_phys.o \
|
|
gem/i915_gem_pm.o \
|
|
gem/i915_gem_region.o \
|
|
gem/i915_gem_shmem.o \
|
|
gem/i915_gem_shrinker.o \
|
|
gem/i915_gem_stolen.o \
|
|
gem/i915_gem_throttle.o \
|
|
gem/i915_gem_tiling.o \
|
|
gem/i915_gem_userptr.o \
|
|
gem/i915_gem_wait.o \
|
|
gem/i915_gemfs.o
|
|
i915-y += \
|
|
$(gem-y) \
|
|
i915_active.o \
|
|
i915_buddy.o \
|
|
i915_cmd_parser.o \
|
|
i915_gem_evict.o \
|
|
i915_gem_fence_reg.o \
|
|
i915_gem_gtt.o \
|
|
i915_gem.o \
|
|
i915_globals.o \
|
|
i915_query.o \
|
|
i915_request.o \
|
|
i915_scheduler.o \
|
|
i915_trace_points.o \
|
|
i915_vma.o \
|
|
intel_region_lmem.o \
|
|
intel_wopcm.o
|
|
|
|
# general-purpose microcontroller (GuC) support
|
|
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
|
|
|
|
# modesetting core code
|
|
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 \
|
|
display/intel_dsb.o \
|
|
display/intel_fbc.o \
|
|
display/intel_fifo_underrun.o \
|
|
display/intel_frontbuffer.o \
|
|
display/intel_global_state.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 \
|
|
display/intel_sprite.o \
|
|
display/intel_tc.o \
|
|
display/intel_vga.o
|
|
i915-$(CONFIG_ACPI) += \
|
|
display/intel_acpi.o \
|
|
display/intel_opregion.o
|
|
i915-$(CONFIG_DRM_FBDEV_EMULATION) += \
|
|
display/intel_fbdev.o
|
|
|
|
# modesetting output/encoder code
|
|
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
|
|
|
|
# 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 \
|
|
oa/i915_oa_icl.o \
|
|
oa/i915_oa_tgl.o
|
|
i915-y += i915_perf.o
|
|
|
|
# Post-mortem debug and GPU hang state capture
|
|
i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o
|
|
i915-$(CONFIG_DRM_I915_SELFTEST) += \
|
|
gem/selftests/igt_gem_utils.o \
|
|
selftests/i915_random.o \
|
|
selftests/i915_selftest.o \
|
|
selftests/igt_atomic.o \
|
|
selftests/igt_flush_test.o \
|
|
selftests/igt_live_test.o \
|
|
selftests/igt_mmap.o \
|
|
selftests/igt_reset.o \
|
|
selftests/igt_spinner.o
|
|
|
|
# virtual gpu code
|
|
i915-y += i915_vgpu.o
|
|
|
|
ifeq ($(CONFIG_DRM_I915_GVT),y)
|
|
i915-y += intel_gvt.o
|
|
include $(src)/gvt/Makefile
|
|
endif
|
|
|
|
obj-$(CONFIG_DRM_I915) += i915.o
|
|
obj-$(CONFIG_DRM_I915_GVT_KVMGT) += gvt/kvmgt.o
|
|
|
|
# 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 \
|
|
gvt/scheduler.h
|
|
|
|
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)
|