[PATCH] drm/amdgpu/sriov refine vcn_v2_5_early_init func

Alex Deucher alexdeucher at gmail.com
Tue Mar 10 21:29:42 UTC 2020


On Tue, Mar 10, 2020 at 8:48 AM Jack Zhang <Jack.Zhang1 at amd.com> wrote:
>
> refine the assignment for vcn.num_vcn_inst,
> vcn.harvest_config, vcn.num_enc_rings in VF
>
> Signed-off-by: Jack Zhang <Jack.Zhang1 at amd.com>

Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 35 ++++++++++++++++++-----------------
>  1 file changed, 18 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c b/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
> index 2d64ba1..9b22e2b 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
> @@ -74,29 +74,30 @@ static int amdgpu_ih_clientid_vcns[] = {
>  static int vcn_v2_5_early_init(void *handle)
>  {
>         struct amdgpu_device *adev = (struct amdgpu_device *)handle;
> -       if (adev->asic_type == CHIP_ARCTURUS) {
> -               u32 harvest;
> -               int i;
> -
> -               adev->vcn.num_vcn_inst = VCN25_MAX_HW_INSTANCES_ARCTURUS;
> -               for (i = 0; i < adev->vcn.num_vcn_inst; i++) {
> -                       harvest = RREG32_SOC15(UVD, i, mmCC_UVD_HARVESTING);
> -                       if (harvest & CC_UVD_HARVESTING__UVD_DISABLE_MASK)
> -                               adev->vcn.harvest_config |= 1 << i;
> -               }
> -
> -               if (adev->vcn.harvest_config == (AMDGPU_VCN_HARVEST_VCN0 |
> -                                                AMDGPU_VCN_HARVEST_VCN1))
> -                       /* both instances are harvested, disable the block */
> -                       return -ENOENT;
> -       } else
> -               adev->vcn.num_vcn_inst = 1;
>
>         if (amdgpu_sriov_vf(adev)) {
>                 adev->vcn.num_vcn_inst = 2;
>                 adev->vcn.harvest_config = 0;
>                 adev->vcn.num_enc_rings = 1;
>         } else {
> +               if (adev->asic_type == CHIP_ARCTURUS) {
> +                       u32 harvest;
> +                       int i;
> +
> +                       adev->vcn.num_vcn_inst = VCN25_MAX_HW_INSTANCES_ARCTURUS;
> +                       for (i = 0; i < adev->vcn.num_vcn_inst; i++) {
> +                               harvest = RREG32_SOC15(UVD, i, mmCC_UVD_HARVESTING);
> +                               if (harvest & CC_UVD_HARVESTING__UVD_DISABLE_MASK)
> +                                       adev->vcn.harvest_config |= 1 << i;
> +                       }
> +
> +                       if (adev->vcn.harvest_config == (AMDGPU_VCN_HARVEST_VCN0 |
> +                                               AMDGPU_VCN_HARVEST_VCN1))
> +                               /* both instances are harvested, disable the block */
> +                               return -ENOENT;
> +               } else
> +                       adev->vcn.num_vcn_inst = 1;
> +
>                 adev->vcn.num_enc_rings = 2;
>         }
>
> --
> 2.7.4
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list