From: l.stach@pengutronix.de (Lucas Stach)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 2/9] PCI: host: rcar: Add MSI support
Date: Fri, 21 Mar 2014 12:17:18 +0100 [thread overview]
Message-ID: <1395400638.4554.5.camel@weser.hi.pengutronix.de> (raw)
In-Reply-To: <1395397968-6242-3-git-send-email-phil.edworthy@renesas.com>
Am Freitag, den 21.03.2014, 10:32 +0000 schrieb Phil Edworthy:
> Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
> ---
> drivers/pci/host/pcie-rcar.c | 232 ++++++++++++++++++++++++++++++++++++++++++-
> drivers/pci/host/pcie-rcar.h | 5 +
> 2 files changed, 236 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pci/host/pcie-rcar.c b/drivers/pci/host/pcie-rcar.c
> index 16670e5..cbbcd77 100644
> --- a/drivers/pci/host/pcie-rcar.c
> +++ b/drivers/pci/host/pcie-rcar.c
[...]
> +
> +static irqreturn_t rcar_pcie_msi_irq(int irq, void *data)
> +{
> + struct rcar_pcie *pcie = data;
> + struct rcar_msi *msi = &pcie->msi;
> + unsigned long reg;
> +
> + reg = pci_read_reg(pcie, PCIEMSIFR);
> +
> + while (reg) {
> + unsigned int index = find_first_bit(®, 32);
> + unsigned int irq;
> +
> + /* clear the interrupt */
> + pci_write_reg(pcie, 1 << index, PCIEMSIFR);
> +
> + irq = irq_find_mapping(msi->domain, index);
> + if (irq) {
> + if (test_bit(index, msi->used))
> + generic_handle_irq(irq);
> + else
> + dev_info(pcie->dev, "unhandled MSI\n");
> + } else {
> + /*
> + * that's weird who triggered this?
> + * just clear it
> + */
> + dev_info(pcie->dev, "unexpected MSI\n");
> + }
> +
> + /* see if there's any more pending in this vector */
> + reg = pci_read_reg(pcie, PCIEMSIFR);
> + }
> +
> + return IRQ_HANDLED;
> +}
> +
>From your DT binding it seems you have only one interrupt from the PCIe
core, shared between the MSI irqs and the PCI legacy interrupts.
This means this handler may get called without an MSI irq pending, so
this function really should have a path where it's returning IRQ_NONE.
Regards,
Lucas
--
Pengutronix e.K. | Lucas Stach |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-5076 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
next prev parent reply other threads:[~2014-03-21 11:17 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-21 10:32 [PATCH v4 0/9] R-Car Gen2 PCIe host driver Phil Edworthy
2014-03-21 10:32 ` [PATCH v4 1/9] PCI: host: rcar: Add Renesas R-Car PCIe driver Phil Edworthy
2014-03-21 11:04 ` Arnd Bergmann
2014-03-21 13:59 ` Phil.Edworthy at renesas.com
2014-03-21 14:06 ` Ben Dooks
2014-03-21 15:07 ` Arnd Bergmann
2014-03-23 10:05 ` Geert Uytterhoeven
2014-03-21 10:32 ` [PATCH v4 2/9] PCI: host: rcar: Add MSI support Phil Edworthy
2014-03-21 11:17 ` Lucas Stach [this message]
2014-03-21 14:15 ` Phil.Edworthy at renesas.com
2014-03-21 14:26 ` Lucas Stach
2014-03-21 14:34 ` Phil.Edworthy at renesas.com
2014-03-21 10:32 ` [PATCH v4 3/9] ARM: shmobile: r8a7790: Add PCIe clock device tree nodes Phil Edworthy
2014-03-21 10:32 ` [PATCH v4 4/9] ARM: shmobile: r8a7791: " Phil Edworthy
2014-03-21 10:32 ` [PATCH v4 5/9] dt-bindings: pci: rcar pcie device tree bindings Phil Edworthy
2014-03-21 11:23 ` Lucas Stach
2014-03-21 14:18 ` Phil.Edworthy at renesas.com
2014-03-21 14:30 ` Lucas Stach
2014-03-21 15:02 ` Phil.Edworthy at renesas.com
[not found] ` <OFC7DD5DAC.D378B300-ON80257CA2.0051ECEE-80257CA2.00529F98@LocalDomain>
2014-03-24 12:04 ` Phil.Edworthy at renesas.com
2014-03-24 12:15 ` Ben Dooks
2014-03-24 12:25 ` Phil.Edworthy at renesas.com
[not found] ` <OF85DD7B1D.716DE42D-ON80257CA5.00443087-80257CA5.004447DB@LocalDomain>
2014-03-24 12:46 ` Phil.Edworthy at renesas.com
2014-03-24 12:53 ` Lucas Stach
2014-03-21 10:32 ` [PATCH v4 6/9] ARM: shmobile: Add PCIe device tree nodes for R8A7790 Phil Edworthy
2014-03-21 15:29 ` Sergei Shtylyov
2014-03-21 14:53 ` Phil.Edworthy at renesas.com
2014-03-21 14:57 ` Arnd Bergmann
2014-03-21 16:40 ` Jason Gunthorpe
2014-03-21 16:42 ` Sergei Shtylyov
2014-03-21 16:31 ` Phil.Edworthy at renesas.com
2014-03-21 16:49 ` Jason Gunthorpe
2014-03-23 10:13 ` Geert Uytterhoeven
2014-03-21 15:32 ` Sergei Shtylyov
2014-03-21 15:06 ` Phil.Edworthy at renesas.com
2014-03-21 10:32 ` [PATCH v4 7/9] ARM: shmobile: Add PCIe device tree nodes for R8A7791 Koelsch board Phil Edworthy
2014-03-21 10:32 ` [PATCH v4 8/9] ARM: koelsch: Add PCIe to defconfig Phil Edworthy
2014-03-21 10:32 ` [PATCH v4 9/9] ARM: koelsch: Add HAVE_ARM_ARCH_TIMER " Phil Edworthy
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=1395400638.4554.5.camel@weser.hi.pengutronix.de \
--to=l.stach@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.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).