drm/amdgpu: add tiling flags for GFX9 (v2)
authorAlex Deucher <alexander.deucher@amd.com>
Fri, 3 Mar 2017 21:00:11 +0000 (16:00 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 30 Mar 2017 03:54:39 +0000 (23:54 -0400)
v2: Marek: allow shifts >32 in AMDGPU_TILING_SET/GET

Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
include/uapi/drm/amdgpu_drm.h

index 08e90d8ea52a5828d4d504ea1e0510292a343e3d..770dc56df3ddabf7adea0787fba592525a031361 100644 (file)
@@ -209,6 +209,7 @@ struct drm_amdgpu_gem_userptr {
        __u32           handle;
 };
 
+/* SI-CI-VI: */
 /* same meaning as the GB_TILE_MODE and GL_MACRO_TILE_MODE fields */
 #define AMDGPU_TILING_ARRAY_MODE_SHIFT                 0
 #define AMDGPU_TILING_ARRAY_MODE_MASK                  0xf
@@ -227,10 +228,15 @@ struct drm_amdgpu_gem_userptr {
 #define AMDGPU_TILING_NUM_BANKS_SHIFT                  21
 #define AMDGPU_TILING_NUM_BANKS_MASK                   0x3
 
+/* GFX9 and later: */
+#define AMDGPU_TILING_SWIZZLE_MODE_SHIFT               0
+#define AMDGPU_TILING_SWIZZLE_MODE_MASK                        0x1f
+
+/* Set/Get helpers for tiling flags. */
 #define AMDGPU_TILING_SET(field, value) \
-       (((value) & AMDGPU_TILING_##field##_MASK) << AMDGPU_TILING_##field##_SHIFT)
+       (((__u64)(value) & AMDGPU_TILING_##field##_MASK) << AMDGPU_TILING_##field##_SHIFT)
 #define AMDGPU_TILING_GET(value, field) \
-       (((value) >> AMDGPU_TILING_##field##_SHIFT) & AMDGPU_TILING_##field##_MASK)
+       (((__u64)(value) >> AMDGPU_TILING_##field##_SHIFT) & AMDGPU_TILING_##field##_MASK)
 
 #define AMDGPU_GEM_METADATA_OP_SET_METADATA                  1
 #define AMDGPU_GEM_METADATA_OP_GET_METADATA                  2