On Thu, Mar 30, 2023 at 2:17 AM Christian König <ckoenig.leichtzumerken@xxxxxxxxx> wrote: > > > > Am 29.03.23 um 17:25 schrieb Alex Deucher: > > 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. > > > > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> > > --- > > drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 14 ++++++++++++++ > > 1 file changed, 14 insertions(+) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c > > index 0efb38539d70..90738024cc1a 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c > > @@ -876,6 +876,20 @@ 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; > > + int r; > > We can probably use the ret variable here instead of declaring a new one. Will fix it up. Thanks, Alex > > Christian. > > > + > > + r = amdgpu_gfx_get_gfx_shadow_info(adev, &shadow_info); > > + if (!r) { > > + 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); >