[PATCH 1/6] pci, thunder: Add support for Thunder PCIe host controller
From: Will Deacon <hidden>
Date: 2014-09-24 16:50:21
Also in:
linux-devicetree, linux-pci, lkml
On Wed, Sep 24, 2014 at 05:12:26PM +0100, Arnd Bergmann wrote:
On Wednesday 24 September 2014 17:37:43 Robert Richter wrote:quoted
From: Sunil Goutham <redacted> This patch adds support for PCI host controller of Cavium Thunder SoCs.I had expected this hardware to be SBSA compliant. Why do you need a hardware specific driver, is this a workaround for buggy hardware or just noncompliant?
Patches welcome to pci-host-generic.c :) Lorenzo already has code to port it to Liviu's new API, so do shout if it's not suitable for your needs.
quoted
+static int thunder_pcie_msi_enable(struct thunder_pcie *pcie, + struct pci_bus *bus) +{ + struct device_node *msi_node; + + msi_node = of_parse_phandle(pcie->node, "msi-parent", 0); + if (!msi_node) + return -ENODEV; + + pcie->msi = of_pci_find_msi_chip_by_node(msi_node); + if (!pcie->msi) + return -ENODEV; + + pcie->msi->dev = pcie->dev; + bus->msi = pcie->msi; + + return 0; +}This is probably something we should add to the generic host driver as well, so it can work with SBSA compliant implementations that come with an MSI controller. Maybe move it into common code so it can be shared with that driver.
Agreed. I've been carrying something similar [1] (based on a hacked-up version of bios32, so not bothered to post it) whilst I've been waiting for the arm64 core PCI code to get merged. Will [1] https://git.kernel.org/cgit/linux/kernel/git/will/linux.git/commit/drivers/pci/host/pci-host-generic.c?h=iommu/pci&id=b719acf062ceccfbd79ee7b1ae0b7904ea4da27e