Re: Linux Kernel Regression: HAPS quirk breaks PCIe on i.MX6QP

From: Thinh Nguyen
Date: Tue Feb 05 2019 - 16:35:37 EST


Thinh Nguyen wrote:
> Bjorn Helgaas wrote:
>> 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://urldefense.proofpoint.com/v2/url?u=https-3A__lore.kernel.org_linux-2Dpci_&d=DwIBAg&c=DPL6_X_6JkXFx7AXWqB0tg&r=u9FYoxKtyhjrGFcyixFYqTjw1ZX0VsG2d8FCmzkTY-w&m=gf8tJEWOt92UvWl-0yPhkFlhOXuG0fn-pG0zPdqsHv8&s=vQgsCLqN63Bd-d7ZMY5HPVmBa4Htnz64oO96cG-6pNA&e=
>> [2] https://urldefense.proofpoint.com/v2/url?u=https-3A__patchwork.ozlabs.org_project_linux-2Dpci_list&d=DwIBAg&c=DPL6_X_6JkXFx7AXWqB0tg&r=u9FYoxKtyhjrGFcyixFYqTjw1ZX0VsG2d8FCmzkTY-w&m=gf8tJEWOt92UvWl-0yPhkFlhOXuG0fn-pG0zPdqsHv8&s=Tbm0SOa0CCxMxzGcwT6YJrYYzVEU6x7sR8JB9l82VGg&e=

After I removed some names in the CC list, it looks like it appears on
PCI patchwork now.
https://patchwork.ozlabs.org/patch/1037211/

Thanks,
Thinh