Merge tag 'amd-drm-next-5.11-2020-11-05' of git://people.freedesktop.org/~agd5f/linux into drm-next
amd-drm-next-5.11-2020-11-05: amdgpu: - Add initial support for Vangogh - Add support for Green Sardine - Add initial support for Dimgrey Cavefish - Scatter/Gather display support for Renoir - Updates for Sienna Cichlid - Updates for Navy Flounder - SMU7 power improvements - Modifier support for gfx9+ - CI BACO fixes - Arcturus SMU fixes - Lots of code cleanups - DC fixes - Kernel doc fixes - Add more GPU HW client information to page fault error logging - MPO clock tuning for RV - FP fixes for DCN3 on ARM and PPC radeon: - Expose voltage via hwmon on Sumo APUs amdkfd: - Fix unique id handling - Misc fixes From: Alex Deucher <alexdeucher@gmail.com> Link: https://patchwork.freedesktop.org/patch/msgid/20201105222749.201798-1-alexander.deucher@amd.com
This commit is contained in:
@@ -667,7 +667,7 @@ struct drm_amdgpu_cs_chunk_data {
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
/*
|
||||
* Query h/w info: Flag that this is integrated (a.h.a. fusion) GPU
|
||||
*
|
||||
*/
|
||||
@@ -724,6 +724,8 @@ struct drm_amdgpu_cs_chunk_data {
|
||||
#define AMDGPU_INFO_FW_TA 0x13
|
||||
/* Subquery id: Query DMCUB firmware version */
|
||||
#define AMDGPU_INFO_FW_DMCUB 0x14
|
||||
/* Subquery id: Query TOC firmware version */
|
||||
#define AMDGPU_INFO_FW_TOC 0x15
|
||||
|
||||
/* number of bytes moved for TTM migration */
|
||||
#define AMDGPU_INFO_NUM_BYTES_MOVED 0x0f
|
||||
@@ -946,6 +948,7 @@ struct drm_amdgpu_info_firmware {
|
||||
#define AMDGPU_VRAM_TYPE_DDR3 7
|
||||
#define AMDGPU_VRAM_TYPE_DDR4 8
|
||||
#define AMDGPU_VRAM_TYPE_GDDR6 9
|
||||
#define AMDGPU_VRAM_TYPE_DDR5 10
|
||||
|
||||
struct drm_amdgpu_info_device {
|
||||
/** PCI Device ID */
|
||||
@@ -1083,6 +1086,7 @@ struct drm_amdgpu_info_vce_clock_table {
|
||||
#define AMDGPU_FAMILY_AI 141 /* Vega10 */
|
||||
#define AMDGPU_FAMILY_RV 142 /* Raven */
|
||||
#define AMDGPU_FAMILY_NV 143 /* Navi10 */
|
||||
#define AMDGPU_FAMILY_VGH 144 /* Van Gogh */
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
|
||||
@@ -1095,6 +1095,121 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
|
||||
*/
|
||||
#define AMLOGIC_FBC_OPTION_MEM_SAVING (1ULL << 0)
|
||||
|
||||
/*
|
||||
* AMD modifiers
|
||||
*
|
||||
* Memory layout:
|
||||
*
|
||||
* without DCC:
|
||||
* - main surface
|
||||
*
|
||||
* with DCC & without DCC_RETILE:
|
||||
* - main surface in plane 0
|
||||
* - DCC surface in plane 1 (RB-aligned, pipe-aligned if DCC_PIPE_ALIGN is set)
|
||||
*
|
||||
* with DCC & DCC_RETILE:
|
||||
* - main surface in plane 0
|
||||
* - displayable DCC surface in plane 1 (not RB-aligned & not pipe-aligned)
|
||||
* - pipe-aligned DCC surface in plane 2 (RB-aligned & pipe-aligned)
|
||||
*
|
||||
* For multi-plane formats the above surfaces get merged into one plane for
|
||||
* each format plane, based on the required alignment only.
|
||||
*/
|
||||
#define AMD_FMT_MOD fourcc_mod_code(AMD, 0)
|
||||
|
||||
#define IS_AMD_FMT_MOD(val) (((val) >> 56) == DRM_FORMAT_MOD_VENDOR_AMD)
|
||||
|
||||
/* Reserve 0 for GFX8 and older */
|
||||
#define AMD_FMT_MOD_TILE_VER_GFX9 1
|
||||
#define AMD_FMT_MOD_TILE_VER_GFX10 2
|
||||
#define AMD_FMT_MOD_TILE_VER_GFX10_RBPLUS 3
|
||||
|
||||
/*
|
||||
* 64K_S is the same for GFX9/GFX10/GFX10_RBPLUS and hence has GFX9 as canonical
|
||||
* version.
|
||||
*/
|
||||
#define AMD_FMT_MOD_TILE_GFX9_64K_S 9
|
||||
|
||||
/*
|
||||
* 64K_D for non-32 bpp is the same for GFX9/GFX10/GFX10_RBPLUS and hence has
|
||||
* GFX9 as canonical version.
|
||||
*/
|
||||
#define AMD_FMT_MOD_TILE_GFX9_64K_D 10
|
||||
#define AMD_FMT_MOD_TILE_GFX9_64K_S_X 25
|
||||
#define AMD_FMT_MOD_TILE_GFX9_64K_D_X 26
|
||||
#define AMD_FMT_MOD_TILE_GFX9_64K_R_X 27
|
||||
|
||||
#define AMD_FMT_MOD_DCC_BLOCK_64B 0
|
||||
#define AMD_FMT_MOD_DCC_BLOCK_128B 1
|
||||
#define AMD_FMT_MOD_DCC_BLOCK_256B 2
|
||||
|
||||
#define AMD_FMT_MOD_TILE_VERSION_SHIFT 0
|
||||
#define AMD_FMT_MOD_TILE_VERSION_MASK 0xFF
|
||||
#define AMD_FMT_MOD_TILE_SHIFT 8
|
||||
#define AMD_FMT_MOD_TILE_MASK 0x1F
|
||||
|
||||
/* Whether DCC compression is enabled. */
|
||||
#define AMD_FMT_MOD_DCC_SHIFT 13
|
||||
#define AMD_FMT_MOD_DCC_MASK 0x1
|
||||
|
||||
/*
|
||||
* Whether to include two DCC surfaces, one which is rb & pipe aligned, and
|
||||
* one which is not-aligned.
|
||||
*/
|
||||
#define AMD_FMT_MOD_DCC_RETILE_SHIFT 14
|
||||
#define AMD_FMT_MOD_DCC_RETILE_MASK 0x1
|
||||
|
||||
/* Only set if DCC_RETILE = false */
|
||||
#define AMD_FMT_MOD_DCC_PIPE_ALIGN_SHIFT 15
|
||||
#define AMD_FMT_MOD_DCC_PIPE_ALIGN_MASK 0x1
|
||||
|
||||
#define AMD_FMT_MOD_DCC_INDEPENDENT_64B_SHIFT 16
|
||||
#define AMD_FMT_MOD_DCC_INDEPENDENT_64B_MASK 0x1
|
||||
#define AMD_FMT_MOD_DCC_INDEPENDENT_128B_SHIFT 17
|
||||
#define AMD_FMT_MOD_DCC_INDEPENDENT_128B_MASK 0x1
|
||||
#define AMD_FMT_MOD_DCC_MAX_COMPRESSED_BLOCK_SHIFT 18
|
||||
#define AMD_FMT_MOD_DCC_MAX_COMPRESSED_BLOCK_MASK 0x1
|
||||
|
||||
/*
|
||||
* DCC supports embedding some clear colors directly in the DCC surface.
|
||||
* However, on older GPUs the rendering HW ignores the embedded clear color
|
||||
* and prefers the driver provided color. This necessitates doing a fastclear
|
||||
* eliminate operation before a process transfers control.
|
||||
*
|
||||
* If this bit is set that means the fastclear eliminate is not needed for these
|
||||
* embeddable colors.
|
||||
*/
|
||||
#define AMD_FMT_MOD_DCC_CONSTANT_ENCODE_SHIFT 19
|
||||
#define AMD_FMT_MOD_DCC_CONSTANT_ENCODE_MASK 0x1
|
||||
|
||||
/*
|
||||
* The below fields are for accounting for per GPU differences. These are only
|
||||
* relevant for GFX9 and later and if the tile field is *_X/_T.
|
||||
*
|
||||
* PIPE_XOR_BITS = always needed
|
||||
* BANK_XOR_BITS = only for TILE_VER_GFX9
|
||||
* PACKERS = only for TILE_VER_GFX10_RBPLUS
|
||||
* RB = only for TILE_VER_GFX9 & DCC
|
||||
* PIPE = only for TILE_VER_GFX9 & DCC & (DCC_RETILE | DCC_PIPE_ALIGN)
|
||||
*/
|
||||
#define AMD_FMT_MOD_PIPE_XOR_BITS_SHIFT 20
|
||||
#define AMD_FMT_MOD_PIPE_XOR_BITS_MASK 0x7
|
||||
#define AMD_FMT_MOD_BANK_XOR_BITS_SHIFT 23
|
||||
#define AMD_FMT_MOD_BANK_XOR_BITS_MASK 0x7
|
||||
#define AMD_FMT_MOD_PACKERS_SHIFT 26 /* aliases with BANK_XOR_BITS */
|
||||
#define AMD_FMT_MOD_PACKERS_MASK 0x7
|
||||
#define AMD_FMT_MOD_RB_SHIFT 29
|
||||
#define AMD_FMT_MOD_RB_MASK 0x7
|
||||
#define AMD_FMT_MOD_PIPE_SHIFT 32
|
||||
#define AMD_FMT_MOD_PIPE_MASK 0x7
|
||||
|
||||
#define AMD_FMT_MOD_SET(field, value) \
|
||||
((uint64_t)(value) << AMD_FMT_MOD_##field##_SHIFT)
|
||||
#define AMD_FMT_MOD_GET(field, value) \
|
||||
(((value) >> AMD_FMT_MOD_##field##_SHIFT) & AMD_FMT_MOD_##field##_MASK)
|
||||
#define AMD_FMT_MOD_CLEAR(field) \
|
||||
(~((uint64_t)AMD_FMT_MOD_##field##_MASK << AMD_FMT_MOD_##field##_SHIFT))
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user