From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751984AbcFNIty (ORCPT ); Tue, 14 Jun 2016 04:49:54 -0400 Received: from mail-bn1on0058.outbound.protection.outlook.com ([157.56.110.58]:40309 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751646AbcFNItr (ORCPT ); Tue, 14 Jun 2016 04:49:47 -0400 X-Greylist: delayed 906 seconds by postgrey-1.27 at vger.kernel.org; Tue, 14 Jun 2016 04:49:46 EDT 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 v3 2/2] pci/aer: interrupt fixup in the quirk Date: Tue, 14 Jun 2016 16:24:05 +0800 Message-ID: <1465892645-32381-2-git-send-email-po.liu@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 In-Reply-To: <1465892645-32381-1-git-send-email-po.liu@nxp.com> References: <1464242406-20203-1-git-send-email-po.liu@nxp.com> <1465892645-32381-1-git-send-email-po.liu@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131103668780050262;(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)(1109001)(1110001)(339900001)(189002)(199003)(68736007)(47776003)(5003940100001)(8936002)(50226002)(19580405001)(19580395003)(2906002)(586003)(33646002)(106466001)(48376002)(8666004)(92566002)(50466002)(86362001)(189998001)(87936001)(85426001)(356003)(2950100001)(77096005)(5008740100001)(36756003)(2201001)(81166006)(81156014)(8676002)(229853001)(5001770100001)(4326007)(6806005)(104016004)(105606002)(50986999)(76176999)(97736004)(7059030)(2101003);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR0301MB1624;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;BY2FFO11OLC013;1:uaLKMxK6wBpbiW+elRmZz8EjwdTm8dxeAq49Nm1a5dVHGlhQA88xPidTTPwz67ZZH8PbWHsQIcIep66bJKIln45TIJ3SlxBR/Fr8n5tXCM8UFyzge7Y8Qdv4GuJzY6I9nHpOfulJNI1gGCp6xm5wIYxdc5mzC95/UCA6jtY9FxHUm3/2emhz5kj3xgxoRcsnvbcCNcBbuEhqCNxigbRhBHMuy7W2OdkJDSCrAH9T9LMA4XPKkz66blO0ja1S/mLhmeDsh8SxaAowl0zwGQMXi584Xx1gTyM/rGUM/hLay4jNOs5e4X5YBByeCtV7ZtL+I67dkqrloz0G5cku5i2T4K1lijcnLY3kC+Wo7k63rUxM/dmSMiaGh8t9oRED6CNy0Dbgpi8cuVPDpTguoCFs7xVb40b6wR3ASe7i8mSIHaive4vl73yu9jVRNUlYCHTeesRtSp4ZIyp1LzfeWG7/APH1sOavfWgFfAYln2Z4blqMugD8m9DF0UtG6ybbqy22bPZuz8QsgSMXO5uyG3F/u09wlXEHC41RZsWgoz+aRjibxFkALd6/9OkMPzTQp2XGd/AzKfUN62hyDXBfhVmMultRYyOnVgNKznFURbh8871UTzKQycjDqBhhERK3AprWz2S1B7faRGKKJRho2zjj0rS+sgbW5yBhKa30TIkVXESFKtCRw5jscQHhp6Kw5P7wCbq7w22lvcWRkQfWWAtWxuJq/7fv3aHV2NEEVSD3QW4= MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: c2d8d72d-4067-43d1-a756-08d3942eb8d9 X-Microsoft-Exchange-Diagnostics: 1;BY2PR0301MB1624;2:Hs3krIIgOQjlFrPvXRiRhDS+m0KNiuqMTGiV33TZCr0AvfcCrFh4Ekyo+Wcu5cpiFtjtIXsKqNVYi61RDd6K9yZFexSh3PoO3w+IjT/OiSLYs9mEh3j/9v/hH2yLG7ScZdUKif0Dpr2IfjUU3y8cWwp7IPEdYVs9S8/iz99jfLd2M6DDApBmnpekmlJVzCds;3:cGEm9iyXOLRKo2VyOe0g47d/nF9zs0PfDGLWU4DWJNjET36ed4ORnF5XoHiD706O92xzvCoJs9aB8O+iQlJHdulcRi8uBtOuiRz+6sxU7u9oW4j9wgVhI/Gw4LuxcqJ32S+EC2l4SgQKPOX4DaTRlGGQDtvrQJeXcO/7y7lHy4OuswB+pL7WCyB8fnrjEHN+3a8XCxfCSyuXKd1YDLSwH4V3OA/BHCdZNR0vTHde23w= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0301MB1624; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0301MB1624;25:jbTup0sWl5XdNVnoNhiIpKfxLmv6dg7kIajelTLJynfhb2DcW3L4gKkDEhJIBn5Ia8saGOD6EcmNC54JN7QvUgmlF7ADiWHBSxOlFt5jSTYK5R71VoLDKaQx5FDYosgQaX5UWgCMJNLoLBReSQsFfsxKZaFwnhhfSlGCrDLLn5LBd/qoso5ihNMI5o/eucnmf3SYLAg2oqDaOPz+q/wBJimoYJjzQf72fAUEWRASYITYNyubOjDJU7LaKLEMwVV8/CH6QUEuwcuQ6kpoeYcDQWQovleOgTPYcak7ecI6IRuK+kOac5ECA0870xAc2Hdqu8pQm4Yxjzh0lgO68vCV/Wwi4HUAi4KWcA+AfMJSaS0ZUA/vitpiAmNzgwpTq0MXq5BT7xMdFUcErF6GS6oR2DbkSppeo0H2Y5bjLx169r+Nrt7iaJwSif7gJOxzwS3m7IwydwUcTtAr2RUZbHGz5MmoUlg+D+PkvC/GKePjuZQRm/bgW/MFhevRqLcAv7ameGiecd1mhnXlrLQiwWzlkCLaao2ESoayDBDRDLQb6MiFLIJvknkhgMzqrBiRDeG0mXXoGzUAj3BbNVr/u1Vm50xgfX3oR1r1Vzmb6mnx2ibPx8SKvXEAUALNH/cDa3gSjcK/c+TKl2EWy2Cjtv7YGJz3eDgCtKfC2epLktF9YpO/TMNt5HX3Zhq+sYWp5nuJxOR4NcLL9crnFNm9dlwoag9g4UAC2uqa6HRtklnG8+1KLCFJNDFvZwR5TEhND9dm X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(13018025)(13023025)(13017025)(13015025)(13024025)(5005006)(8121501046)(10201501046)(3002001)(6055026);SRVR:BY2PR0301MB1624;BCL:0;PCL:0;RULEID:(400006);SRVR:BY2PR0301MB1624; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0301MB1624;4:FjuGMl5WEM+be37g7EItyQWn4838I8JasVAdtM9a0LzoOpI6ml1hkTgXHeH0+lYEjuYNZslo1o059uEmvVwX1PkQHcrpbx9RsWPwdz1xxfYJvgrEan4SiB/kAd8bXjsEfnJmMTUgtCpyjKLlZIgS+eMG4AeChlBzbfYw3F/OXfhrgs1FPBTM0EJNX6wovQphADLf5JJM0m5bdLjzb+xzZ8115yW6Kmja2JmbtjQx2XWtiQDc0F+A9cdJDUx9F9XEOxV2JcGohgTDUStCq/qL4hTZ1839G1VToKXJldCuUhD5Dp6M6zjW7tkH5asOHSYjtIzpYMkCgi+b63CH0NAbgXDkm7pUXkJab2z++DGA3SldmeHpWy1xVj8q0T+j7J6en7RFkdEaIiIc7RSBpNMuUN0i++vG4Hh3zsrUfV8sTH+7pTzeRzCr/eOJ3uhPId2VEevnDHgo/JipFME5CX5eSDDij+VyLOqpCf6UfB8EnNA2S00M7ouuyCJUQ0Bdn7IrNwdmlYFsoFqkNvwqpkTofQ== X-Forefront-PRVS: 09730BD177 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR0301MB1624;23:kGwC0MkW3DU+nixH40qzL/MAh9rYemhfZY2nMx3?= =?us-ascii?Q?Bkb4qdYcFz2WRcWRhCdbZdoxh4MPBBLEYAXywwg+XDAWHmcJybXvz0wnaOKG?= =?us-ascii?Q?0s2svIcH/K4IZs31FhmVj0MOU2HDN4x0JAt9WIxUDlfY6/wHPZAejg0/+sw3?= =?us-ascii?Q?uKHgjt6DC5HpArOMVyem8lcpCYmygMGv8dbk6zWC4b9Wgz0XnrvsjOyH9g4P?= =?us-ascii?Q?/SI0RQj6L2G7lCUSPbJC08WIww56n4dpuwvdLMUjbp2fHnVhlEBYjrVAJEei?= =?us-ascii?Q?xwN2uluJQrJj9k4UgtHfKoSKvba8kGyM11pKXI+tv2bG464ldR4shX1WaJNO?= =?us-ascii?Q?SCAjXzEI5iYjteNheyKFFCBi6859Ni7jSM3K3YiQ/IwvEkthJLAS113R6IzK?= =?us-ascii?Q?xdDMfxs654Fw+x+6d5kqb2riu4iTnNROzRXnh9r0L6Wwt2uzk0jQp+1cnIAZ?= =?us-ascii?Q?LJ8kx/McwQQkerA6urPVK64BZi3XUKG0f1cAjlzWzNzJjZGdW7iF9igXd44E?= =?us-ascii?Q?OYNZKUmX5jtrDB+sIt7TKtT7rE5tWkJ1CvMim8rPSfdf0PuJc0nZD8IKeIpx?= =?us-ascii?Q?EM3+fFQ+Gmd2v5LM5QhUoOB9LsbzxoIZNFwdeUHrrjhBTeARyPZuHRhWRJve?= =?us-ascii?Q?O/IgYc/KS98iPmLsIKbxgrrx43o3TWiKWKkLfmqZFAgO5h9XskGDuehIBCEQ?= =?us-ascii?Q?9BeBgkEZr9Ky2hR0rhWHNXZLZRrwR1PjF5CNzK5YbCoN2NdGV+9YOSHvVBX4?= =?us-ascii?Q?ZsycSMQ/SkQzTdye1osbMaYiH5teLYuakKe5pZzM6bxoB0g0o5Q+ah6WXGej?= =?us-ascii?Q?jWbyQyibEhuU7MuvvFCmNGP/hdD8AcZ7h1Hwu+p55tc96Ap+PMpcQSzh8BJz?= =?us-ascii?Q?gKWSnI59rIOcskd/zYBzysbNHoM6Nggi4czqGxOlz6FqjqsEmA97dxOqtnjV?= =?us-ascii?Q?HFQcT5c5QauXqwaokvo/D08Pkq5aJxnj9KjuXJnohCbozdzp27hqJct5xIQY?= =?us-ascii?Q?gUd8Us7xYNokaoA1RbGlJzDQC6oyiCHjSpntMbaXq2SZaAHq0ghMciR6bYwr?= =?us-ascii?Q?R2uj7Zs6RBGuhppjB4b/TDsBn3kXLaCLD8oWoRT6YFsLhkkPmdfVAFnJNn0t?= =?us-ascii?Q?/4iTNdBEg5xgspyy7pqRBN3UgzzkM84n7e/7h76KQvpD6Q+m9uHZYDcqTsby?= =?us-ascii?Q?hL7UjtOeWdOlKjz8=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR0301MB1624;6:Y4XMEeqCvCo2V1YlX0QmE584r6eonJhSm6LdRP0KQBQn2F18MXipW0reO9QeKE6mxNdSii4AITyww2cL2F6ND2WOzzgv5hLaxWnQFICU86iqBsygh1yEnPB6rrpCfG7HW1yPz2hSMdprr6dmT7pdhV5ZTUnGiGGkYDLZRNndBLaAYIzzl4o3i1KwLum4U6SBhuUxNDr34iG0O8fuJDKm2sHmiMA6dwLGEHsaaR6Zee79A6fznLLKmFN+2kTrjHUc6Chn2JEyX2eUgeZVjOCJxA==;5:UZ2jeED0SxqBn289dsYFONyooicvYoMJ9nftq4WZTU6HCdekNi0a8lvP+UhCMs5vr9Ic6onTlIoFOpbGPD0OKbalJdwwyaIrdvOpemeLDdfOHnzvg1/4ssYpI8CRUt8K8W4NXvSVxfq+niJjm4xn9dG49BDAzv7/Prq4szrFcdA=;24:wps9e1fHOa3gpCvuvdkGcVRl3+TBehftTKYym18LNLJaUdKpEssMNFMIHrHYVU+Bg4SghoQjVSzf5duthGIJw1XIgSJXJbWQys9yYKIMZ1Q=;7:Ib+/sZ39fSKuaa9xdGd5It9RlEH7S6gtLfdWVoAfPmYt88J2XVIyk01Li0QSMmV180ZIkWCOjDdMRrqZOx5DtQuEhsdEaNA2nr4dv7Qj8/LpRF/WalWqqNT5ljPoCLOeL36xPMKxCjjy8NpovfHaw+3FmASo8ygqxLV/Zb7b6XLOdUypPiHGuWG0a+p5lA2s3K7pfQsFile0/rS2CzilGg== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2016 08:34:37.7554 (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: BY2PR0301MB1624 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 V3: - Move to quirk; - Only correct the irq in RC mode; drivers/pci/quirks.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index ee72ebe..8b39cce 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,31 @@ 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; + u8 header_type; + struct device_node *np = NULL; + + /* Only for the RC mode device */ + pci_read_config_byte(dev, PCI_HEADER_TYPE, &header_type); + if ((header_type & 0x7F) != PCI_HEADER_TYPE_BRIDGE) + return; + + 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