]> git.dujemihanovic.xyz Git - linux.git/commitdiff
drm/amdgpu: add support for new GFX shadow size query
authorAlex Deucher <alexander.deucher@amd.com>
Thu, 9 Mar 2023 20:28:25 +0000 (15:28 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 24 Apr 2023 22:16:43 +0000 (18:16 -0400)
Use the new callback to fetch the data.  Return an error if
not supported.  UMDs should use this query to check whether
shadow buffers are supported and if so what size they
should be.

v2: return an error rather than a zerod structure.
v3: drop GDS, move into dev_info structure.  Data will be
    0 if not supported.
v4: drop local variable r

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c

index a5bae7eb993a0e733aa1bb89ce58d7872f36d03b..1d3b224b8b2894d35b50b0795a2d972332488b77 100644 (file)
@@ -876,6 +876,19 @@ int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
                dev_info->gl2c_cache_size = adev->gfx.config.gc_gl2c_per_gpu;
                dev_info->mall_size = adev->gmc.mall_size;
 
+
+               if (adev->gfx.funcs->get_gfx_shadow_info) {
+                       struct amdgpu_gfx_shadow_info shadow_info;
+
+                       ret = amdgpu_gfx_get_gfx_shadow_info(adev, &shadow_info);
+                       if (!ret) {
+                               dev_info->shadow_size = shadow_info.shadow_size;
+                               dev_info->shadow_alignment = shadow_info.shadow_alignment;
+                               dev_info->csa_size = shadow_info.csa_size;
+                               dev_info->csa_alignment = shadow_info.csa_alignment;
+                       }
+               }
+
                ret = copy_to_user(out, dev_info,
                                   min((size_t)size, sizeof(*dev_info))) ? -EFAULT : 0;
                kfree(dev_info);