[PATCH v3 4/5] drm/amdgpu: enable redirection of irq's for IH V6.0

Khatri, Sunil sukhatri at amd.com
Tue Apr 16 15:43:07 UTC 2024


On 4/16/2024 7:56 PM, Alex Deucher wrote:
> On Tue, Apr 16, 2024 at 9:34 AM Sunil Khatri <sunil.khatri at amd.com> wrote:
>> Enable redirection of irq for pagefaults for specific
>> clients to avoid overflow without dropping interrupts.
>>
>> So here we redirect the interrupts to another IH ring
>> i.e ring1 where only these interrupts are processed.
>>
>> Signed-off-by: Sunil Khatri <sunil.khatri at amd.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/ih_v6_0.c | 15 +++++++++++++++
>>   1 file changed, 15 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c b/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c
>> index 26dc99232eb6..8869aac03b82 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c
>> @@ -346,6 +346,21 @@ static int ih_v6_0_irq_init(struct amdgpu_device *adev)
>>                              DELAY, 3);
>>          WREG32_SOC15(OSSSYS, 0, regIH_MSI_STORM_CTRL, tmp);
>>
>> +       /* Redirect the interrupts to IH RB1 fpr dGPU */
> fpr -> for

Sure will fix it when pushing the change to staging branch.

Regards
Sunil khatri

>
> Alex
>
>> +       if (adev->irq.ih1.ring_size) {
>> +               tmp = RREG32_SOC15(OSSSYS, 0, regIH_RING1_CLIENT_CFG_INDEX);
>> +               tmp = REG_SET_FIELD(tmp, IH_RING1_CLIENT_CFG_INDEX, INDEX, 0);
>> +               WREG32_SOC15(OSSSYS, 0, regIH_RING1_CLIENT_CFG_INDEX, tmp);
>> +
>> +               tmp = RREG32_SOC15(OSSSYS, 0, regIH_RING1_CLIENT_CFG_DATA);
>> +               tmp = REG_SET_FIELD(tmp, IH_RING1_CLIENT_CFG_DATA, CLIENT_ID, 0xa);
>> +               tmp = REG_SET_FIELD(tmp, IH_RING1_CLIENT_CFG_DATA, SOURCE_ID, 0x0);
>> +               tmp = REG_SET_FIELD(tmp, IH_RING1_CLIENT_CFG_DATA,
>> +                                   SOURCE_ID_MATCH_ENABLE, 0x1);
>> +
>> +               WREG32_SOC15(OSSSYS, 0, regIH_RING1_CLIENT_CFG_DATA, tmp);
>> +       }
>> +
>>          pci_set_master(adev->pdev);
>>
>>          /* enable interrupts */
>> --
>> 2.34.1
>>


More information about the amd-gfx mailing list