mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-18 06:26:49 +07:00
a446ae2c6e
There are a number of information that are readable from hardware registers and that we would like to make accessible to userspace. One particular example is the topology of the execution units (how are execution units grouped in subslices and slices and also which ones have been fused off for die recovery). At the moment the GET_PARAM ioctl covers some basic needs, but generally is only able to return a single value for each defined parameter. This is a bit problematic with topology descriptions which are array/maps of available units. This change introduces a new ioctl that can deal with requests to fill structures of potentially variable lengths. The user is expected fill a query with length fields set at 0 on the first call, the kernel then sets the length fields to the their expected values. A second call to the kernel with length fields at their expected values will trigger a copy of the data to the pointed memory locations. The scope of this uAPI is only to provide information to userspace, not to allow configuration of the device. v2: Simplify dispatcher code iteration (Tvrtko) Tweak uapi drm_i915_query_item structure (Tvrtko) v3: Rename pad fields into flags (Chris) Return error on flags field != 0 (Chris) Only copy length back to userspace in drm_i915_query_item (Chris) v4: Use array of functions instead of switch (Chris) v5: More comments in uapi (Tvrtko) Return query item errors in length field (All) v6: Tweak uapi comments style to match the coding style (Lionel) v7: Add i915_query.h (Joonas) v8: (Lionel) Change the behavior of the item iterator to report invalid queries into the query item rather than stopping the iteration. This enables userspace applications to query newer items on older kernels and only have failure on the items that are not supported. v9: Edit copyright headers (Joonas) v10: Typos & comments in uapi (Joonas) Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Acked-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180306122857.27317-6-lionel.g.landwerlin@intel.com
185 lines
4.6 KiB
Makefile
185 lines
4.6 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, implicit-fallthrough)
|
|
subdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable)
|
|
subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror
|
|
|
|
# Fine grained warnings disable
|
|
CFLAGS_i915_pci.o = $(call cc-disable-warning, override-init)
|
|
CFLAGS_intel_fbdev.o = $(call cc-disable-warning, override-init)
|
|
|
|
subdir-ccflags-y += \
|
|
$(call as-instr,movntdqa (%eax)$(comma)%xmm0,-DCONFIG_AS_MOVNTDQA)
|
|
|
|
# Please keep these build lists sorted!
|
|
|
|
# core driver code
|
|
i915-y := i915_drv.o \
|
|
i915_irq.o \
|
|
i915_memcpy.o \
|
|
i915_mm.o \
|
|
i915_params.o \
|
|
i915_pci.o \
|
|
i915_suspend.o \
|
|
i915_syncmap.o \
|
|
i915_sw_fence.o \
|
|
i915_sysfs.o \
|
|
intel_csr.o \
|
|
intel_device_info.o \
|
|
intel_pm.o \
|
|
intel_runtime_pm.o
|
|
|
|
i915-$(CONFIG_COMPAT) += i915_ioc32.o
|
|
i915-$(CONFIG_DEBUG_FS) += i915_debugfs.o intel_pipe_crc.o
|
|
i915-$(CONFIG_PERF_EVENTS) += i915_pmu.o
|
|
|
|
# GEM code
|
|
i915-y += i915_cmd_parser.o \
|
|
i915_gem_batch_pool.o \
|
|
i915_gem_clflush.o \
|
|
i915_gem_context.o \
|
|
i915_gem_dmabuf.o \
|
|
i915_gem_evict.o \
|
|
i915_gem_execbuffer.o \
|
|
i915_gem_fence_reg.o \
|
|
i915_gem_gtt.o \
|
|
i915_gem_internal.o \
|
|
i915_gem.o \
|
|
i915_gem_object.o \
|
|
i915_gem_render_state.o \
|
|
i915_gem_shrinker.o \
|
|
i915_gem_stolen.o \
|
|
i915_gem_tiling.o \
|
|
i915_gem_timeline.o \
|
|
i915_gem_userptr.o \
|
|
i915_gemfs.o \
|
|
i915_query.o \
|
|
i915_request.o \
|
|
i915_trace_points.o \
|
|
i915_vma.o \
|
|
intel_breadcrumbs.o \
|
|
intel_engine_cs.o \
|
|
intel_hangcheck.o \
|
|
intel_lrc.o \
|
|
intel_mocs.o \
|
|
intel_ringbuffer.o \
|
|
intel_uncore.o
|
|
|
|
# general-purpose microcontroller (GuC) support
|
|
i915-y += intel_uc.o \
|
|
intel_uc_fw.o \
|
|
intel_guc.o \
|
|
intel_guc_ads.o \
|
|
intel_guc_ct.o \
|
|
intel_guc_fw.o \
|
|
intel_guc_log.o \
|
|
intel_guc_submission.o \
|
|
intel_huc.o \
|
|
intel_huc_fw.o
|
|
|
|
# autogenerated null render state
|
|
i915-y += intel_renderstate_gen6.o \
|
|
intel_renderstate_gen7.o \
|
|
intel_renderstate_gen8.o \
|
|
intel_renderstate_gen9.o
|
|
|
|
# modesetting core code
|
|
i915-y += intel_audio.o \
|
|
intel_atomic.o \
|
|
intel_atomic_plane.o \
|
|
intel_bios.o \
|
|
intel_cdclk.o \
|
|
intel_color.o \
|
|
intel_display.o \
|
|
intel_dpio_phy.o \
|
|
intel_dpll_mgr.o \
|
|
intel_fbc.o \
|
|
intel_fifo_underrun.o \
|
|
intel_frontbuffer.o \
|
|
intel_hdcp.o \
|
|
intel_hotplug.o \
|
|
intel_modes.o \
|
|
intel_overlay.o \
|
|
intel_psr.o \
|
|
intel_sideband.o \
|
|
intel_sprite.o
|
|
i915-$(CONFIG_ACPI) += intel_acpi.o intel_opregion.o
|
|
i915-$(CONFIG_DRM_FBDEV_EMULATION) += intel_fbdev.o
|
|
|
|
# modesetting output/encoder code
|
|
i915-y += dvo_ch7017.o \
|
|
dvo_ch7xxx.o \
|
|
dvo_ivch.o \
|
|
dvo_ns2501.o \
|
|
dvo_sil164.o \
|
|
dvo_tfp410.o \
|
|
intel_crt.o \
|
|
intel_ddi.o \
|
|
intel_dp_aux_backlight.o \
|
|
intel_dp_link_training.o \
|
|
intel_dp_mst.o \
|
|
intel_dp.o \
|
|
intel_dsi.o \
|
|
intel_dsi_dcs_backlight.o \
|
|
intel_dsi_pll.o \
|
|
intel_dsi_vbt.o \
|
|
intel_dvo.o \
|
|
intel_hdmi.o \
|
|
intel_i2c.o \
|
|
intel_lspcon.o \
|
|
intel_lvds.o \
|
|
intel_panel.o \
|
|
intel_sdvo.o \
|
|
intel_tv.o
|
|
|
|
# Post-mortem debug and GPU hang state capture
|
|
i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o
|
|
i915-$(CONFIG_DRM_I915_SELFTEST) += \
|
|
selftests/i915_random.o \
|
|
selftests/i915_selftest.o
|
|
|
|
# virtual gpu code
|
|
i915-y += i915_vgpu.o
|
|
|
|
# perf code
|
|
i915-y += i915_perf.o \
|
|
i915_oa_hsw.o \
|
|
i915_oa_bdw.o \
|
|
i915_oa_chv.o \
|
|
i915_oa_sklgt2.o \
|
|
i915_oa_sklgt3.o \
|
|
i915_oa_sklgt4.o \
|
|
i915_oa_bxt.o \
|
|
i915_oa_kblgt2.o \
|
|
i915_oa_kblgt3.o \
|
|
i915_oa_glk.o \
|
|
i915_oa_cflgt2.o \
|
|
i915_oa_cflgt3.o \
|
|
i915_oa_cnl.o
|
|
|
|
ifeq ($(CONFIG_DRM_I915_GVT),y)
|
|
i915-y += intel_gvt.o
|
|
include $(src)/gvt/Makefile
|
|
endif
|
|
|
|
# LPE Audio for VLV and CHT
|
|
i915-y += intel_lpe_audio.o
|
|
|
|
obj-$(CONFIG_DRM_I915) += i915.o
|