2019-02-05 20:55:31

by Thinh Nguyen

[permalink] [raw]
Subject: Re: Linux Kernel Regression: HAPS quirk breaks PCIe on i.MX6QP

Hi Bjorn,

Bjorn Helgaas wrote:
> On Fri, Feb 01, 2019 at 08:27:00PM +0000, Thinh Nguyen wrote:
>> Lukas Wunner wrote:
>>> On Thu, Jan 31, 2019 at 11:46:23PM +0000, Thinh Nguyen wrote:
>>>> --- a/drivers/pci/quirks.c
>>>> +++ b/drivers/pci/quirks.c
>>>> @@ -629,6 +629,9 @@ static void quirk_synopsys_haps(struct pci_dev *pdev)
>>>> {
>>>> u32 class = pdev->class;
>>>>
>>>> + if (class != PCI_CLASS_SERIAL_USB_XHCI)
>>>> + return;
>>>> +
>>>> switch (pdev->device) {
>>>> case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3:
>>>> case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3_AXI:
>>> Please use DECLARE_PCI_FIXUP_CLASS_HEADER() instead.
>> Sure. That's a better option. Can you test this with your setup?
>>
>> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
>> index b0a413f3f7ca..f46e7de9e15d 100644
>> --- a/drivers/pci/quirks.c
>> +++ b/drivers/pci/quirks.c
>> @@ -639,8 +639,8 @@ static void quirk_synopsys_haps(struct pci_dev *pdev)
>> break;
>> }
>> }
>> -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SYNOPSYS, PCI_ANY_ID,
>> - quirk_synopsys_haps);
>> +DECLARE_PCI_FIXUP_CLASS_HEADER(PCI_VENDOR_ID_SYNOPSYS, PCI_ANY_ID,
>> + PCI_CLASS_SERIAL_USB_XHCI, 0, quirk_synopsys_haps);
>>
>> /*
>> * Let's make the southbridge information explicit instead of having to
>>
>>
> Can we get a formal patch, including details about the issue (I assume
> Synopsys released two different parts with Device ID 0xabcd) and a
> signed-off-by?
>
> I'd like to get this into for-linus as soon as possible for v5.0.
>

I already submitted a patch for this. Please review patch subject
"[PATCH] PCI: Check for USB xHCI class for HAPS platform".

Thanks,
Thinh


2019-02-05 21:04:59

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: Linux Kernel Regression: HAPS quirk breaks PCIe on i.MX6QP

On Tue, Feb 05, 2019 at 08:38:58PM +0000, Thinh Nguyen wrote:
> Hi Bjorn,
>
> Bjorn Helgaas wrote:
> > On Fri, Feb 01, 2019 at 08:27:00PM +0000, Thinh Nguyen wrote:
> >> Lukas Wunner wrote:
> >>> On Thu, Jan 31, 2019 at 11:46:23PM +0000, Thinh Nguyen wrote:
> >>>> --- a/drivers/pci/quirks.c
> >>>> +++ b/drivers/pci/quirks.c
> >>>> @@ -629,6 +629,9 @@ static void quirk_synopsys_haps(struct pci_dev *pdev)
> >>>> {
> >>>> u32 class = pdev->class;
> >>>>
> >>>> + if (class != PCI_CLASS_SERIAL_USB_XHCI)
> >>>> + return;
> >>>> +
> >>>> switch (pdev->device) {
> >>>> case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3:
> >>>> case PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3_AXI:
> >>> Please use DECLARE_PCI_FIXUP_CLASS_HEADER() instead.
> >> Sure. That's a better option. Can you test this with your setup?
> >>
> >> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> >> index b0a413f3f7ca..f46e7de9e15d 100644
> >> --- a/drivers/pci/quirks.c
> >> +++ b/drivers/pci/quirks.c
> >> @@ -639,8 +639,8 @@ static void quirk_synopsys_haps(struct pci_dev *pdev)
> >> break;
> >> }
> >> }
> >> -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SYNOPSYS, PCI_ANY_ID,
> >> - quirk_synopsys_haps);
> >> +DECLARE_PCI_FIXUP_CLASS_HEADER(PCI_VENDOR_ID_SYNOPSYS, PCI_ANY_ID,
> >> + PCI_CLASS_SERIAL_USB_XHCI, 0, quirk_synopsys_haps);
> >>
> >> /*
> >> * Let's make the southbridge information explicit instead of having to
> >>
> >>
> > Can we get a formal patch, including details about the issue (I assume
> > Synopsys released two different parts with Device ID 0xabcd) and a
> > signed-off-by?
> >
> > I'd like to get this into for-linus as soon as possible for v5.0.
>
> I already submitted a patch for this. Please review patch subject
> "[PATCH] PCI: Check for USB xHCI class for HAPS platform".

OK, maybe I'm missing something. I don't see it on the linux-pci list
[1] or the PCI patchwork [2] yet. Maybe it's still making its way
through the mailing list servers. If you have a URL to the archive or
patchwork, let me know.

Bjorn

[1] https://lore.kernel.org/linux-pci/
[2] https://patchwork.ozlabs.org/project/linux-pci/list