On 7/2/26 13:53, Timur Kristóf wrote:
> On 2026. július 2., csütörtök 12:38:12 közép-európai nyári idő Christian
> König
> wrote:
>> On 7/1/26 18:17, Timur Kristóf wrote:
>>> The retry CAM can filter interrupts which occur repeatedly,
>>> such as page fault interrupts when retry faults are enabled.
>>> This makes processing those interrupts much more efficient,
>>> because the CPU won't have to deal with processing the same
>>> interrupt repeatedly.
>>>
>>> Signed-off-by: Timur Kristóf <[email protected]>
>>> ---
>>>
>>> drivers/gpu/drm/amd/amdgpu/ih_v7_0.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/ih_v7_0.c
>>> b/drivers/gpu/drm/amd/amdgpu/ih_v7_0.c index 291326d2ee8b..ec0919fa8254
>>> 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/ih_v7_0.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/ih_v7_0.c
>>> @@ -390,7 +390,8 @@ static int ih_v7_0_irq_init(struct amdgpu_device
>>> *adev)
>>>
>>> pci_set_master(adev->pdev);
>>>
>>> - if (amdgpu_ip_version(adev, OSSSYS_HWIP, 0) == IP_VERSION(7, 1,
> 0)) {
>>> + if (amdgpu_ip_version(adev, OSSSYS_HWIP, 0) == IP_VERSION(7, 1, 0)
> ||
>>> + !(adev->flags & AMD_IS_APU)) {
>>
>> I think the check should be the other way around.
>>
>> In other words we can enable the cam on dGPU or APUs with IP version 7.1
>> because that one has the CAM as well.
>
> What do you mean by the other way around?
>
> The patch keeps pre-existing behaviour on IH 7.1 and additionally enables the
> retry CAM on dGPUs. The patch makes no functional changes to IH 7.1, on that
> version the retry CAM is always enabled regardless of whether it's an APU or
> dGPU.
I just wanted to make the logic more readable. In other words:
if (!(adev->flags & AMD_IS_APU) ||
amdgpu_ip_version(adev, OSSSYS_HWIP, 0) == IP_VERSION(7, 1, 0))
...
I still need to double check why we have the exception for OSSSYS 7.1.
Could be that this is for some MI* product, but I'm not 100% sure yet.
Regards,
Christian.
>
>>
>>> /* Enable IH Retry CAM */
>>> tmp = RREG32_SOC15(OSSSYS, 0,
> regIH_RETRY_INT_CAM_CNTL);
>>> tmp = REG_SET_FIELD(tmp, IH_RETRY_INT_CAM_CNTL, ENABLE,
> 1);
>
>
>
>