[PATCH] PCI: fix Sapphire PCI rebar quirk

Mario Limonciello mario.limonciello at amd.com
Mon Feb 17 16:04:30 UTC 2025


On 2/17/2025 10:00, Alex Deucher wrote:
> On Mon, Feb 17, 2025 at 10:45 AM Alex Deucher <alexdeucher at gmail.com> wrote:
>>
>> On Mon, Feb 17, 2025 at 10:38 AM Christian König
>> <christian.koenig at amd.com> wrote:
>>>
>>> Am 17.02.25 um 16:10 schrieb Alex Deucher:
>>>> There was a quirk added to add a workaround for a Sapphire
>>>> RX 5600 XT Pulse.  However, the quirk only checks the vendor
>>>> ids and not the subsystem ids.  The quirk really should
>>>> have checked the subsystem vendor and device ids as now
>>>> this quirk gets applied to all RX 5600 and it seems to
>>>> cause problems on some Dell laptops.  Add a subsystem vendor
>>>> id check to limit the quirk to Sapphire boards.
>>>
>>> That's not correct. The issue is present on all RX 5600 boards, not just the Sapphire ones.
>>
>> I suppose the alternative would be to disable resizing on the
>> problematic DELL systems only.
> 
> How about this attached patch instead?

JFYI Typo in the commit message:

s,casused,caused,

> 
> Alex
> 
>>
>>>
>>> The problems with the Dell laptops are most likely the general instability of the RX 5600 again which this quirk just make more obvious because of the performance improvement.
>>>
>>> Do you have a specific bug report for the Dell laptops?
>>>
>>> Regards,
>>> Christian.
>>>
>>>>
>>>> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/1707
>>
>> ^^^ this bug report
>>
>> Alex
>>
>>
>>>> Fixes: 907830b0fc9e ("PCI: Add a REBAR size quirk for Sapphire RX 5600 XT Pulse")
>>>> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
>>>> Cc: Christian König <christian.koenig at amd.com>
>>>> Cc: Bjorn Helgaas <bhelgaas at google.com>
>>>> Cc: Nirmoy Das <nirmoy.aiemd at gmail.com>
>>>> ---
>>>>   drivers/pci/pci.c | 1 +
>>>>   1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
>>>> index 225a6cd2e9ca3..dec917636974e 100644
>>>> --- a/drivers/pci/pci.c
>>>> +++ b/drivers/pci/pci.c
>>>> @@ -3766,6 +3766,7 @@ u32 pci_rebar_get_possible_sizes(struct pci_dev *pdev, int bar)
>>>>
>>>>        /* Sapphire RX 5600 XT Pulse has an invalid cap dword for BAR 0 */
>>>>        if (pdev->vendor == PCI_VENDOR_ID_ATI && pdev->device == 0x731f &&
>>>> +         pdev->subsystem_vendor == 0x1da2 &&
>>>
>>>
>>>
>>>
>>>>            bar == 0 && cap == 0x700)
>>>>                return 0x3f00;
>>>>
>>>



More information about the amd-gfx mailing list