From da0e7ccfa4f5b2b6289f6f071019d3696af925cb Mon Sep 17 00:00:00 2001 From: Tony Truong Date: Tue, 21 Jan 2020 16:54:35 -0800 Subject: [PATCH] msm: pcie: update PCIe RC and MSI driver to compile as GKI modules Add required changes so that PCIe root complex and MSI driver will compile as GKI modules. Change-Id: Ic34098be2af217dc4ff004817625be90c5dbfd3f Signed-off-by: Tony Truong --- drivers/pci/controller/pci-msm-msi.c | 7 +++++-- drivers/pci/controller/pci-msm.c | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/pci/controller/pci-msm-msi.c b/drivers/pci/controller/pci-msm-msi.c index b1ddcdbbe065..05fb6966ab49 100644 --- a/drivers/pci/controller/pci-msm-msi.c +++ b/drivers/pci/controller/pci-msm-msi.c @@ -1,5 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-only -/* Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.*/ +/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.*/ #include #include @@ -321,6 +321,7 @@ int msm_msi_init(struct device *dev) struct msm_msi *msi; struct device_node *of_node; const __be32 *prop_val; + struct of_phandle_args irq; if (!dev->of_node) { dev_err(dev, "MSI: missing DT node\n"); @@ -369,7 +370,9 @@ int msm_msi_init(struct device *dev) goto err; } - msi->nr_irqs = of_irq_count(msi->of_node); + while (of_irq_parse_one(msi->of_node, msi->nr_irqs, &irq) == 0) + msi->nr_irqs++; + if (!msi->nr_irqs) { dev_err(msi->dev, "MSI: found no MSI interrupts\n"); ret = -ENODEV; diff --git a/drivers/pci/controller/pci-msm.c b/drivers/pci/controller/pci-msm.c index 069e26d50165..86a1f6f63c97 100644 --- a/drivers/pci/controller/pci-msm.c +++ b/drivers/pci/controller/pci-msm.c @@ -7278,3 +7278,6 @@ int msm_pcie_shadow_control(struct pci_dev *dev, bool enable) return ret; } EXPORT_SYMBOL(msm_pcie_shadow_control); + +MODULE_DESCRIPTION("Qualcomm Technologies, Inc. PCIe RC driver"); +MODULE_LICENSE("GPL v2");