[PATCH 2/2] drm/amdgpu: cleanup sriov function for psp v12

Alex Deucher alexdeucher at gmail.com
Tue Apr 29 13:23:45 UTC 2025


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

On Tue, Apr 29, 2025 at 6:30 AM Huang Rui <ray.huang at amd.com> wrote:
>
> PSP v12 won't have SRIOV function.
>
> Signed-off-by: Huang Rui <ray.huang at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 52 +++++++++-----------------
>  1 file changed, 17 insertions(+), 35 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c
> index ed24f61e1ab8..80153f837470 100644
> --- a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c
> @@ -147,41 +147,23 @@ static int psp_v12_0_ring_create(struct psp_context *psp,
>         struct psp_ring *ring = &psp->km_ring;
>         struct amdgpu_device *adev = psp->adev;
>
> -       if (amdgpu_sriov_vf(psp->adev)) {
> -               /* Write low address of the ring to C2PMSG_102 */
> -               psp_ring_reg = lower_32_bits(ring->ring_mem_mc_addr);
> -               WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_102, psp_ring_reg);
> -               /* Write high address of the ring to C2PMSG_103 */
> -               psp_ring_reg = upper_32_bits(ring->ring_mem_mc_addr);
> -               WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_103, psp_ring_reg);
> -
> -               /* Write the ring initialization command to C2PMSG_101 */
> -               WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_101,
> -                                            GFX_CTRL_CMD_ID_INIT_GPCOM_RING);
> -
> -               /* Wait for response flag (bit 31) in C2PMSG_101 */
> -               ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_101),
> -                                  0x80000000, 0x8000FFFF, false);
> -
> -       } else {
> -               /* Write low address of the ring to C2PMSG_69 */
> -               psp_ring_reg = lower_32_bits(ring->ring_mem_mc_addr);
> -               WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_69, psp_ring_reg);
> -               /* Write high address of the ring to C2PMSG_70 */
> -               psp_ring_reg = upper_32_bits(ring->ring_mem_mc_addr);
> -               WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_70, psp_ring_reg);
> -               /* Write size of ring to C2PMSG_71 */
> -               psp_ring_reg = ring->ring_size;
> -               WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_71, psp_ring_reg);
> -               /* Write the ring initialization command to C2PMSG_64 */
> -               psp_ring_reg = ring_type;
> -               psp_ring_reg = psp_ring_reg << 16;
> -               WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_64, psp_ring_reg);
> -
> -               /* Wait for response flag (bit 31) in C2PMSG_64 */
> -               ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
> -                                  0x80000000, 0x8000FFFF, false);
> -       }
> +       /* Write low address of the ring to C2PMSG_69 */
> +       psp_ring_reg = lower_32_bits(ring->ring_mem_mc_addr);
> +       WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_69, psp_ring_reg);
> +       /* Write high address of the ring to C2PMSG_70 */
> +       psp_ring_reg = upper_32_bits(ring->ring_mem_mc_addr);
> +       WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_70, psp_ring_reg);
> +       /* Write size of ring to C2PMSG_71 */
> +       psp_ring_reg = ring->ring_size;
> +       WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_71, psp_ring_reg);
> +       /* Write the ring initialization command to C2PMSG_64 */
> +       psp_ring_reg = ring_type;
> +       psp_ring_reg = psp_ring_reg << 16;
> +       WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_64, psp_ring_reg);
> +
> +       /* Wait for response flag (bit 31) in C2PMSG_64 */
> +       ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
> +                          0x80000000, 0x8000FFFF, false);
>
>         return ret;
>  }
> --
> 2.25.1
>


More information about the amd-gfx mailing list