From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
To: Rob Herring <robh@kernel.org>
Cc: Andy Gross <agross@kernel.org>,
Bjorn Andersson <bjorn.andersson@linaro.org>,
Krzysztof Kozlowski <krzk@kernel.org>,
Jingoo Han <jingoohan1@gmail.com>,
Gustavo Pimentel <gustavo.pimentel@synopsys.com>,
Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Stanimir Varbanov <svarbanov@mm-sol.com>,
Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>,
Vinod Koul <vkoul@kernel.org>,
linux-arm-msm@vger.kernel.org, linux-pci@vger.kernel.org,
devicetree@vger.kernel.org
Subject: Re: [PATCH v7 5/7] PCI: qcom: Handle MSIs routed to multiple GIC interrupts
Date: Fri, 6 May 2022 10:40:56 +0300 [thread overview]
Message-ID: <b334a2e6-69ae-690d-8560-25f8a1319e5c@linaro.org> (raw)
In-Reply-To: <YnRA//LbCW+IVi3o@robh.at.kernel.org>
On 06/05/2022 00:26, Rob Herring wrote:
> On Thu, May 05, 2022 at 04:54:05PM +0300, Dmitry Baryshkov wrote:
>> On some of Qualcomm platforms each group of 32 MSI vectors is routed to the
>> separate GIC interrupt. Thus to receive higher MSI vectors properly,
>> add separate msi_host_init()/msi_host_deinit() handling additional host
>> IRQs.
>
> msi_host_init() has 1 user (keystone) as it doesn't use the DWC MSI
> controller. But QCom does given the access to PCIE_MSI_INTR0_STATUS,
> so mutiple MSI IRQ outputs must have been added in newer versions of the
> DWC IP. If so, it's only a matter of time for another platform to
> do the same thing. Maybe someone from Synopsys could confirm?
This is a valid question, and if you check, first iterations of this
patchset had this in the dwc core ([1], [2]). Exactly for the reason
this might be usable for other platforms.
Then I did some research for other platforms using DWC PCIe IP core. For
example, both Tegra Xavier and iMX6 support up to 256 MSI vectors, they
use DWC MSI IRQ controller. The iMX6 TRM explicitly describes using
different MSI groups for different endpoints. The diagram shows 8 MSI
IRQ signal lines. However in the end the signals from all groups are
OR'ed to form a single host msi_ctrl_int. Thus currently I suppose that
using multiple MSI IRQs is a peculiarity of Qualcomm platform.
>
> Therefore this should all be handled in the DWC core. In general, I
> don't want to see more users nor more ops if we don't have to. Let's not
> create ops for what can be handled as data. AFAICT, this is just number
> of MSIs and # of MSIs per IRQ. It seems plausible another platform could
> do something similar and supporting it in the core code wouldn't
> negatively impact other platforms.
I wanted to balance adding additional ops vs complicating the core for
other platforms. And I still suppose that platform specifics should go
to the platform driver. However if you prefer [1] and [2], we can go
back to that implementation.
[1]:
https://lore.kernel.org/linux-arm-msm/20220427121653.3158569-2-dmitry.baryshkov@linaro.org/[2]:
https://lore.kernel.org/linux-arm-msm/20220427121653.3158569-3-dmitry.baryshkov@linaro.org/
--
With best wishes
Dmitry
next prev parent reply other threads:[~2022-05-06 7:41 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-05 13:54 [PATCH v7 0/7] PCI: qcom: Fix higher MSI vectors handling Dmitry Baryshkov
2022-05-05 13:54 ` [PATCH v7 1/7] PCI: qcom: Revert "PCI: qcom: Add support for handling MSIs from 8 endpoints" Dmitry Baryshkov
2022-05-05 20:12 ` Rob Herring
2022-05-05 13:54 ` [PATCH v7 2/7] PCI: dwc: Correct msi_irq condition in dw_pcie_free_msi() Dmitry Baryshkov
2022-05-05 20:11 ` Rob Herring
2022-05-05 13:54 ` [PATCH v7 3/7] PCI: dwc: Add msi_host_deinit callback Dmitry Baryshkov
2022-05-05 13:54 ` [PATCH v7 4/7] PCI: dwc: Export several functions useful for MSI implentations Dmitry Baryshkov
2022-05-05 13:54 ` [PATCH v7 5/7] PCI: qcom: Handle MSIs routed to multiple GIC interrupts Dmitry Baryshkov
2022-05-05 21:26 ` Rob Herring
2022-05-06 7:40 ` Dmitry Baryshkov [this message]
2022-05-09 21:00 ` Rob Herring
2022-05-05 13:54 ` [PATCH v7 6/7] dt-bindings: PCI: qcom: Support additional MSI interrupts Dmitry Baryshkov
2022-05-05 21:30 ` Rob Herring
2022-05-11 14:50 ` Dmitry Baryshkov
2022-05-05 13:54 ` [PATCH v7 7/7] arm64: dts: qcom: sm8250: provide " Dmitry Baryshkov
2022-05-05 15:37 ` [PATCH v7 0/7] PCI: qcom: Fix higher MSI vectors handling Stanimir Varbanov
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=b334a2e6-69ae-690d-8560-25f8a1319e5c@linaro.org \
--to=dmitry.baryshkov@linaro.org \
--cc=agross@kernel.org \
--cc=bhelgaas@google.com \
--cc=bjorn.andersson@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=gustavo.pimentel@synopsys.com \
--cc=jingoohan1@gmail.com \
--cc=krzk@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=manivannan.sadhasivam@linaro.org \
--cc=robh@kernel.org \
--cc=svarbanov@mm-sol.com \
--cc=vkoul@kernel.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;
as well as URLs for NNTP newsgroup(s).