Message ID | 20250217151053.420882-1-alexander.deucher@amd.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Bjorn Helgaas |
Headers | show |
Series | PCI: fix Sapphire PCI rebar quirk | expand |
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. 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 > Fixes: 907830b0fc9e ("PCI: Add a REBAR size quirk for Sapphire RX 5600 XT Pulse") > Signed-off-by: Alex Deucher <alexander.deucher@amd.com> > Cc: Christian König <christian.koenig@amd.com> > Cc: Bjorn Helgaas <bhelgaas@google.com> > Cc: Nirmoy Das <nirmoy.aiemd@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; >
On Mon, Feb 17, 2025 at 10:38 AM Christian König <christian.koenig@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. > > 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@amd.com> > > Cc: Christian König <christian.koenig@amd.com> > > Cc: Bjorn Helgaas <bhelgaas@google.com> > > Cc: Nirmoy Das <nirmoy.aiemd@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; > > >
On Mon, Feb 17, 2025 at 10:45 AM Alex Deucher <alexdeucher@gmail.com> wrote: > > On Mon, Feb 17, 2025 at 10:38 AM Christian König > <christian.koenig@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? 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@amd.com> > > > Cc: Christian König <christian.koenig@amd.com> > > > Cc: Bjorn Helgaas <bhelgaas@google.com> > > > Cc: Nirmoy Das <nirmoy.aiemd@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; > > > > >
On 2/17/2025 10:00, Alex Deucher wrote: > On Mon, Feb 17, 2025 at 10:45 AM Alex Deucher <alexdeucher@gmail.com> wrote: >> >> On Mon, Feb 17, 2025 at 10:38 AM Christian König >> <christian.koenig@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@amd.com> >>>> Cc: Christian König <christian.koenig@amd.com> >>>> Cc: Bjorn Helgaas <bhelgaas@google.com> >>>> Cc: Nirmoy Das <nirmoy.aiemd@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; >>>> >>>
Am 17.02.25 um 17:04 schrieb Mario Limonciello: > On 2/17/2025 10:00, Alex Deucher wrote: >> On Mon, Feb 17, 2025 at 10:45 AM Alex Deucher <alexdeucher@gmail.com> wrote: >>> >>> On Mon, Feb 17, 2025 at 10:38 AM Christian König >>> <christian.koenig@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, With that fixed feel free to add my rb. It's just that the Dell systems are unstable even without the resizing. The resizing just makes it more likely to hit the issue because ti massively improves performance on the RX 5600 boards. Regards, Christian. > >> >> 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@amd.com> >>>>> Cc: Christian König <christian.koenig@amd.com> >>>>> Cc: Bjorn Helgaas <bhelgaas@google.com> >>>>> Cc: Nirmoy Das <nirmoy.aiemd@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; >>>>> >>>> >
On 2/18/2025 1:33 PM, Christian König wrote: > Am 17.02.25 um 17:04 schrieb Mario Limonciello: >> On 2/17/2025 10:00, Alex Deucher wrote: >>> On Mon, Feb 17, 2025 at 10:45 AM Alex Deucher <alexdeucher@gmail.com> wrote: >>>> >>>> On Mon, Feb 17, 2025 at 10:38 AM Christian König >>>> <christian.koenig@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, > > With that fixed feel free to add my rb. It's just that the Dell systems are unstable even without the resizing. > > The resizing just makes it more likely to hit the issue because ti massively improves performance on the RX 5600 boards. > As a workaround, from the thread, the most reliable one seems to be to disable runpm on the device. Thanks, Lijo > Regards, > Christian. > >> >>> >>> 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@amd.com> >>>>>> Cc: Christian König <christian.koenig@amd.com> >>>>>> Cc: Bjorn Helgaas <bhelgaas@google.com> >>>>>> Cc: Nirmoy Das <nirmoy.aiemd@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; >>>>>> >>>>> >> >
Am 18.02.25 um 10:58 schrieb Lazar, Lijo: > On 2/18/2025 1:33 PM, Christian König wrote: >> Am 17.02.25 um 17:04 schrieb Mario Limonciello: >>> On 2/17/2025 10:00, Alex Deucher wrote: >>>> On Mon, Feb 17, 2025 at 10:45 AM Alex Deucher <alexdeucher@gmail.com> wrote: >>>>> On Mon, Feb 17, 2025 at 10:38 AM Christian König >>>>> <christian.koenig@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, >> With that fixed feel free to add my rb. It's just that the Dell systems are unstable even without the resizing. >> >> The resizing just makes it more likely to hit the issue because ti massively improves performance on the RX 5600 boards. >> > As a workaround, from the thread, the most reliable one seems to be to > disable runpm on the device. Yeah, really good point. Actually trying to fix the underlying issue is my strong preference as well. Regards, Christian. > > Thanks, > Lijo > >> Regards, >> Christian. >> >>>> 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@amd.com> >>>>>>> Cc: Christian König <christian.koenig@amd.com> >>>>>>> Cc: Bjorn Helgaas <bhelgaas@google.com> >>>>>>> Cc: Nirmoy Das <nirmoy.aiemd@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; >>>>>>>
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;
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. Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/1707 Fixes: 907830b0fc9e ("PCI: Add a REBAR size quirk for Sapphire RX 5600 XT Pulse") Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: Christian König <christian.koenig@amd.com> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: Nirmoy Das <nirmoy.aiemd@gmail.com> --- drivers/pci/pci.c | 1 + 1 file changed, 1 insertion(+)