On Thu, Mar 30, 2023 at 2:17 AM Christian König
<[email protected]> 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 <[email protected]>
> > ---
> > 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);
>