From: marex@denx.de (Marek Vasut)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/3] PCI: designware: add legacy PCI interrupt mapping
Date: Fri, 28 Feb 2014 11:12:21 +0100 [thread overview]
Message-ID: <201402281112.21998.marex@denx.de> (raw)
In-Reply-To: <000101cf3452$f203ed60$d60bc820$%han@samsung.com>
On Friday, February 28, 2014 at 08:01:46 AM, Jingoo Han wrote:
> On Friday, February 28, 2014 1:25 PM, Tim Harvey wrote:
> > On Thu, Feb 27, 2014 at 6:00 PM, Jingoo Han <jg1.han@samsung.com> wrote:
> > > On Friday, February 28, 2014 10:20 AM, Tim Harvey wrote:
> > >> The IMX6 maps INTA/B/C/D to ARM GIC IRQ 155/154/153/152 respectively.
> > >> This allows a PCIe-to-PCI bridge to function properly.
> > >>
> > >> The irq field of the pcie_host struct is expanded to 4 interrupts to
> > >> allow for INTA/B/C/D and the IMX6 PCIe host driver will populate them
> > >> all from devicetree. I'm not clear if the Exynos driver has this
> > >> capability so it places the same interrupt in all 4 slots.
> > >
> > > (+cc Marek Vasut, Pratyush Anand, Kishon Vijay Abraham I, Mohit KUMAR
> > > DCG)
> > >
> > > In the case of Exynos,
> > > 'INTA/B/C/D' are mapped to only one interrupt (<0 20 0>).
> > > Thus, the current code works properly on Exynos platform.
> > >
> > > There are three interrupts for Exynos PCIe; INTx, MSI, PHY Link,
> > > respectively as below.
> > >
> > > ./arch/arm/boot/dts/exynos5440.dtsi
> > >
> > > interrupts = <0 20 0>, <0 21 0>, <0 22 0>;
> > >
> > > <0 20 0>: PCIe RC0 pulse interrupt,
> > >
> > > INTA, INTB, INTC and INTD, etc
> > >
> > > <0 21 0>: PCIe RC0 level interrupt,
> > >
> > > MSI, etc
> > >
> > > <0 22 0>: PCIe RC0 special interrupt,
> > >
> > > PHY Link related interrupts, etc
> > >
> > > Of course, legacy INTx is handled as message only.
> > >
> > > Mohit, Kishon,
> > > How about the other SoCs? INTx is mapped to single interrupt
> > > such as Exynos, or separate interrupts such as i.MX6?
> >
> > Jingoo,
> >
> > Ok - so at least the I.MX6 and Exynos, which both use the designware
> > IP need different IRQ mappings. It seems to me then that the map_irq
> > should be moved out of drivers/pci/host/pcie-designware.c and into the
> > SoC specific host controller drivers (pci-imx.c and pci-exynos.c). If
> > that becomes the consensus I can submit a patch that does that.
>
> (+CC Arnd Bergmann)
>
> If you want to split dw_pcie_map_irq(), the following would be better.
>
> ./drivers/pci/host/pcie-designware.c
> static int dw_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
> {
> struct pcie_port *pp = sys_to_pcie(dev->bus->sysdata);
>
> if (pp->ops->writel_rc)
> return pp->ops->map_irq(pp, pin);
> else
> return pp->irq;
> }
>
> ./drivers/pci/host/pci-imx6.c
> static int imx6_pcie_map_irq(struct pcie_port *pp, u8 pin)
> {
> .....
> }
>
> Also, please add additional 'irq[4]' variable to 'struct imx6_pcie',
> instead of 'struct pcie_port'. Other SoCs does not use four separate
> INTx, as far as I know.
I agree with this.
next prev parent reply other threads:[~2014-02-28 10:12 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-28 1:19 [RFC PATCH 0/3] PCI: imx6: fixup for add-in card IRQ mismapping Tim Harvey
2014-02-28 1:19 ` [PATCH 1/3] PCI: designware: add legacy PCI interrupt mapping Tim Harvey
2014-02-28 2:00 ` Jingoo Han
2014-02-28 4:24 ` Tim Harvey
2014-02-28 7:01 ` Jingoo Han
2014-02-28 10:12 ` Marek Vasut [this message]
2014-02-28 11:27 ` Lucas Stach
2014-02-28 11:37 ` Arnd Bergmann
2014-02-28 12:09 ` Lucas Stach
2014-02-28 12:27 ` Arnd Bergmann
2014-02-28 13:53 ` Lucas Stach
2014-02-28 2:10 ` Shawn Guo
2014-02-28 1:19 ` [PATCH 2/3] PCI: designware: add ability for custom swizzle Tim Harvey
2014-02-28 1:19 ` [PATCH 3/3] PCI: imx6: ventana: fixup for IRQ mismapping Tim Harvey
2014-02-28 2:10 ` Jingoo Han
2014-02-28 9:27 ` Arnd Bergmann
2014-02-28 17:39 ` Jason Gunthorpe
2014-03-01 0:52 ` Tim Harvey
2014-03-01 1:22 ` Jason Gunthorpe
2014-03-03 19:59 ` Tim Harvey
2014-03-03 23:37 ` Jason Gunthorpe
2014-03-04 0:38 ` Tim Harvey
2014-03-04 1:01 ` Jason Gunthorpe
2014-02-28 1:50 ` [RFC PATCH 0/3] PCI: imx6: fixup for add-in card " Jingoo Han
2014-02-28 4:16 ` Tim Harvey
2014-02-28 6:22 ` Jingoo Han
2014-02-28 10:15 ` Marek Vasut
2014-02-28 16:52 ` Tim Harvey
2014-02-28 16:55 ` Lucas Stach
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=201402281112.21998.marex@denx.de \
--to=marex@denx.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).