Re: [PATCH V3 1/2] PCI: Add Extended Tags quirk for Broadcom HT2100 Root Port

From: Bjorn Helgaas
Date: Wed Jul 12 2017 - 15:46:03 EST


On Wed, Jul 12, 2017 at 09:07:14AM -0400, Sinan Kaya wrote:
> Hi Bjorn,
>
> On 7/11/2017 4:39 PM, Bjorn Helgaas wrote:
> > My proposal handles endpoints, too. The pci_walk_bus() in the quirk
> > handles all devices we've already enumerated, and all devices we'll
> > enumerate in the future are handled in pci_configure_device().
>
> Code clears the endpoint's extended tag capability only if a quirky host
> bridge is found.
>
> The question here was
>
> "what if you have an endpoint, it may declare extended tags capability
> and has a bug even though the host bridge is just fine"
>
> Code will enable extended tags on both the host bridge and endpoint
> if it is supported.
>
> The host bridge will start generating 256 tags towards the endpoint
> but endpoint is unable to catch up with it.
>
> Same thing is possible with two endpoints that try to do peer-to-peer
> communication. The first endpoint may generate 256 requests, second
> endpoint may not handle it.
>
> Again, this is a hypothetical condition with no known endpoints. I
> suggest we deal with this when time comes.

Jike's question (at least, the one I saw via email) was this:

Jike> Maybe checking the version of this endpoint at first? Do you expect a
Jike> v1 endpoint
Jike> to be working under v2+ ports?

This has nothing to do with whether a device is v1 or v2. All PCIe devices
are expected to handle 8-bit tags as completers. If we find defective
endpoints, we'll have to add quirks for them just like you did for the
HT2100 root port. There's nothing we can do until we find them.

Bjorn