{"id":806604,"url":"http://patchwork.ozlabs.org/api/1.0/patches/806604/?format=json","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/1.0/projects/28/?format=json","name":"Linux PCI development","link_name":"linux-pci","list_id":"linux-pci.vger.kernel.org","list_email":"linux-pci@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<20170828142307.30061-3-l.stach@pengutronix.de>","date":"2017-08-28T14:23:06","name":"[2/3] PCI: imx6: allow MSI irq to be absent","commit_ref":null,"pull_url":null,"state":"changes-requested","archived":false,"hash":"8e1669ef3e3f0544b3d7eb0091c144c3d27f2be5","submitter":{"id":23583,"url":"http://patchwork.ozlabs.org/api/1.0/people/23583/?format=json","name":"Lucas Stach","email":"l.stach@pengutronix.de"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/20170828142307.30061-3-l.stach@pengutronix.de/mbox/","series":[{"id":182,"url":"http://patchwork.ozlabs.org/api/1.0/series/182/?format=json","date":"2017-08-28T14:23:05","name":"DWC host without MSI controller","version":1,"mbox":"http://patchwork.ozlabs.org/series/182/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/806604/checks/","tags":{},"headers":{"Return-Path":"<linux-pci-owner@vger.kernel.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=linux-pci-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xgvBb6tlHz9s7m\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 29 Aug 2017 00:23:19 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751858AbdH1OXO (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tMon, 28 Aug 2017 10:23:14 -0400","from metis.ext.4.pengutronix.de ([92.198.50.35]:51771 \"EHLO\n\tmetis.ext.4.pengutronix.de\" rhost-flags-OK-OK-OK-OK)\n\tby vger.kernel.org with ESMTP id S1751859AbdH1OXN (ORCPT\n\t<rfc822; linux-pci@vger.kernel.org>); Mon, 28 Aug 2017 10:23:13 -0400","from dude.hi.pengutronix.de ([2001:67c:670:100:1d::7]\n\thelo=dude.pengutronix.de.)\n\tby metis.ext.pengutronix.de with esmtp (Exim 4.84_2)\n\t(envelope-from <l.stach@pengutronix.de>)\n\tid 1dmKwX-0005gz-Bs; Mon, 28 Aug 2017 16:23:09 +0200"],"From":"Lucas Stach <l.stach@pengutronix.de>","To":"Bjorn Helgaas <bhelgaas@google.com>, Tim Harvey <tharvey@gateworks.com>,\n\tJingoo Han <jingoohan1@gmail.com>, Joao Pinto <Joao.Pinto@synopsys.com>,\n\tShawn Guo <shawnguo@kernel.org>","Cc":"linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,\n\tpatchwork-lst@pengutronix.de, kernel@pengutronix.de","Subject":"[PATCH 2/3] PCI: imx6: allow MSI irq to be absent","Date":"Mon, 28 Aug 2017 16:23:06 +0200","Message-Id":"<20170828142307.30061-3-l.stach@pengutronix.de>","X-Mailer":"git-send-email 2.11.0","In-Reply-To":"<20170828142307.30061-1-l.stach@pengutronix.de>","References":"<20170828142307.30061-1-l.stach@pengutronix.de>","X-SA-Exim-Connect-IP":"2001:67c:670:100:1d::7","X-SA-Exim-Mail-From":"l.stach@pengutronix.de","X-SA-Exim-Scanned":"No (on metis.ext.pengutronix.de);\n\tSAEximRunCond expanded to false","X-PTX-Original-Recipient":"linux-pci@vger.kernel.org","Sender":"linux-pci-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<linux-pci.vger.kernel.org>","X-Mailing-List":"linux-pci@vger.kernel.org"},"content":"The host can fall back to PCIe legacy IRQ only operation if the MSI irq is\nmissing, thus allowing systems to work with peripherals that don't support\nMSI irqs.\n\nSigned-off-by: Lucas Stach <l.stach@pengutronix.de>\n---\n .../devicetree/bindings/pci/fsl,imx6q-pcie.txt     |  8 ++++----\n drivers/pci/dwc/pci-imx6.c                         | 23 +++++++++++-----------\n 2 files changed, 15 insertions(+), 16 deletions(-)","diff":"diff --git a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt\nindex cf92d3ba5a26..d85db21503f4 100644\n--- a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt\n+++ b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt\n@@ -10,14 +10,14 @@ Required properties:\n \t- \"fsl,imx6qp-pcie\"\n \t- \"fsl,imx7d-pcie\"\n - reg: base address and length of the PCIe controller\n-- interrupts: A list of interrupt outputs of the controller. Must contain an\n-  entry for each entry in the interrupt-names property.\n-- interrupt-names: Must include the following entries:\n-\t- \"msi\": The interrupt that is asserted when an MSI is received\n - clock-names: Must include the following additional entries:\n \t- \"pcie_phy\"\n \n Optional properties:\n+- interrupts: A list of interrupt outputs of the controller. Must contain an\n+  entry for each entry in the interrupt-names property.\n+- interrupt-names: Must include the following entries:\n+        - \"msi\": The interrupt that is asserted when an MSI is received\n - fsl,tx-deemph-gen1: Gen1 De-emphasis value. Default: 0\n - fsl,tx-deemph-gen2-3p5db: Gen2 (3.5db) De-emphasis value. Default: 0\n - fsl,tx-deemph-gen2-6db: Gen2 (6db) De-emphasis value. Default: 20\ndiff --git a/drivers/pci/dwc/pci-imx6.c b/drivers/pci/dwc/pci-imx6.c\nindex bf5c3616e344..d2507272b3ab 100644\n--- a/drivers/pci/dwc/pci-imx6.c\n+++ b/drivers/pci/dwc/pci-imx6.c\n@@ -671,18 +671,17 @@ static int imx6_add_pcie_port(struct imx6_pcie *imx6_pcie,\n \n \tif (IS_ENABLED(CONFIG_PCI_MSI)) {\n \t\tpp->msi_irq = platform_get_irq_byname(pdev, \"msi\");\n-\t\tif (pp->msi_irq <= 0) {\n-\t\t\tdev_err(dev, \"failed to get MSI irq\\n\");\n-\t\t\treturn -ENODEV;\n-\t\t}\n-\n-\t\tret = devm_request_irq(dev, pp->msi_irq,\n-\t\t\t\t       imx6_pcie_msi_handler,\n-\t\t\t\t       IRQF_SHARED | IRQF_NO_THREAD,\n-\t\t\t\t       \"mx6-pcie-msi\", imx6_pcie);\n-\t\tif (ret) {\n-\t\t\tdev_err(dev, \"failed to request MSI irq\\n\");\n-\t\t\treturn ret;\n+\t\tif (pp->msi_irq > 0) {\n+\t\t\tret = devm_request_irq(dev, pp->msi_irq,\n+\t\t\t\t\t       imx6_pcie_msi_handler,\n+\t\t\t\t\t       IRQF_SHARED | IRQF_NO_THREAD,\n+\t\t\t\t\t       \"mx6-pcie-msi\", imx6_pcie);\n+\t\t\tif (ret) {\n+\t\t\t\tdev_err(dev, \"failed to request MSI irq\\n\");\n+\t\t\t\treturn ret;\n+\t\t\t}\n+\t\t} else {\n+\t\t\tdev_info(dev, \"missing MSI irq, MSI support unavailable\\n\");\n \t\t}\n \t}\n \n","prefixes":["2/3"]}