linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).