[PATCH v5 09/10] drm/amdgpu: Use PSP to program IH_RB_CNTL* registers

Zhou, Peng Ju PengJu.Zhou at amd.com
Sun May 23 11:41:39 UTC 2021


[AMD Official Use Only - Internal Distribution Only]

Hi Alex/Emily
I noticed our team member have merged this patch, so discard this one.


---------------------------------------------------------------------- 
BW
Pengju Zhou



> -----Original Message-----
> From: Deng, Emily <Emily.Deng at amd.com>
> Sent: Friday, May 21, 2021 6:08 PM
> To: Zhou, Peng Ju <PengJu.Zhou at amd.com>; Alex Deucher
> <alexdeucher at gmail.com>; Zhao, Victor <Victor.Zhao at amd.com>
> Cc: amd-gfx list <amd-gfx at lists.freedesktop.org>
> Subject: RE: [PATCH v5 09/10] drm/amdgpu: Use PSP to program
> IH_RB_CNTL* registers
> 
> Hi Pengju,
>      You'd better only switch for sriov.
> 
> Best wishes
> Emily Deng
> 
> >-----Original Message-----
> >From: Zhou, Peng Ju <PengJu.Zhou at amd.com>
> >Sent: Friday, May 21, 2021 5:58 PM
> >To: Alex Deucher <alexdeucher at gmail.com>; Zhao, Victor
> ><Victor.Zhao at amd.com>; Deng, Emily <Emily.Deng at amd.com>
> >Cc: amd-gfx list <amd-gfx at lists.freedesktop.org>
> >Subject: RE: [PATCH v5 09/10] drm/amdgpu: Use PSP to program
> >IH_RB_CNTL* registers
> >
> >[AMD Official Use Only - Internal Distribution Only]
> >
> >Hi @Zhao, Victor/@Deng, Emily
> >
> >Can you help to answer Alex's question,?
> >Because this patch originally from @Zhao, Victor, it's hard for me to
> >explain the question.
> >
> >Alex's question:
> >> > --- a/drivers/gpu/drm/amd/amdgpu/nv.c
> >> > +++ b/drivers/gpu/drm/amd/amdgpu/nv.c
> >> > @@ -845,8 +845,8 @@ int nv_set_ip_blocks(struct amdgpu_device
> *adev)
> >> >         case CHIP_NAVI12:
> >> >                 amdgpu_device_ip_block_add(adev, &nv_common_ip_block);
> >> >                 amdgpu_device_ip_block_add(adev, &gmc_v10_0_ip_block);
> >> > -               amdgpu_device_ip_block_add(adev, &navi10_ih_ip_block);
> >> >                 amdgpu_device_ip_block_add(adev,
> >> > &psp_v11_0_ip_block);
> >> > +               amdgpu_device_ip_block_add(adev,
> >> > + &navi10_ih_ip_block);
> >>
> >> Is it safe to change the order like this on bare metal?  Please look
> >> at what was done for vega and sienna cichlid.  Something like that is
> >> probably
> >a better bet.
> >
> >
> >----------------------------------------------------------------------
> >BW
> >Pengju Zhou
> >
> >
> >
> >
> >> -----Original Message-----
> >> From: Alex Deucher <alexdeucher at gmail.com>
> >> Sent: Thursday, May 20, 2021 11:47 AM
> >> To: Zhou, Peng Ju <PengJu.Zhou at amd.com>
> >> Cc: amd-gfx list <amd-gfx at lists.freedesktop.org>; Zhao, Victor
> >> <Victor.Zhao at amd.com>
> >> Subject: Re: [PATCH v5 09/10] drm/amdgpu: Use PSP to program
> >> IH_RB_CNTL* registers
> >>
> >> On Mon, May 17, 2021 at 10:39 AM Peng Ju Zhou
> <PengJu.Zhou at amd.com>
> >> wrote:
> >> >
> >> > use psp to program IH_RB_CNTL* if indirect access for ih enabled in
> >> > SRIOV environment.
> >> >
> >> > Signed-off-by: Victor <Victor.Zhao at amd.com>
> >> > Signed-off-by: Peng Ju Zhou <PengJu.Zhou at amd.com>
> >> > ---
> >> >  drivers/gpu/drm/amd/amdgpu/navi10_ih.c | 19 +++++++++++++++++--
> >> >  drivers/gpu/drm/amd/amdgpu/nv.c        |  2 +-
> >> >  2 files changed, 18 insertions(+), 3 deletions(-)
> >> >
> >> > diff --git a/drivers/gpu/drm/amd/amdgpu/navi10_ih.c
> >> > b/drivers/gpu/drm/amd/amdgpu/navi10_ih.c
> >> > index f4e4040bbd25..2e69cf8db072 100644
> >> > --- a/drivers/gpu/drm/amd/amdgpu/navi10_ih.c
> >> > +++ b/drivers/gpu/drm/amd/amdgpu/navi10_ih.c
> >> > @@ -151,7 +151,14 @@ static int
> >> > navi10_ih_toggle_ring_interrupts(struct
> >> amdgpu_device *adev,
> >> >         /* enable_intr field is only valid in ring0 */
> >> >         if (ih == &adev->irq.ih)
> >> >                 tmp = REG_SET_FIELD(tmp, IH_RB_CNTL, ENABLE_INTR,
> (enable ?
> >> 1 : 0));
> >> > -       WREG32(ih_regs->ih_rb_cntl, tmp);
> >> > +       if (amdgpu_sriov_vf(adev) && amdgpu_sriov_reg_indirect_ih(adev))
> {
> >> > +               if (psp_reg_program(&adev->psp, ih_regs->psp_reg_id, tmp)) {
> >> > +                       DRM_ERROR("PSP program IH_RB_CNTL failed!\n");
> >> > +                       return -ETIMEDOUT;
> >> > +               }
> >> > +       } else {
> >> > +               WREG32(ih_regs->ih_rb_cntl, tmp);
> >> > +       }
> >> >
> >> >         if (enable) {
> >> >                 ih->enabled = true; @@ -261,7 +268,15 @@ static int
> >> > navi10_ih_enable_ring(struct
> >> amdgpu_device *adev,
> >> >                 tmp = REG_SET_FIELD(tmp, IH_RB_CNTL,
> >> WPTR_OVERFLOW_ENABLE, 0);
> >> >                 tmp = REG_SET_FIELD(tmp, IH_RB_CNTL,
> >> > RB_FULL_DRAIN_ENABLE,
> >> 1);
> >> >         }
> >> > -       WREG32(ih_regs->ih_rb_cntl, tmp);
> >> > +
> >> > +       if (amdgpu_sriov_vf(adev) && amdgpu_sriov_reg_indirect_ih(adev))
> {
> >> > +               if (psp_reg_program(&adev->psp, ih_regs->psp_reg_id, tmp)) {
> >> > +                       DRM_ERROR("PSP program IH_RB_CNTL failed!\n");
> >> > +                       return -ETIMEDOUT;
> >> > +               }
> >> > +       } else {
> >> > +               WREG32(ih_regs->ih_rb_cntl, tmp);
> >> > +       }
> >> >
> >> >         if (ih == &adev->irq.ih) {
> >> >                 /* set the ih ring 0 writeback address whether it's
> >> > enabled or not */ diff --git a/drivers/gpu/drm/amd/amdgpu/nv.c
> >> > b/drivers/gpu/drm/amd/amdgpu/nv.c index
> a9ad28fb55b3..b9c9c4d4606c
> >> > 100644
> >> > --- a/drivers/gpu/drm/amd/amdgpu/nv.c
> >> > +++ b/drivers/gpu/drm/amd/amdgpu/nv.c
> >> > @@ -845,8 +845,8 @@ int nv_set_ip_blocks(struct amdgpu_device
> *adev)
> >> >         case CHIP_NAVI12:
> >> >                 amdgpu_device_ip_block_add(adev, &nv_common_ip_block);
> >> >                 amdgpu_device_ip_block_add(adev, &gmc_v10_0_ip_block);
> >> > -               amdgpu_device_ip_block_add(adev, &navi10_ih_ip_block);
> >> >                 amdgpu_device_ip_block_add(adev,
> >> > &psp_v11_0_ip_block);
> >> > +               amdgpu_device_ip_block_add(adev,
> >> > + &navi10_ih_ip_block);
> >>
> >> Is it safe to change the order like this on bare metal?  Please look
> >> at what was done for vega and sienna cichlid.  Something like that is
> probably a better bet.
> >>
> >> Alex
> >>
> >>
> >> >                 if (adev->firmware.load_type == AMDGPU_FW_LOAD_PSP)
> >> >                         amdgpu_device_ip_block_add(adev,
> &smu_v11_0_ip_block);
> >> >                 if (adev->enable_virtual_display ||
> >> > amdgpu_sriov_vf(adev))
> >> > --
> >> > 2.17.1
> >> >
> >> > _______________________________________________
> >> > amd-gfx mailing list
> >> > amd-gfx at lists.freedesktop.org
> >> > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fl
> >> > ist
> >> > s.freedesktop.org%2Fmailman%2Flistinfo%2Famd-
> >> gfx&data=04%7C01%7CPe
> >> >
> >>
> ngJu.Zhou%40amd.com%7Cabc8d955fb1f4deb9ce108d91b41ecbb%7C3dd89
> >> 61fe4884
> >> >
> >>
> e608e11a82d994e183d%7C0%7C0%7C637570792232990999%7CUnknown%7
> >> CTWFpbGZsb
> >> >
> >>
> 3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0
> >> %3D%
> >> >
> >>
> 7C1000&sdata=HyDcZjT3c6mY%2F%2FYdjMuW1T%2FRUIzqX5kK9vaYus
> >> mZJxI%3D&
> >> > amp;reserved=0


More information about the amd-gfx mailing list