From: Robin Murphy <robin.murphy@arm.com>
To: Bjorn Helgaas <helgaas@kernel.org>,
Zhangfei Gao <zhangfei.gao@linaro.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Arnd Bergmann <arnd@arndb.de>,
jean-philippe <jean-philippe@linaro.org>,
kenneth-lee-2012@foxmail.com, Wangzhou <wangzhou1@hisilicon.com>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
Will Deacon <will@kernel.org>, Joerg Roedel <joro@8bytes.org>
Subject: Re: [PATCH v5 3/3] PCI: Set dma-can-stall for HiSilicon chips
Date: Thu, 26 Aug 2021 20:12:12 +0100 [thread overview]
Message-ID: <225e905d-b7b2-c740-de94-2f4aece75f59@arm.com> (raw)
In-Reply-To: <20210826182624.GA3694827@bjorn-Precision-5520>
On 2021-08-26 19:26, Bjorn Helgaas wrote:
> [+cc Will, Robin, Joerg, hoping for an ack]
>
> On Tue, Jul 13, 2021 at 10:54:36AM +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@linaro.org>
>> Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
>> Signed-off-by: Zhou Wang <wangzhou1@hisilicon.com>
>> ---
>> drivers/pci/quirks.c | 13 +++++++++++++
>> 1 file changed, 13 insertions(+)
>>
>> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
>> index 5d46ac6..03b0f98 100644
>> --- a/drivers/pci/quirks.c
>> +++ b/drivers/pci/quirks.c
>> @@ -1823,10 +1823,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"),
>
> "dma-can-stall" is used in arm_smmu_probe_device() to help set
> master->stall_enabled.
>
> I don't know the implications, so it'd be nice to get an ack from a
> maintainer of that code.
If it helps,
Acked-by: Robin Murphy <robin.murphy@arm.com>
Normally stalling must not be enabled for PCI devices, since it would
break the PCI requirement for free-flowing writes and may lead to
deadlock. We expect PCI devices to support ATS and PRI if they want to
be fault-tolerant, so there's no ACPI binding to describe anything else,
even when a "PCI" device turns out to be a regular old SoC device
dressed up as a RCiEP and normal rules don't apply.
I'm taking it on trust that stalling really is safe for all possible
matching devices here (in general, deadlock may still be possible in the
SoC interconnect depending on topology, hence why it's an explicit
opt-in even for platform devices), but TBH either way I think I'd rather
have this as a quirk in the kernel under our control, than have vendors
attempt to play tricks with _DSD properties out in the field :)
Cheers,
Robin.
>> + {},
>> + };
>> +
>> 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");
>> }
>> 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
>>
next prev parent reply other threads:[~2021-08-26 19:12 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-13 2:54 [PATCH v5 0/3] PCI: Add a quirk to enable SVA for HiSilicon chip Zhangfei Gao
2021-07-13 2:54 ` [PATCH v5 1/3] PCI: PASID can be enabled without TLP prefix Zhangfei Gao
2021-07-13 2:54 ` [PATCH v5 2/3] PCI: Add a quirk to set pasid_no_tlp for HiSilicon chips Zhangfei Gao
2021-07-13 2:54 ` [PATCH v5 3/3] PCI: Set dma-can-stall " Zhangfei Gao
2021-08-26 18:26 ` Bjorn Helgaas
2021-08-26 19:12 ` Robin Murphy [this message]
2021-08-31 14:38 ` Will Deacon
2021-07-27 6:47 ` [PATCH v5 0/3] PCI: Add a quirk to enable SVA for HiSilicon chip Zhangfei Gao
2021-08-23 1:02 ` Zhangfei Gao
2021-08-04 1:33 ` Zhou Wang
2021-08-26 19:30 ` Bjorn Helgaas
2021-08-27 1:02 ` Zhangfei Gao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=225e905d-b7b2-c740-de94-2f4aece75f59@arm.com \
--to=robin.murphy@arm.com \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=helgaas@kernel.org \
--cc=jean-philippe@linaro.org \
--cc=joro@8bytes.org \
--cc=kenneth-lee-2012@foxmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=wangzhou1@hisilicon.com \
--cc=will@kernel.org \
--cc=zhangfei.gao@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®