History

Merge tag 'drm-next-2022-01-07' of git://anongit.freedesktop.org/drm/drm

Pull drm updates from Dave Airlie: "Highlights are support for privacy screens found in new laptops, a bunch of nomodeset refactoring, and i915 enables ADL-P systems by default, while starting to add RPL-S support. vmwgfx adds GEM and support for OpenGL 4.3 features in userspace. Lots of internal refactorings around dma reservations, and lots of driver refactoring as well. Summary: core: - add privacy screen support - move nomodeset option into drm subsystem - clean up nomodeset handling in drivers - make drm_irq.c legacy - fix stack_depot name conflicts - remove DMA_BUF_SET_NAME ioctl restrictions - sysfs: send hotplug event - replace several DRM_* logging macros with drm_* - move hashtable to legacy code - add error return from gem_create_object - cma-helper: improve interfaces, drop CONFIG_DRM_KMS_CMA_HELPER - kernel.h related include cleanups - support XRGB2101010 source buffers ttm: - don't include drm hashtable - stop pruning fences after wait - documentation updates dma-buf: - add dma_resv selftest - add debugfs helpers - remove dma_resv_get_excl_unlocked - documentation - make fences mandatory in dma_resv_add_excl_fence dp: - add link training delay helpers gem: - link shmem/cma helpers into separate modules - use dma_resv iteratior - import dma-buf namespace into gem helper modules scheduler: - fence grab fix - lockdep fixes bridge: - switch to managed MIPI DSI helpers - register and attach during probe fixes - convert to YAML in several places. panel: - add bunch of new panesl simpledrm: - support FB_DAMAGE_CLIPS - support virtual screen sizes - add Apple M1 support amdgpu: - enable seamless boot for DCN 3.01 - runtime PM fixes - use drm_kms_helper_connector_hotplug_event - get all fences at once - use generic drm fb helpers - PSR/DPCD/LTTPR/DSC/PM/RAS/OLED/SRIOV fixes - add smart trace buffer (STB) for supported GPUs - display debugfs entries - new SMU debug option - Documentation update amdkfd: - IP discovery enumeration refactor - interface between driver fixes - SVM fixes - kfd uapi header to define some sysfs bitfields. i915: - support VESA panel backlights - enable ADL-P by default - add eDP privacy screen support - add Raptor Lake S (RPL-S) support - DG2 page table support - lots of GuC/HuC fw refactoring - refactored i915->gt interfaces - CD clock squashing support - enable 10-bit gamma support - update ADL-P DMC fw to v2.14 - enable runtime PM autosuspend by default - ADL-P DSI support - per-lane DP drive settings for ICL+ - add support for pipe C/D DMC firmware - Atomic gamma LUT updates - remove CCS FB stride restrictions on ADL-P - VRR platform support for display 11 - add support for display audio codec keepalive - lots of display refactoring - fix runtime PM handling during PXP suspend - improved eviction performance with async TTM moves - async VMA unbinding improvements - VMA locking refactoring - improved error capture robustness - use per device iommu checks - drop bits stealing from i915_sw_fence function ptr - remove dma_resv_prune - add IC cache invalidation on DG2 nouveau: - crc fixes - validate LUTs in atomic check - set HDMI AVI RGB quant to full tegra: - buffer objects reworks for dma-buf compat - NVDEC driver uAPI support - power management improvements etnaviv: - IOMMU enabled system support - fix > 4GB command buffer mapping - close a DoS vector - fix spurious GPU resets ast: - fix i2c initialization rcar-du: - DSI output support exynos: - replace legacy gpio interface - implement generic GEM object mmap msm: - dpu plane state cleanup in prep for multirect - dpu debugfs cleanups - dp support for sc7280 - a506 support - removal of struct_mutex - remove old eDP sub-driver anx7625: - support MIPI DSI input - support HDMI audio - fix reading EDID lvds: - fix bridge DT bindings megachips: - probe both bridges before registering dw-hdmi: - allow interlace on bridge ps8640: - enable runtime PM - support aux-bus tx358768: - enable reference clock - add pulse mode support ti-sn65dsi86: - use regmap bulk write - add PWM support etnaviv: - get all fences at once gma500: - gem object cleanups kmb: - enable fb console radeon: - use dma_resv_wait_timeout rockchip: - add DSP hold timeout - suspend/resume fixes - PLL clock fixes - implement mmap in GEM object functions - use generic fbdev emulation sun4i: - use CMA helpers without vmap support vc4: - fix HDMI-CEC hang with display is off - power on HDMI controller while disabling - support 4K@60Hz modes - support 10-bit YUV 4:2:0 output vmwgfx: - fix leak on probe errors - fail probing on broken hosts - new placement for MOB page tables - hide internal BOs from userspace - implement GEM support - implement GL 4.3 support virtio: - overflow fixes xen: - implement mmap as GEM object function omapdrm: - fix scatterlist export - support virtual planes mediatek: - MT8192 support - CMDQ refinement" * tag 'drm-next-2022-01-07' of git://anongit.freedesktop.org/drm/drm: (1241 commits) drm/amdgpu: no DC support for headless chips drm/amd/display: fix dereference before NULL check drm/amdgpu: always reset the asic in suspend (v2) drm/amdgpu: put SMU into proper state on runpm suspending for BOCO capable platform drm/amd/display: Fix the uninitialized variable in enable_stream_features() drm/amdgpu: fix runpm documentation amdgpu/pm: Make sysfs pm attributes as read-only for VFs drm/amdgpu: save error count in RAS poison handler drm/amdgpu: drop redundant semicolon drm/amd/display: get and restore link res map drm/amd/display: support dynamic HPO DP link encoder allocation drm/amd/display: access hpo dp link encoder only through link resource drm/amd/display: populate link res in both detection and validation drm/amd/display: define link res and make it accessible to all link interfaces drm/amd/display: 3.2.167 drm/amd/display: [FW Promotion] Release 0.0.98 drm/amd/display: Undo ODM combine drm/amd/display: Add reg defs for DCN303 drm/amd/display: Changed pipe split policy to allow for multi-display pipe split drm/amd/display: Set optimize_pwr_state for DCN31 ...

Linus Torvalds committed 4 years ago

Commit 8d0749b2 parents bf4eebf cb6846f1126 files · +47239 −24881Browse files

Showing the changes to include/uapi (5 of 1126 files). Show all

Unified · Split

5 files
  1. include/uapi/drm/amdgpu_drm.h +1 −1
  2. include/uapi/drm/drm.h +18 −0
  3. include/uapi/drm/drm_fourcc.h +11 −0
  4. include/uapi/drm/vmwgfx_drm.h +1 −0
  5. include/uapi/linux/kfd_sysfs.h +108 −0
include/uapi/drm/amdgpu_drm.h+1−1
@@ -80,7 +80,7 @@ extern "C" { · 79 unmodified lines
80 *80 *
81 * %AMDGPU_GEM_DOMAIN_GTT GPU accessible system memory, mapped into the81 * %AMDGPU_GEM_DOMAIN_GTT GPU accessible system memory, mapped into the
82 * GPU's virtual address space via gart. Gart memory linearizes non-contiguous82 * GPU's virtual address space via gart. Gart memory linearizes non-contiguous
83 * pages of system memory, allows GPU access system memory in a linezrized83 * pages of system memory, allows GPU access system memory in a linearized
84 * fashion.84 * fashion.
85 *85 *
86 * %AMDGPU_GEM_DOMAIN_VRAM Local video memory. For APUs, it is memory86 * %AMDGPU_GEM_DOMAIN_VRAM Local video memory. For APUs, it is memory
include/uapi/drm/drm.h+18−0
@@ -1096,6 +1096,24 @@ extern "C" { · 1095 unmodified lines
1096#define DRM_IOCTL_SYNCOBJ_TRANSFER DRM_IOWR(0xCC, struct drm_syncobj_transfer)1096#define DRM_IOCTL_SYNCOBJ_TRANSFER DRM_IOWR(0xCC, struct drm_syncobj_transfer)
1097#define DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL DRM_IOWR(0xCD, struct drm_syncobj_timeline_array)1097#define DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL DRM_IOWR(0xCD, struct drm_syncobj_timeline_array)
1098 1098
1099/**
1100 * DRM_IOCTL_MODE_GETFB2 - Get framebuffer metadata.
1101 *
1102 * This queries metadata about a framebuffer. User-space fills
1103 * &drm_mode_fb_cmd2.fb_id as the input, and the kernels fills the rest of the
1104 * struct as the output.
1105 *
1106 * If the client is DRM master or has &CAP_SYS_ADMIN, &drm_mode_fb_cmd2.handles
1107 * will be filled with GEM buffer handles. Planes are valid until one has a
1108 * zero handle -- this can be used to compute the number of planes.
1109 *
1110 * Otherwise, &drm_mode_fb_cmd2.handles will be zeroed and planes are valid
1111 * until one has a zero &drm_mode_fb_cmd2.pitches.
1112 *
1113 * If the framebuffer has a format modifier, &DRM_MODE_FB_MODIFIERS will be set
1114 * in &drm_mode_fb_cmd2.flags and &drm_mode_fb_cmd2.modifier will contain the
1115 * modifier. Otherwise, user-space must ignore &drm_mode_fb_cmd2.modifier.
1116 */
1099#define DRM_IOCTL_MODE_GETFB2 DRM_IOWR(0xCE, struct drm_mode_fb_cmd2)1117#define DRM_IOCTL_MODE_GETFB2 DRM_IOWR(0xCE, struct drm_mode_fb_cmd2)
1100 1118
1101/*1119/*
include/uapi/drm/drm_fourcc.h+11−0
@@ -314,6 +314,13 @@ extern "C" { · 313 unmodified lines
314 */314 */
315#define DRM_FORMAT_P016 fourcc_code('P', '0', '1', '6') /* 2x2 subsampled Cr:Cb plane 16 bits per channel */315#define DRM_FORMAT_P016 fourcc_code('P', '0', '1', '6') /* 2x2 subsampled Cr:Cb plane 16 bits per channel */
316 316
317/* 2 plane YCbCr420.
318 * 3 10 bit components and 2 padding bits packed into 4 bytes.
319 * index 0 = Y plane, [31:0] x:Y2:Y1:Y0 2:10:10:10 little endian
320 * index 1 = Cr:Cb plane, [63:0] x:Cr2:Cb2:Cr1:x:Cb1:Cr0:Cb0 [2:10:10:10:2:10:10:10] little endian
321 */
322#define DRM_FORMAT_P030 fourcc_code('P', '0', '3', '0') /* 2x2 subsampled Cr:Cb plane 10 bits per channel packed */
323
317/* 3 plane non-subsampled (444) YCbCr324/* 3 plane non-subsampled (444) YCbCr
318 * 16 bits per component, but only 10 bits are used and 6 bits are padded325 * 16 bits per component, but only 10 bits are used and 6 bits are padded
319 * index 0: Y plane, [15:0] Y:x [10:6] little endian326 * index 0: Y plane, [15:0] Y:x [10:6] little endian
@@ -854,6 +861,10 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) · 534 unmodified lines
854 * and UV. Some SAND-using hardware stores UV in a separate tiled861 * and UV. Some SAND-using hardware stores UV in a separate tiled
855 * image from Y to reduce the column height, which is not supported862 * image from Y to reduce the column height, which is not supported
856 * with these modifiers.863 * with these modifiers.
864 *
865 * The DRM_FORMAT_MOD_BROADCOM_SAND128_COL_HEIGHT modifier is also
866 * supported for DRM_FORMAT_P030 where the columns remain as 128 bytes
867 * wide, but as this is a 10 bpp format that translates to 96 pixels.
857 */868 */
858 869
859#define DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(v) \870#define DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(v) \
include/uapi/drm/vmwgfx_drm.h+1−0
@@ -110,6 +110,7 @@ extern "C" { · 109 unmodified lines
110#define DRM_VMW_PARAM_HW_CAPS2 13110#define DRM_VMW_PARAM_HW_CAPS2 13
111#define DRM_VMW_PARAM_SM4_1 14111#define DRM_VMW_PARAM_SM4_1 14
112#define DRM_VMW_PARAM_SM5 15112#define DRM_VMW_PARAM_SM5 15
113#define DRM_VMW_PARAM_GL43 16
113 114
114/**115/**
115 * enum drm_vmw_handle_type - handle type for ref ioctls116 * enum drm_vmw_handle_type - handle type for ref ioctls
include/uapi/linux/kfd_sysfs.h+108−0
@@ -0,0 +1,108 @@
1/* SPDX-License-Identifier: GPL-2.0 OR MIT WITH Linux-syscall-note */
2/*
3 * Copyright 2021 Advanced Micro Devices, Inc.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be included in
13 * all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
19 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
20 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
21 * OTHER DEALINGS IN THE SOFTWARE.
22 */
23
24#ifndef KFD_SYSFS_H_INCLUDED
25#define KFD_SYSFS_H_INCLUDED
26
27/* Capability bits in node properties */
28#define HSA_CAP_HOT_PLUGGABLE 0x00000001
29#define HSA_CAP_ATS_PRESENT 0x00000002
30#define HSA_CAP_SHARED_WITH_GRAPHICS 0x00000004
31#define HSA_CAP_QUEUE_SIZE_POW2 0x00000008
32#define HSA_CAP_QUEUE_SIZE_32BIT 0x00000010
33#define HSA_CAP_QUEUE_IDLE_EVENT 0x00000020
34#define HSA_CAP_VA_LIMIT 0x00000040
35#define HSA_CAP_WATCH_POINTS_SUPPORTED 0x00000080
36#define HSA_CAP_WATCH_POINTS_TOTALBITS_MASK 0x00000f00
37#define HSA_CAP_WATCH_POINTS_TOTALBITS_SHIFT 8
38#define HSA_CAP_DOORBELL_TYPE_TOTALBITS_MASK 0x00003000
39#define HSA_CAP_DOORBELL_TYPE_TOTALBITS_SHIFT 12
40
41#define HSA_CAP_DOORBELL_TYPE_PRE_1_0 0x0
42#define HSA_CAP_DOORBELL_TYPE_1_0 0x1
43#define HSA_CAP_DOORBELL_TYPE_2_0 0x2
44#define HSA_CAP_AQL_QUEUE_DOUBLE_MAP 0x00004000
45
46/* Old buggy user mode depends on this being 0 */
47#define HSA_CAP_RESERVED_WAS_SRAM_EDCSUPPORTED 0x00080000
48
49#define HSA_CAP_MEM_EDCSUPPORTED 0x00100000
50#define HSA_CAP_RASEVENTNOTIFY 0x00200000
51#define HSA_CAP_ASIC_REVISION_MASK 0x03c00000
52#define HSA_CAP_ASIC_REVISION_SHIFT 22
53#define HSA_CAP_SRAM_EDCSUPPORTED 0x04000000
54#define HSA_CAP_SVMAPI_SUPPORTED 0x08000000
55#define HSA_CAP_FLAGS_COHERENTHOSTACCESS 0x10000000
56#define HSA_CAP_RESERVED 0xe00f8000
57
58/* Heap types in memory properties */
59#define HSA_MEM_HEAP_TYPE_SYSTEM 0
60#define HSA_MEM_HEAP_TYPE_FB_PUBLIC 1
61#define HSA_MEM_HEAP_TYPE_FB_PRIVATE 2
62#define HSA_MEM_HEAP_TYPE_GPU_GDS 3
63#define HSA_MEM_HEAP_TYPE_GPU_LDS 4
64#define HSA_MEM_HEAP_TYPE_GPU_SCRATCH 5
65
66/* Flag bits in memory properties */
67#define HSA_MEM_FLAGS_HOT_PLUGGABLE 0x00000001
68#define HSA_MEM_FLAGS_NON_VOLATILE 0x00000002
69#define HSA_MEM_FLAGS_RESERVED 0xfffffffc
70
71/* Cache types in cache properties */
72#define HSA_CACHE_TYPE_DATA 0x00000001
73#define HSA_CACHE_TYPE_INSTRUCTION 0x00000002
74#define HSA_CACHE_TYPE_CPU 0x00000004
75#define HSA_CACHE_TYPE_HSACU 0x00000008
76#define HSA_CACHE_TYPE_RESERVED 0xfffffff0
77
78/* Link types in IO link properties (matches CRAT link types) */
79#define HSA_IOLINK_TYPE_UNDEFINED 0
80#define HSA_IOLINK_TYPE_HYPERTRANSPORT 1
81#define HSA_IOLINK_TYPE_PCIEXPRESS 2
82#define HSA_IOLINK_TYPE_AMBA 3
83#define HSA_IOLINK_TYPE_MIPI 4
84#define HSA_IOLINK_TYPE_QPI_1_1 5
85#define HSA_IOLINK_TYPE_RESERVED1 6
86#define HSA_IOLINK_TYPE_RESERVED2 7
87#define HSA_IOLINK_TYPE_RAPID_IO 8
88#define HSA_IOLINK_TYPE_INFINIBAND 9
89#define HSA_IOLINK_TYPE_RESERVED3 10
90#define HSA_IOLINK_TYPE_XGMI 11
91#define HSA_IOLINK_TYPE_XGOP 12
92#define HSA_IOLINK_TYPE_GZ 13
93#define HSA_IOLINK_TYPE_ETHERNET_RDMA 14
94#define HSA_IOLINK_TYPE_RDMA_OTHER 15
95#define HSA_IOLINK_TYPE_OTHER 16
96
97/* Flag bits in IO link properties (matches CRAT flags, excluding the
98 * bi-directional flag, which is not offially part of the CRAT spec, and
99 * only used internally in KFD)
100 */
101#define HSA_IOLINK_FLAGS_ENABLED (1 << 0)
102#define HSA_IOLINK_FLAGS_NON_COHERENT (1 << 1)
103#define HSA_IOLINK_FLAGS_NO_ATOMICS_32_BIT (1 << 2)
104#define HSA_IOLINK_FLAGS_NO_ATOMICS_64_BIT (1 << 3)
105#define HSA_IOLINK_FLAGS_NO_PEER_TO_PEER_DMA (1 << 4)
106#define HSA_IOLINK_FLAGS_RESERVED 0xffffffe0
107
108#endif