From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751468AbcFNGXX (ORCPT ); Tue, 14 Jun 2016 02:23:23 -0400 Received: from mail-bl2on0100.outbound.protection.outlook.com ([65.55.169.100]:46928 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751016AbcFNGXS (ORCPT ); Tue, 14 Jun 2016 02:23:18 -0400 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=none action=none header.from=nxp.com;nxp.com; dkim=none (message not signed) header.d=none; From: Po Liu To: , , , CC: Bjorn Helgaas , Shawn Guo , "Marc Zyngier" , Rob Herring , Roy Zang , Mingkai Hu , Stuart Yoder , Yang-Leo Li , Arnd Bergmann , Minghuan Lian , Murali Karicheri , Po Liu Subject: [PATCH v2 2/2] pci/aer: interrupt fixup in the quirk Date: Tue, 14 Jun 2016 14:12:27 +0800 Message-ID: <1465884747-1517-2-git-send-email-po.liu@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 In-Reply-To: <1465884747-1517-1-git-send-email-po.liu@nxp.com> References: <1464242406-20203-1-git-send-email-po.liu@nxp.com> <1465884747-1517-1-git-send-email-po.liu@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131103589948745900;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Forefront-Antispam-Report: CIP:192.88.168.50;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(8676002)(47776003)(50226002)(586003)(81166006)(81156014)(11100500001)(5003940100001)(2201001)(76176999)(2950100001)(19580395003)(19580405001)(48376002)(8936002)(77096005)(105606002)(50466002)(4326007)(2906002)(104016004)(6806005)(33646002)(92566002)(85426001)(189998001)(356003)(50986999)(86362001)(36756003)(8666004)(5008740100001)(106466001)(87936001)(5001770100001)(229853001)(68736007)(97736004)(7059030)(2101003);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR03MB2380;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:1;CAT:NONE;LANG:en;CAT:NONE; X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD048;1:oJFvfq7MNRh4oA4m6rHe/YUscdvF7fYiMOx9s56SbG9+CG9Cs0Qttnv0Mi94yYv9nYW6qO+T15xQC9VwQQSC88Aqj0nHSGZO5+TF9w5w7XuoXbThqf/tKwgo5Hc+Cx/lnc1g/kWm5Kl6EAA15AQFYaJIQrgJrFCH/aN2+mojIROROCln174Flwvkp3TusiX0BgPbPzdmAVm0LL+vYOTsEr1vMgvwxKpY6sUkcuHDQi68wU3sjJOkMCU1XBu4jmtDULrQil63i+45yfnHA1pvmYS47sbZwH3FAmjBm1p3fBo7zJXuRwXesMONKp8yLaubeKJpBGoxQ5zwLOvE4rOdyenvlt31iEAdArkVCVXIYofvTCIEbK8wywIlXjJ39pyo+RkO6UxP9NrO4Ex15FUdAAjGWOY+ODkRFgGObPIu3eVwwKDFM7PVR5PKeUuAGx6Sr4XmwzUSyL0vn5NyQZXw+HcHBLX0amb7sm4fPmGUh0mRTVtNvTyaZaLkcAeiK59g9Tlc1F4l+KZuoiWxFMmV7ge3BQtUJWGjmhm0Nh3TtrnEVGm8q5bFHa5NaV2tt93o8c/eEdnDS5hcHQBzLIPbo/9HEmOodnB+9mnUWCqboOseTZP8Pe12r6X0FDQgTPlIaGKNGB4TepJ3J906q1JavfzhYyhr7kTp8IxHF9wY0wK24zF4uVNKQynBjVwm2/ksWVAaZGB3WPkuc5TB7uBO2MG9k/NWk+ttywVvHQXCFXo= MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 3c9d366b-a33d-492d-074e-08d3941c5e21 X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB2380;2:rXzwoKYVRn++666b/C7vYS4Jf3N5nnavB7vhTswFSGGYXplIpwGPmFB4eFaudGax5RJ0JhoMNVeP6+hrx7wsn6DC07QjcZnggMkj0rwsh/kf27OST2oz5qCikwhC+tWGnsC7WViKtr2Fte8/a6tuM0yhsRnw8SP1RYEkWN+LmGuUDWhzX5MzCw61BwZ0j5r3;3:3IxCSoxs+4mDqFey937NuDq1PKQ9JuWLNywHp+vCtK8hRiIXVZas8SvRsxJg9/TVfWUR1eSCLmzG0bp3SnHZUTF0VFjdlRdyIvxtJNAbVCUXB2ZBMk3iWdwnmceMVPibjVwFp46TgSWHO38AzF5vSOaQesEyzUmepqSs25bubHMVKTEjX13lgPy2dzwdfC6naDlzAsB+FSX93Mf29xU2T3CydZz1t9LytwruDpRWFB4=;25:EBk18RtTM/fPs7MKCPTs0stWofyGuyphHId3h4mDFpth0/9kb3mZo1eUBFE3F3YKINLRk0vavBUMXy8cLHDUlZX83hSKjZROvqUsfhwQD4cIYFgpd/by5Q8BwjhksETj0O7wn6Rs2dqkRUMbCGYfTK5+3pGm/pW7GArR2IPBtpfwiDqibPXn/soFVqJcNrrGS5VM0oxgSAhMA+m2EtcrJ+25Qne3lKCYWjN04mAyRM9jy673sl8xWUYjQC/GUTrZik96OWQPzh8s5vOJ0lShquvNjacdhXBGXy0JmFvqcNziKjIPLQMpM5Lfetj5QdJfriz11TLV6hDjimsNcO5/2fTBT92IQpTGqobuxZ9SAK/xH2zmELPWrG0VtHFb6aapWta+Y8TBechB+wIeJJ+ytDfFmuzj8ksAJaNTYyVMNDI= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB2380; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(13018025)(13015025)(8121501046)(13017025)(13023025)(13024025)(10201501046)(3002001)(6055026);SRVR:CY1PR03MB2380;BCL:0;PCL:0;RULEID:(400006);SRVR:CY1PR03MB2380; X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB2380;4:koRq+wPafipzv8+qSkmnGYHrW92kGKYcE5B5jyB/K8tpBbZwpd4BE4hgh2fsiQOQyh7neNo4rMg5l5KygLiiec/t+Xhpym6LEqKDtZR/MIRsZYIc9e02AOYhwTZMYm0WCTdhxKDAL5JgPBT/ZO3YFSzFR4Jbli0v1uZhrBOLI43vFJ2GIMdUBHQxZ5MQVO9DcVOcpqJUdasJDUS3vu6DTYKd5vBvghYXhrgnfPOb1A91bWfblYqkOy4yVAvRc4VS+6lkUJZWEvRJQmTQye/4UfLoV6LXLe8HX0zrg0n1UBO/xDiKfYN016+zmo6Zh9fGghxMh9bWaPpOKaMBi1wokTZWzfYgTls37vnZMzr2ZAZgHMi3MkcGtoFrTUd1nMAIxqQ/nJ3vm8EE0YoWOrjyjWLvKpYdsjgC9/oH/L5HkJSbAO1Z4LG2Yum2RvvbVQUyd+vUybVZXaFm8XQpjvTIUXnXm5nG8ZfJypgpzyYNOLuPEL1HbPZy8fLt4wFTI8atQz2ewwVLRZqtmz5G938zuQ== X-Forefront-PRVS: 09730BD177 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR03MB2380;23:NA3ejarudJVhvujPpQHEEJrsJ4tY03ra++ytcT5i4?= =?us-ascii?Q?YUfxsLscmA3f7T/Z34dM7SNtrmTYdk2EsB4+qd+ohyfu3h/IAXmnBCYJMZbf?= =?us-ascii?Q?CJBb5PpbG5hEKefHOQzLsUN68Zfj96G5Rm58DLBworZ3r3AuWSdXrdAPiREn?= =?us-ascii?Q?XqdQ0QSOO6fMXxB/4N0yJ2TphBWD1Bcmqef7JygY+yL1peylh5ckxVsj19lG?= =?us-ascii?Q?TDMzeoTQzkP0FG9gPLg3vGfaSq6KZBMkm3bzRkBg83egtkFcikq8hxHH7iPt?= =?us-ascii?Q?WNN1iicmpJVvBPG3Zn45nA+lTCDuPlEEpph5xD6Z0ACEPKtRYa2G04lYph3I?= =?us-ascii?Q?8LLUVZLXkJ1zGPskzfl1BGPIRyYQTJ1dS4N1Kv6GaWrRy2oX5RzZx3zhzl/t?= =?us-ascii?Q?Z5rV//OkF4wRd4je5h8DwYDrMSYz63Ch3d7F/GUquO8sor9N1OcO8LKhqg+r?= =?us-ascii?Q?XxfKBqClUQ0lVE8R+peF/toi1TbRPsgG3+BJCi32xM6bq8wiXnEMhxD7GIn/?= =?us-ascii?Q?Ti/b/nT0TeYJrzVBYoOjR+52DWYAwWASWUJr9z9pA2wVuoNhO2iF+s48mxFm?= =?us-ascii?Q?LAp6T4gAFU1+0gsXdoFgljoLuoJT8roJQsXgq31cvmJPFC6V244eb+uzoZyw?= =?us-ascii?Q?py10q2LoxLFtXNp/JkaKfliKJWgY9mg/u+wFvuzWOsggBHgnk/y8IMBGAo/L?= =?us-ascii?Q?bxGlccARLUugsnN6NqgXh5To//wWMkwQjhMVgAu5TNNfMyOW7j0iXTUqQ5Ao?= =?us-ascii?Q?QNiIHBHRfKcGsJZPAiu+WZPmuwoMdBRBtXeUA6+oCYSUtUtBF42AQIzUrgBU?= =?us-ascii?Q?PutOGIxI0bdTbWfORpfUTMffler3MbkoXAGWHHetBlCim7I9JJIWUT7Xhruu?= =?us-ascii?Q?+LS+nq7hXHbAUy5dG/XJYg0SZiHO0ufSw5E7y5louR9J25JCxCLlhayC0iVO?= =?us-ascii?Q?yGqFiYqoCY3wu5s7lsVEw0YE3/VwEpXyng/fqlPaLiL5ccwqiKZIuQsuOC8s?= =?us-ascii?Q?/VENTce1yre0UAmVS8zolQz+SKCLb0QvaQPlTbfMboWp+gmA/ZLbYgAafFQ0?= =?us-ascii?Q?6oXT7jTNKAm4g9Ec8tXhKAPL7Ne6xFqCYMU6OokRgyMQ16YTNmihtInjrUHg?= =?us-ascii?Q?3lb7TrGp3YHe5umNUZJKyztIdzsopTlpke4j/eaCABx41OYv4Tg9Q4Vueybu?= =?us-ascii?Q?i77OLuLfvtWmuZGHVmul3ByekvcSdO1H/+6?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB2380;6:XpKBh59OkKpaC+80j30Zmxu6WOdfdF5SQbMr33UVsh91fCb1diQ3XzVOhHqIOagD7KVhsG1M552eo8BT5+/oCO7cyrxLKAECM5smjzBVY8OmCaT2lyQFVQKJ85m2YvKPKtOgYkmqSCUSDmyBqZYk1ZVkAQ5yzup15NOhgEtIzJQB8cgo1JlNNtgv3fs4kDSzkaHqP0qP9Pt7nk41IhpV0jk0tdcSljvaE8iafEu/w8Y79yVzoyE9GxAXDXXhpNKAuPvMAEVZx/1x7cWj/qF4yA==;5:IIrxMxuAkX07e3NWhg/OUX5PcW7yzdhtoxwpkYRAg8r1yMCTLTlu0G3Qke6OfYJIfSDqHipHKDBDiKusOkvMZt9fzyaDU1Y9nQYeGH9+wXTqjK7ighbyjsldgHSEzWvcVE4Chrf1q2HHV2z45iUTUvv6Y6Hsvx0wZk+2g5WCtp8=;24:9vMRFoXkaZRE5prEUgkPGbojQ2O/OuRNU5Cgd7F/7E5o+pRKbCsL0cDGc38ZL2jS6pAIfi1aPgFtX3Ul3UN3tSpVDR8naJ0Oh6p+vwMGICw=;7:q8Qi8sxP/TMfDyG+e6LsocGiUsTmGJzI1hAoh7voVElIRYFOhKQ9Bk/iQE3NFi57c7Br73nMJRxZ++ldCIM9Dlq46AE+8cVD/aWxQkuRvt838TXWyq45P6crr67LOliXx3SLSpEUvul0LtRZsnSeegUzAXjmjknxAH+VudhH2DLSFE+LL3MQU6X6z/apEgB9hM0LpoR67EG1b51XLiNHNA== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2016 06:23:14.5157 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB2380 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On some platforms, root port doesn't support MSI/MSI-X/INTx in RC mode. When chip support the aer interrupt with none MSI/MSI-X/INTx mode, maybe there is interrupt line for aer pme etc. Search the interrupt number in the fdt file. Then fixup the dev->irq with it. Signed-off-by: Po Liu --- changes for V2: - Move to the quirk file drivers/pci/quirks.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index ee72ebe..909d479 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -25,6 +25,7 @@ #include #include #include +#include #include /* isa_dma_bridge_buggy */ #include "pci.h" @@ -4419,3 +4420,25 @@ static void quirk_intel_qat_vf_cap(struct pci_dev *pdev) } } DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x443, quirk_intel_qat_vf_cap); + +/* If root port doesn't support MSI/MSI-X/INTx in RC mode, + * but use standalone irq. Read the device tree for the aer + * interrupt number. + */ +static void quirk_aer_interrupt(struct pci_dev *dev) +{ + int ret; + struct device_node *np = NULL; + + if (dev->bus->dev.of_node) + np = dev->bus->dev.of_node; + + if (IS_ENABLED(CONFIG_OF_IRQ) && np) { + ret = of_irq_get_byname(np, "aer"); + if (ret > 0) { + dev->no_msi = 1; + dev->irq = ret; + } + } +} +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID, quirk_aer_interrupt); -- 2.1.0.27.g96db324