Re: [PATCH v2 3/3] PCI: set dma-can-stall for HiSilicon chip

From: Bjorn Helgaas
Date: Thu Jan 21 2021 - 12:52:10 EST


On Thu, Jan 21, 2021 at 10:57:09AM -0600, Bjorn Helgaas wrote:
> On Mon, Jan 18, 2021 at 04:58:36PM +0800, Zhangfei Gao wrote:
> > HiSilicon KunPeng920 and KunPeng930 have devices appear as PCI but are
> > actually on the AMBA bus. These fake PCI devices can support SVA via
> > SMMU stall feature, by setting dma-can-stall for ACPI platforms.
> >
> > Signed-off-by: Zhangfei Gao <zhangfei.gao@xxxxxxxxxx>
> > Signed-off-by: Jean-Philippe Brucker <jean-philippe@xxxxxxxxxx>
> > Signed-off-by: Zhou Wang <wangzhou1@xxxxxxxxxxxxx>
> > ---
> > Property dma-can-stall depends on patchset
> > https://lore.kernel.org/linux-iommu/20210108145217.2254447-1-jean-philippe@xxxxxxxxxx/
> >
> > drivers/pci/quirks.c | 13 +++++++++++++
> > 1 file changed, 13 insertions(+)
> >
> > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> > index 873d27f..b866cdf 100644
> > --- a/drivers/pci/quirks.c
> > +++ b/drivers/pci/quirks.c
> > @@ -1827,10 +1827,23 @@ DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_VENDOR_ID_HUAWEI, 0x1610, PCI_CLASS_BRIDGE_PCI
> >
> > static void quirk_huawei_pcie_sva(struct pci_dev *pdev)
> > {
> > + struct property_entry properties[] = {
> > + PROPERTY_ENTRY_BOOL("dma-can-stall"),
> > + {},
> > + };
> > +
> > if (pdev->revision != 0x21 && pdev->revision != 0x30)
> > return;
> >
> > pdev->pasid_no_tlp = 1;
> > +
> > + /*
> > + * Set the dma-can-stall property on ACPI platforms. Device tree
> > + * can set it directly.
> > + */
> > + if (!pdev->dev.of_node &&
> > + device_add_properties(&pdev->dev, properties))
> > + pci_warn(pdev, "could not add stall property");
>
> What's the purpose of adding the "dma-can-stall" property? I don't
> see any reference to that property in the tree or in this series. If
> this is related to some other series that uses it, perhaps this part
> should be moved to that series?

Sorry, I missed your note about this above! Thanks for the pointer.

I hate having code in the tree that's useless pending some other
series, but I guess doing it this way helps avoid ordering issues
between this series and that one.

But please include the lore URL to Jean-Philippe's series in the
commit log so that if this patch is merged before Jean-Philippe's,
people at least have a hint about what's going on.

> > }
> > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_HUAWEI, 0xa250, quirk_huawei_pcie_sva);
> > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_HUAWEI, 0xa251, quirk_huawei_pcie_sva);
> > --
> > 2.7.4
> >