From patchwork Tue Sep 18 15:15:47 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Douglas X-Patchwork-Id: 971156 X-Patchwork-Delegate: lorenzo.pieralisi@arm.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-pci-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=cadence.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=cadence.com header.i=@cadence.com header.b="TfiTQlRi"; dkim=pass (1024-bit key; unprotected) header.d=cadence.com header.i=@cadence.com header.b="dj4Nnqmo"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42F65S0dqLz9s9N for ; Wed, 19 Sep 2018 01:16:12 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727228AbeIRUtM (ORCPT ); Tue, 18 Sep 2018 16:49:12 -0400 Received: from mx0b-0014ca01.pphosted.com ([208.86.201.193]:16271 "EHLO mx0a-0014ca01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727756AbeIRUtL (ORCPT ); Tue, 18 Sep 2018 16:49:11 -0400 Received: from pps.filterd (m0042333.ppops.net [127.0.0.1]) by mx0b-0014ca01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w8IFDlcn006593; Tue, 18 Sep 2018 08:15:59 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; h=from : to : cc : subject : date : message-id : mime-version : content-type; s=proofpoint; bh=D3w7YG2gBY0bseWBvgaRYE4kdaYSkAQQ6wTAp0tpd2o=; b=TfiTQlRiZ5BFiRKgG1Fcoy7A4bgFtnNczyRqudNW194Fe7RAL/HNQNb6/kVytMUul5lO CwQihWff88XkmDNd9OEF7ICd+ww0aX+Kg+O3FvgdXhwfUZIrBcZ6FdeaMC7LVxnKPYs6 g+TevtXlaRdi23fvbO9sEOkAZmma8YVnRQdTxpfvMuFnaqrWXrsABvU+S+yziLxVUDkA keC1JodVpS73OekJGFBlPC4iHT24TnJsSOEAh2LRZK2EqIz+EjysUfghpuPsw6kKxKpb YZtqengoGjUtCBoy7sbN/SZRXn/+H1RUYIu/2WPDhzWKtGvBzTaJCpEVZP7ACcB7bn1H Jw== Authentication-Results: cadence.com; spf=pass smtp.mailfrom=adouglas@cadence.com Received: from nam05-co1-obe.outbound.protection.outlook.com (mail-co1nam05lp0079.outbound.protection.outlook.com [216.32.181.79]) by mx0b-0014ca01.pphosted.com with ESMTP id 2mgwnv7p66-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 18 Sep 2018 08:15:58 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=D3w7YG2gBY0bseWBvgaRYE4kdaYSkAQQ6wTAp0tpd2o=; b=dj4Nnqmo4Ho0LCTReUNH6fDzO980UIIZsU5jmibWixVSUucFvGQmAb6XVI19HKheVESg2ZxFQsEQg58kmAw7Dl/7gxGNJTBaO0IR56BJDNtiqdhX1UCSXNEgsrmIJ3wiJSHzZ62YQVz8X726qzEon+hp1GESoGcWr+IWfWiHRv0= Received: from BYAPR07CA0017.namprd07.prod.outlook.com (2603:10b6:a02:bc::30) by SN1PR07MB2174.namprd07.prod.outlook.com (2a01:111:e400:c455::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.17; Tue, 18 Sep 2018 15:15:55 +0000 Received: from CO1NAM05FT063.eop-nam05.prod.protection.outlook.com (2a01:111:f400:7e50::202) by BYAPR07CA0017.outlook.office365.com (2603:10b6:a02:bc::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1080.15 via Frontend Transport; Tue, 18 Sep 2018 15:15:55 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning cadence.com discourages use of 158.140.1.28 as permitted sender) Received: from sjmaillnx2.cadence.com (158.140.1.28) by CO1NAM05FT063.mail.protection.outlook.com (10.152.96.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.1185.5 via Frontend Transport; Tue, 18 Sep 2018 15:15:54 +0000 Received: from maileu3.global.cadence.com (maileu3.cadence.com [10.160.88.99]) by sjmaillnx2.cadence.com (8.14.4/8.14.4) with ESMTP id w8IFFpXp013379 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 18 Sep 2018 08:15:52 -0700 X-CrossPremisesHeadersFilteredBySendConnector: maileu3.global.cadence.com Received: from maileu3.global.cadence.com (10.160.88.99) by maileu3.global.cadence.com (10.160.88.99) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 18 Sep 2018 17:15:59 +0200 Received: from lvloginb.cadence.com (10.165.177.11) by maileu3.global.cadence.com (10.160.88.99) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Tue, 18 Sep 2018 17:15:59 +0200 Received: from lvloginb.cadence.com (localhost [127.0.0.1]) by lvloginb.cadence.com (8.14.4/8.14.4) with ESMTP id w8IFFoaM012708; Tue, 18 Sep 2018 16:15:50 +0100 Received: (from adouglas@localhost) by lvloginb.cadence.com (8.14.4/8.14.4/Submit) id w8IFFofo012703; Tue, 18 Sep 2018 16:15:50 +0100 From: Alan Douglas To: CC: , , , , , Alan Douglas Subject: [PATCH v3 1/5] PCI: cadence: Use AXI region 0 to signal interrupts from EP Date: Tue, 18 Sep 2018 16:15:47 +0100 Message-ID: <1537283747-12589-1-git-send-email-adouglas@cadence.com> X-Mailer: git-send-email 1.9.0 MIME-Version: 1.0 X-OrganizationHeadersPreserved: maileu3.global.cadence.com X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:158.140.1.28; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(396003)(39860400002)(346002)(136003)(376002)(2980300002)(36092001)(199004)(189003)(6666003)(6916009)(5660300001)(246002)(54906003)(316002)(42186006)(16586007)(8676002)(126002)(48376002)(2616005)(486006)(50466002)(51416003)(356003)(478600001)(305945005)(7636002)(87636003)(86362001)(2906002)(476003)(47776003)(106466001)(50226002)(26005)(336012)(26826003)(105596002)(36756003)(186003)(426003)(2351001)(107886003)(8936002)(4326008)(14444005); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR07MB2174; H:sjmaillnx2.cadence.com; FPR:; SPF:SoftFail; LANG:en; PTR:corp.cadence.com; A:1; MX:1; X-Microsoft-Exchange-Diagnostics: 1; CO1NAM05FT063; 1:0GFDnXa8r8duzhGr9fqDfdDvc5qaZHcLefzEJFJTXslefRo6X3GJpsJhGF7So9kHuP3lLPTaytB1A/LtYc2KCjNL34fJboLY5am0kmd9/NbShoqVFybcOiv9GELaFEKe X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 90abc160-b152-4115-bc6e-08d61d79a133 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060); SRVR:SN1PR07MB2174; X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2174; 3:hlReVxkrLxa6Qqaj9VWhQ2GdhQp+J2ak1ciCRe35iPDSQ0abhvlOmCx9g6ZZPV7ZW9ikOjidFWBCtlopOrkpSQ4SQLuv13+89EOX8d49QrUWEOCJS/wCCSD1Inci3juxFbrT470e+FjT2/dflds6qI6CwhH0aaieRJYxN6q55ZQFyKHCzO0WphOZ222l9sslaF6PSnKI45FYyyFh65Cb+8XXUzTwnnWH135uI4XTf474p0ZcW0gSJy7eWSfm2OXBQ8EZmzYDPmZmMNnNG1iu590QhHGbBAZYS9Grcd7XVqcbK6/0Orll9qrITlT+LAdphGN4v2peNZjdFbbJbD64BH1RSyxr51Ia3j5baNKsPeE=; 25:guCygKYThEZ44kko7yPf2lOrxzItQnC9l1oq0KyoBRsBjViLvTFHiUB0DfzGR3YttSqMIimi67A+WPegNjRrShvQ+t50KkBA0/7Dd/c1z6vBC1ztqWM6QEhMAzfBN04P8+23ecdqukepzYYy0sQGvI8p7isuXh/savjn/6rjhfqH/9MgnG0H36prUVlzTEFDisqc+Vlf3obhvQ5An9G3/nSFY8zYSO894aYSNejYosZ7BiqT7+lABDfniG4chlYjavrV9s3MZSJgnLggE7sMdihpFKYvXlsBrL04hTy90FAJ20D/6UhUou1Jv0ZsmdGuXJS27Zyw1W8CTmnsBilW4g== X-MS-TrafficTypeDiagnostic: SN1PR07MB2174: X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2174; 31:e2RM209ESNvorilKEIIltb0psRJRNzSEY1BvtSMkfprDzduPBv+bppUvJFTMDhrCizI94stEqYO0XfMI0uPKpR/slUO0Ts/X4kr0is5tN8RPGZoyb4ao3FBtEsaWK9rpy+A6MRoVIVImHPkaS3YnRd+pLkgXZzGt2QMFUX3F8XReECTzTqKCM2xj4/MezcYiC+IG3aR6pta8lNkLiobzvLPB6q/FSbaPG13PJUPP62g=; 20:A4cdgYrUHbiCxQozudv699gBrn1i0juHQamNs7asvKdQbWE659xGBgtHlA61Q04M+0xx5URu7TiIRSC2x/i9tXjqBTQX2eKwuTuyMG5fcz74lPscuNGNC0qLKiJxJ/dYVgTCvds3INIY7CPBLNHUfW1KS9yYtztE3e69v+kEK1BldUB8PzdghHUtc05W+XUZWYfB507nVT21EoxqEpM3VObFzfyZODosW31qaP51cYtEP3VZdq8nZOB0G4fuoyvL7wxSzK0IWl3fb4OHIAhsyb8EZZgBWMlvFpE2Iemv/a2detJWPFXFgZe/b3lrbhHP+pm5er75ufdvDkfpnO2VVSaEeaKARO6/MMEsN1r3oEsZvIamEWcPn9VZC0VmfyZe3Ttct/GBIW4eAwZ+vBlDR14VM6qE/OG1wJ0yJSAE4sKwG2xiuHdeXoEY0r9RkyvS2XVA7CczyB6ida4cUSgdAfZ0FSVtAeuAvtg+n6DkCfgKcRgMzAG2PV+ZfP+r3dO6 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(72806322054110); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231355)(944501410)(52105095)(3002001)(10201501046)(93006095)(93003095)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699050); SRVR:SN1PR07MB2174; BCL:0; PCL:0; RULEID:; SRVR:SN1PR07MB2174; X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2174; 4:9rr4ClvrFfjeC8hx3ww6aLwacNbf6FLMkMi8gCApiGV1gvszXJpBllTZsMOKsKhtO6oj2h9aS4ebOpppul6L2BkrSo7uO/SPi9H0zQ0EpGgcftHNSZDQtjSGGwUz+fDUkHzSdjazboJhBnMKoWlND070CkjtQNeH9vZA4pYRdnikVPlwuBYXV11ba5aAg79vbjJrBpRHADOEQFViBecn0FUEUneyhEEoNRduYsp+hLdPvHn5oLP9lhVgXoOaMGId2HHLxoOJKg6OrAIEnrJxaWt64GGOCqhPUiJZUstv/ogd3GcCH2bPATCP5U4aR0SP X-Forefront-PRVS: 0799B1B2D7 X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2174; 23:9B3r+nRkdiMYZ/Rbcx92TVdwcMSHpbhS51PRXZusp1CNtY9f0RVOLd7LNBEJ+6Mhm3ghe6J4dliu0oNx019q6xXzF3RGvd174+ELWMtL5NxF7EfAO0eZtwwL9zKIGToWq2J+O2c5/oM0zfzJEv7cmmVf2HDZOGEIPjUiYcwNvtP11o/9YpsuKajliyC6C32xSLEnSXdtayT3DQrNjN7JPBdiFEXWX4gsREIlkHClTL/xFNN5PlJ6ZqRhQPyI3ZmJA72QAe87qJJVwNR9GnrlHTT2OL2M0AbthXyuWTbcOHwzKf98F29fE8gAXPlFTPZf42ByRB/igq1+OMt7dTbqLr98XUjzj8HQHLxQvE/bgsLA50TUzx9a0NVKZGMbS4g51Hra6GqZ+CCX9SePN397yjc2thT2fZG1hInfJBvz5AgayLtXdaLjmNbaIdvb8i0hG4tKaAnkCqcRHZSZHvli4J71GnGstuisebbLxka1FhuG9Rm1UFQMIefxuk5LK6IicL/ePVWzCxObBIy6KnWz0atQKBuDfCoSEZBni7Meo0tESjkpwOJEkIl/Jz0IF9q8OQCr8GTNvGaWL9fWtyrJJYdzN+R2F8iqn0Z5nFyi+Vu0mcNC0/6z1CdzkTZ0qms3oQfXff9mhiNkqE7+dJmppDE6VzoGZsnQLD9+kM6YISF6X1opBpC7ZHhz0eqgF5NbPRgZKZ97beyjbEO7L713Nw5R2e6J1Fdw3YBnxbZBzMBULObUnXs7qt/I+KKm5oVfW0QfTDVIaKC/fyMhBmd+weT0CSeH59l0fBunUdVMoGmKKrEpk2qd6sWQ9/6FSA0RZgf4bbE62BM28hQlYiZNb3kUdyUT4mAAftHz1U5pzxwugXhXndlyTGXqDBWnEHqoaiwhkDWz8dI4uNza0ogmQVtZ2xBVlxZbHYB0IMcztdUcqi9Cd6r+bJbYxawmxgpye1U2AQD8PTdnOegFiadaKcT2dOALz/T3hU3NdPHyFD7lmOcmyHaVtyOK8D9Goi79P1SnKj+ww/4xmxLwlenv4LIC7F9EGuhEv3KlJgcB/LQ= X-Microsoft-Antispam-Message-Info: +g/acVPatwr7i4DOxAIxVY+2cbsTWm4fiGIUToQ0JMTo8MOHL6AwA3qeVmK/LJHxWy4wjbLu3sWtIAaonEgx/O19lKRIKX7UZk9e7JUJn9hdv3BvVMmi8Ll3km2tWqYh0X/9My3gJuLflZyKeHrhJgjZ5UsCiedJuMg3Nl+SzB/Sj9Vy6DPWgLHv0AywmgylDIRX3Q5oAATp/GsM7D0kRuAvOPjwZpEGHJpGEBoNWQxYOBnVe4b3/4kFsHeePHTHEF7q+PUh3HkePHMmriFlgAAxVc93iUHVaK4AfFmcuYgtLum2+TphxwEgOOWKzRNeP092D0IP0gWiMzmvZd12pT/7wxcdpbL+G4I/WWvEAMFSGIjfk4CTTirxiBqVg7I6zBLS8xlnQs8hW+Qta44qww== X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2174; 6:SnwK8ya3RMwubL0xZVTHqyEIxQ1gUn51Y0rFz/gv0FZGk+tgYWtXDlFDMuM//uWbaLu2A/p/oDQ5svCDFFtZGTkrad/WLcwzg5QGSBiPQlr1qTCrr+HZg9jXhmwAnzAGcngT/7Dc9NyGa6ppxbx5H5jR8ZSf8IU3hqzYQmTC6GOXSD3eBnRNteHhhRfwBZRQk00Y+mH2VfM+73efmrF+pbOCU5aVi9pdofMCzPV5cVsti6MCh5WLAPNCPXmhp/2OTJHmFOleC6BEIp6OWchuAVP07ja9jurz5MzMQoJVn5PjJ1Il/0WjeGtQHbV7SA/dBoxmiH/SMGkWou6WBsqBm0MyDh6ZQes7qmxM4AkWbAd+loLz5mdhnlEqW7MWw1S/PfcvsjJ/XuSfV0CDx/ZQwkZFqwULeYf5F5jgzqkgCMEmk6OtRfFY3Rt3HzXuVzmCKb/jIU0hP+IkAI0xLZM9Iw==; 5:WWGjsdXLTkC8OF8OJ0PboVmqqZ5wLtEfGu4OX9VzCrNHfx1Bu6UxkmQhaHDzr4jpn5aS0yVVe4iuOl8YuIqTa72Vxum1C7Yh9PUvY1MjODWXpYSh9lha445yuuozIGjNX0292XDLPSCpLCMeDNylIN6XtGr8b0AwZQdOmBXUgOE=; 7:/QIm5JFPEn5WvuC5KBA6m1qncgu+PvnX5Aql5Y8q2tQ3jQoqAVeSC0KRdbxSmct+ytiq6Mjyl9NhzQmaT4Aqs3eMeL9Zfp1hv4TjIB7ynezcayC833fcFS1Khdy3+icgAl9Q/4B1anC9I9mlikruO0O+dCLMV7htBuKHIJnnC8z2gRRatELOlF1bDrEgHACfXilSQXLzBzX0jbH+jL4RcuKf5B3MQ6GMXrQ/a+yGCOB9lgrt/TYzwlCevaFCwfLq SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2174; 20:OD64VqlFvqhMgUytnDX1qEm6XP+KjuLGpfeP5g4g26ro5aQxxmhZgjtHhBIDqiPezC7PmwTpaxT9u4VfeovN5fMm4Oie7jsj27FxYtZv6wkeRw/NydnO7pK/c5RWJeejNtYzC7x83M1K3bFJIhhB4ePENUlo7Oy6zUk6/wASxPxFOHnDyqxlV/iizZgJQ2igmtl/8zcL4BsuKaDh+oi/N3Rts+/8gtq8JhXH9w9LJqJqivzf2r5aqirB0BjF5TnB X-OriginatorOrg: cadence.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Sep 2018 15:15:54.9618 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 90abc160-b152-4115-bc6e-08d61d79a133 X-MS-Exchange-CrossTenant-Id: d36035c5-6ce6-4662-a3dc-e762e61ae4c9 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=d36035c5-6ce6-4662-a3dc-e762e61ae4c9; Ip=[158.140.1.28]; Helo=[sjmaillnx2.cadence.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR07MB2174 X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 a:mx-sanjose2.Cadence.COM a:mx-sanjose4.Cadence.COM a:mx-sanjose5.Cadence.COM include:mktomail.com include:spf-0014ca01.pphosted.com include:spf.protection.outlook.com include:auth.msgapp.com include:spf.mandrillapp.com ~all X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-09-18_06:, , signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=3 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 lowpriorityscore=0 mlxlogscore=647 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1809180153 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org The IRQ physical address is allocated from region 0, rather than the highest region. Update the driver to reserve this region in the bitmap, and to use region 0 for all types of interrupt. This corrects a problem which prevents the interrupt being signalled correctly if using the first address in the AXI region, since an offset of zero will always be mapped to region 0. Fixes: 37dddf14f1ae ("PCI: cadence: Add EndPoint Controller driver for Cadence PCIe controller") Signed-off-by: Alan Douglas --- drivers/pci/controller/pcie-cadence-ep.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/pci/controller/pcie-cadence-ep.c b/drivers/pci/controller/pcie-cadence-ep.c index e3fe412..a67dc91 100644 --- a/drivers/pci/controller/pcie-cadence-ep.c +++ b/drivers/pci/controller/pcie-cadence-ep.c @@ -259,7 +259,6 @@ static void cdns_pcie_ep_assert_intx(struct cdns_pcie_ep *ep, u8 fn, u8 intx, bool is_asserted) { struct cdns_pcie *pcie = &ep->pcie; - u32 r = ep->max_regions - 1; u32 offset; u16 status; u8 msg_code; @@ -269,8 +268,8 @@ static void cdns_pcie_ep_assert_intx(struct cdns_pcie_ep *ep, u8 fn, /* Set the outbound region if needed. */ if (unlikely(ep->irq_pci_addr != CDNS_PCIE_EP_IRQ_PCI_ADDR_LEGACY || ep->irq_pci_fn != fn)) { - /* Last region was reserved for IRQ writes. */ - cdns_pcie_set_outbound_region_for_normal_msg(pcie, fn, r, + /* First region was reserved for IRQ writes. */ + cdns_pcie_set_outbound_region_for_normal_msg(pcie, fn, 0, ep->irq_phys_addr); ep->irq_pci_addr = CDNS_PCIE_EP_IRQ_PCI_ADDR_LEGACY; ep->irq_pci_fn = fn; @@ -348,8 +347,8 @@ static int cdns_pcie_ep_send_msi_irq(struct cdns_pcie_ep *ep, u8 fn, /* Set the outbound region if needed. */ if (unlikely(ep->irq_pci_addr != (pci_addr & ~pci_addr_mask) || ep->irq_pci_fn != fn)) { - /* Last region was reserved for IRQ writes. */ - cdns_pcie_set_outbound_region(pcie, fn, ep->max_regions - 1, + /* First region was reserved for IRQ writes. */ + cdns_pcie_set_outbound_region(pcie, fn, 0, false, ep->irq_phys_addr, pci_addr & ~pci_addr_mask, @@ -510,6 +509,8 @@ static int cdns_pcie_ep_probe(struct platform_device *pdev) goto free_epc_mem; } ep->irq_pci_addr = CDNS_PCIE_EP_IRQ_PCI_ADDR_NONE; + /* Reserve region 0 for IRQs */ + set_bit(0, &ep->ob_region_map); return 0; From patchwork Tue Sep 18 15:18:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Douglas X-Patchwork-Id: 971158 X-Patchwork-Delegate: lorenzo.pieralisi@arm.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-pci-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=cadence.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=cadence.com header.i=@cadence.com header.b="H/wM8pat"; dkim=pass (1024-bit key; unprotected) header.d=cadence.com header.i=@cadence.com header.b="jlAnVyeM"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42F69X40Qpz9s9h for ; Wed, 19 Sep 2018 01:19:44 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728982AbeIRUwo (ORCPT ); Tue, 18 Sep 2018 16:52:44 -0400 Received: from mx0b-0014ca01.pphosted.com ([208.86.201.193]:59685 "EHLO mx0a-0014ca01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727756AbeIRUwo (ORCPT ); Tue, 18 Sep 2018 16:52:44 -0400 Received: from pps.filterd (m0042333.ppops.net [127.0.0.1]) by mx0b-0014ca01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w8IFJ0T6011110; Tue, 18 Sep 2018 08:19:29 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; h=from : to : cc : subject : date : message-id : mime-version : content-type; s=proofpoint; bh=kcWCffm62qcV9t78gr7YinoBmsqYOWmSzIJTeCfC1Ms=; b=H/wM8patGLTlP2YR6Mfk5v/Vz2M7lmSIYVc1ygjeM3+GfMzCXVjU/zrpEohcTA+aqP5U U5oR+/jQhEejoM6uSeAtryizo2QlSrFY4Dxl9Fo0Umn8HuNU7+aBKfRYDx7cMSABtmTV OtBryDaS4FJVyrfQDTTTTdVkKqAtM3hwX8lFN6pFwd8HZ8sq5cxFjjRQPksGSv/5rqXn YLtebJRTc16FfBE0ttTkf6jGgpeLQ++vnmdbFTO7k27VSQIWPwiz12gWCiR5drCto7uz YBP4kJz3nwoBF1WL3uM/1XNeYCiYDu3Z81xByv2oURIni8Mp4ID/sA0ZM1e2U1RQb/zW Tw== Authentication-Results: cadence.com; spf=pass smtp.mailfrom=adouglas@cadence.com Received: from nam03-dm3-obe.outbound.protection.outlook.com (mail-dm3nam03lp0024.outbound.protection.outlook.com [207.46.163.24]) by mx0b-0014ca01.pphosted.com with ESMTP id 2mgwnv7q41-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 18 Sep 2018 08:19:29 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kcWCffm62qcV9t78gr7YinoBmsqYOWmSzIJTeCfC1Ms=; b=jlAnVyeMD/zpptTN3T3gUm4PbMBXhqbvPdTb357TOjRtWNKcC40x9+ZJ35NqNoG7lBfzM6/l5qtWfP0gAq7IKElog1pXH6+ub/JuZKcRLJXWfKnbrNXlr2S7nsKuqMFV7tBDBsiOtTiFRy6AkL6IZHqd6YU6kjNkiP1K4MK+VmE= Received: from CY1PR07CA0028.namprd07.prod.outlook.com (2a01:111:e400:c60a::38) by BN4PR07MB2164.namprd07.prod.outlook.com (2a01:111:e400:59c6::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.15; Tue, 18 Sep 2018 15:19:25 +0000 Received: from DM3NAM05FT003.eop-nam05.prod.protection.outlook.com (2a01:111:f400:7e51::200) by CY1PR07CA0028.outlook.office365.com (2a01:111:e400:c60a::38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1143.15 via Frontend Transport; Tue, 18 Sep 2018 15:19:25 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning cadence.com discourages use of 158.140.1.28 as permitted sender) Received: from sjmaillnx1.cadence.com (158.140.1.28) by DM3NAM05FT003.mail.protection.outlook.com (10.152.98.108) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.1185.5 via Frontend Transport; Tue, 18 Sep 2018 15:19:24 +0000 Received: from maileu3.global.cadence.com (maileu3.cadence.com [10.160.88.99]) by sjmaillnx1.cadence.com (8.14.4/8.14.4) with ESMTP id w8IFJMuY022233 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 18 Sep 2018 08:19:23 -0700 X-CrossPremisesHeadersFilteredBySendConnector: maileu3.global.cadence.com Received: from maileu3.global.cadence.com (10.160.88.99) by maileu3.global.cadence.com (10.160.88.99) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 18 Sep 2018 17:19:08 +0200 Received: from lvloginb.cadence.com (10.165.177.11) by maileu3.global.cadence.com (10.160.88.99) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Tue, 18 Sep 2018 17:19:08 +0200 Received: from lvloginb.cadence.com (localhost [127.0.0.1]) by lvloginb.cadence.com (8.14.4/8.14.4) with ESMTP id w8IFJ0EO018462; Tue, 18 Sep 2018 16:19:00 +0100 Received: (from adouglas@localhost) by lvloginb.cadence.com (8.14.4/8.14.4/Submit) id w8IFIx55018443; Tue, 18 Sep 2018 16:18:59 +0100 From: Alan Douglas To: CC: , , , , , Alan Douglas Subject: [PATCH v3 2/5] PCI: cadence: Write MSI data with 32bits Date: Tue, 18 Sep 2018 16:18:56 +0100 Message-ID: <1537283936-18335-1-git-send-email-adouglas@cadence.com> X-Mailer: git-send-email 1.9.0 MIME-Version: 1.0 X-OrganizationHeadersPreserved: maileu3.global.cadence.com X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:158.140.1.28; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(136003)(39860400002)(376002)(396003)(346002)(2980300002)(36092001)(189003)(199004)(316002)(54906003)(126002)(8676002)(26005)(476003)(2906002)(356003)(16586007)(426003)(14444005)(105596002)(42186006)(486006)(336012)(106466001)(2616005)(86362001)(7636002)(47776003)(186003)(2351001)(246002)(8936002)(478600001)(4326008)(48376002)(50466002)(5660300001)(36756003)(305945005)(51416003)(26826003)(50226002)(6666003)(6916009)(107886003)(87636003); DIR:OUT; SFP:1101; SCL:1; SRVR:BN4PR07MB2164; H:sjmaillnx1.cadence.com; FPR:; SPF:SoftFail; LANG:en; PTR:corp.cadence.com; MX:1; A:1; X-Microsoft-Exchange-Diagnostics: 1; DM3NAM05FT003; 1:pLs2rTx0XLTT7/PvV2XORT10Vzrv4tvt3oWvtFtNgR9afsJNIP5UxGPaL/1LowQuFZU0dMpdWk44+Kf3Pfmq17hYThMgZo6or1lswu8UpbV9JHJkT3WPElaUtBKId9rg X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1bf929b0-88d3-4e1b-bd1c-08d61d7a1e57 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060); SRVR:BN4PR07MB2164; X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2164; 3:tpPKFcqbk4TjCqanSoP1d4tmuVwZU/IjfNCeJq8mjFgEt8lPsW9puc3yOdis98VitOxymNCnYClsicbuTi54gX9Cs06r8e8SUngMNRlafXcij1f+QDeIvfyYzI6bCONXyeU5pW3msdO2C03MjPfdqZoNfI9lfnNAYv0WJJYTfmsRQfearveNqOLalmpVBpPeCcI2Za7yC9P4RNiTvtyxPgpWDQDaZAFfYiRHNWO7SMokGMWExE3vstdSIBSv60exiUSXhy/JaNWKK8kv4svUS/31Srqqrpljl7sfh7QZkzeljkG9OQv0ioKdewUA92f+txc7IsAyQGEYjBnKZCt3aEZOC5DfY0h6rY/FaSe1xrQ=; 25:bfA0isyYItYB73iT5v+kOxk6G1fYP95HVZ/sVc5zs2iQj/5JOkkQ9H5e+PeVn7aM8a1LCqE/FBwiXmEE5vxsU8JG+5aSMlzO5EZ9UosOx4WwCKtWSdNmHf2g7wvr7Ym3/G3oU5ptyWBZCdkB6PypjqmIS8j03QdhViL8GbHUjqGwW0m+Nd5/JWycV51vM52sjym8GXq5PDGDa/vUMB6svSPYiWwy1CZO2h5w/r7qKLQ1ICi3avhzFGXL1eG4dU9VyRqIdbigBIJH/S1R45m9nuySaXF/NKQ4soTZjaucIj58iQbu/jPRwRE16ZsXGLU8i7t7YAKRUYf22a8g6yFLTQ== X-MS-TrafficTypeDiagnostic: BN4PR07MB2164: X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2164; 31:fqb+uoMnZ/igg0SSexrzCw8ePptvr2meHnII36/tU0zr6d6LA5HNGqBqZu1OWyg0RBmj7FNTgY+RmemCeDMKa7gEwWgzA4oZot4/tVQtUDkKp8EAGsop18jYWY52uv7HL0/r1KDT71hpelnnPAvWqREmeNKM23wXNsakp3c691TyR2/yOBmkFM+18NIHkK3iOiCzljuZsYr2T0jrM5u37vndiCJ5SZxDlclclqp0kbA=; 20:Wk+Py6qpStK6U72pFCjrSSNAhSrqiWOLmQInv559aAebNxBC5zv/IZHH0I2fEQDM6+F1hK5NtCcgogewfL1MFOykcyhTGzT6FkWVzt1QjrG8pRIbJP1Ze7OvJgITeWasSpX+6ot5VQiyKlukmyjv6SS3OoDHo6/ABjOWSeqEDZWEmv08vLGfv+8Xln3UicLLQV78vQVtVhb+h8qNcP66+tU3h/pEJrTK+maQ8AUoVIec3zd3gZJf/poHvP1q+6QXGCdNF778G4+ImpfXAVacC7M8+o2qK5nze5BsignIUYFaPBlepWjYTwWbMqw/y/5gSvsr9u1Dkf0Dqnfw/NH8UoRgEk6uVQbz+wvf+87cWQeoCVDtbMmXAyguuGlB6tlZTpHUa7C59ydACdcEHRmrSkFrvYBUHdwDHN1bFkFgRLr1CHBod0XDzhhmNimFQ+Qyhd585i0JJMI+FlUP7E/tR1umDx41cQlhApibTmE0YNkTmEfQ6i0nTeLdrYKeuA5z X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(72806322054110); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93003095)(3002001)(3231355)(944501410)(52105095)(10201501046)(149027)(150027)(6041310)(20161123564045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(201708071742011)(7699050); SRVR:BN4PR07MB2164; BCL:0; PCL:0; RULEID:; SRVR:BN4PR07MB2164; X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2164; 4:a2I1UTRexgnmhmt6mjq9dq/jcA2iNrrzUro4fGzfUpOg+Pq4+rPXg0tkiu0Gt9OKlLdSXA52PH4xu8iOU3Y6EG8spXXEQQDhpe/w6KXfQnIzqdHbl2LPXA7jD8Z7GHumhHDFpgJr1ooCzRvMTRAB8TxWHFTkYaFw7QUwne35CkkRFskKp/b/ObLH7V528WWBJ3Htaw4TrPWxH0kk2CbmDXSq5BrzviqJilaj8qzyDlprrU+OdUT9tO2zf5Wt7izN8hKA4UEv1jmmdVBmPwG/6X0hUlTe6hlHNgHPDRBbLUw21uzPPNpOf1n1uXP6wnqO X-Forefront-PRVS: 0799B1B2D7 X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2164; 23:Y0BCbRUHbjHtZgz6ke2Ln56ive1DbXvhweEoXuN/2+ZXgmPia/0MmO91wDlURd+bP/28o5/qZDMTKxKHWYnOTIBvgaX864EM/wA1wP4l0KqUGeaLk/0aug7t6VCKbJ1kJ38ciPThyrl8dwkpLnw+MZ6Yexg2J0fP2ULhDGhf3SKFr3Jl09JZAys+kTo3lkPwfvJJD0rKwD+x49aYLKUPRsSqgdt55SmaIefC/I/PnbhIB4u1TFMJ6ui+uPvdepERvGClDA+XTa9KPHJurpsBrz+tgZVnkxswjMFNCtG/WSKjqM1XSgdw2WsTDU21MeNlJLOy3V8EI6gq/RDNhKn1I7DOg/ueRyq/caSjzA4a65n8BvCteD0suDPPjBG07AHJkAwalOTMYeMtHIxctfNmllSYKGMm31u+rlTBBxRyy5p2hBrFOliAEN7izpHHTc+sm9g1vPxNE7+fpUhfoDqhFKz1eWYmIGZBtJp65YrpyYdLTAwGLXGa3pPSNaFkxfskdDhUEMZbrYZuApDVSftCihMh03W8NcmTScfYcZcnu1NiI7Wk7V5XlRrQCG+Miaw1SB5+/rw88OK5cCysR4x2dPEc9yncpGR4MziYouHyKo5Y4uD1jzDSTQ0dGGr7q6xIVo5rtSdWsEV/RfCDnfy2t6qWMd8SJ8zRr65dVq/47kw9H1P3spO0wvqWbsUs67sxiQ+uJyIW8nrmClHcW09EkpkDuNXvbqj2W15igJmWYsreLqBRGV8kOeJ1uEtjsWn3AGDMTt/xpb2CslUnFgE+HFUYZJ0QQ+JoLhf/gbulIPbyMUcJBk81OcFHrCiOb6JUBuDyO65Nw+g9tqTTLMJXJClWhpKhuGGEp6Cd6Ctd1Gy+qskYsW+oOhvydpeBYzC2r/cb3yRh2u8T3X806GJ1QSiILkEobxJFC6wuGOQx0z4JtDXhXvB8oxtkgdRyhZs0sLyBPq0zOJywwDg2G6Esqi+23MMz9mtou5f7W15M9MJ+Zsir1BIepNZf6DEnW+8sS5caTc1i39ueVYLRgxc8oYS2ysj+9jgI831/UniXPmM= X-Microsoft-Antispam-Message-Info: LZqoXyCnB5wNDoLjZdfq8yXth4g6Hze/+9ZJUqxExunlJQ//mlpoOp0qW19QXly1cUC5dvzgb2Kg/Xyam/3hnNABTstxnGvmZe4EowjqNJVxtl2K1ufSgzo6JyIx4SBMlLyqMuab8wLAeCvugGDJWBFHy6b8cX72zVZ2px6PIODYLcoR+KjADjZgVMDiyHGnDcfj/u6Ixvmc+KZ2D642hdIztVOROeJe+pQlGYwmQZM+d4NP7f7s8k5TCCV3OHxyl8YxBw3P2M9tZo78WMquNrRJtbKOBBA9dtUD2Y5lMY+CNbu7au92T6CUSu8Lr63mztu7w5aMcaVQgHVZLmazh0nFHfmlw5IhV6JB568NGjgteTetok3u3ZZM4JRVhJM1EUNOob7RgzCjjWX+ORWX3Q== X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2164; 6:AsUTmnZsDXDtYVuu32q3sNzEljXs93UpTlTKrAQB+5+Ho69hw5clMqLrC3hlY6md8siTz0UhBWx+745GOqjfIGpdz5kMfFRpXWy7nf6S5c1gzCPqEnip+DiUk1bl8ojd/Kul0kxB4owtsP9bysN2VNHkjDSSe4ldN8MreJYCdGOpBl3L3LkidYENNUiWx8AUtVvL8LmIkUTMsTHH9EDZfqbLIe53OpiJZPDcPWLyLGRT4jDdxnUZzglNvfjEk+mPJ9uL0gbXvpwnv6bk7fJpXAddRJJ7WvkGsh3vGnL18OGx35bly4iD1t+XVCOdumHWi1aZ5UARZx38qKthwljbmnWTpjWVw428eLFsBcp+AMJ17/xLN5f1CFSkjVDFtRRdtJ0aPeIBxC1b+j6FRGuwKRIPFdNIzFP8hKVT3ZRnyhGz1RqW3TFqidNgJKag8/3Ux+MgYF+atFD/bNLYbt9k7g==; 5:CgfQaU33CnjrCR+2umbw3W5VpRrfK+jytVPTw+qrDT7wqLpIINihhLqrMjXo0qGSwlu283S5Bjs0WVA691RCUto8AZal0tEGg1lOXtl2Brx/DluOp2HG46pSpSw731d9lNI5lbb36vUdXIkH416axGHb0Y6BLLJaj7GsffQqU+w=; 7:IBst6k+1BOqNwgW3aB+8izP3bXlmDrgSHLir8iwjIs5+ImIumjNWHvq8vU8SDXGIBzXiiuC1yWPqOPggf84iefUeBxhwdHm11UTeMIbwrZPYjaR2iXT/ddJIp3OF0ZOLfz5fsurmfpv3GRnoXLCKInlMt+aFF908rcqt3gdTPSQQwESQ3hDN1u5T/Y/ulKL5u/7mtfvVO1yA6yMGc94ZJq+QyIRv69hBjmC5jo3AirNNaYX7tOF/nEatm4Mc7swL SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2164; 20:imWhQbistT26rIrshmzZsxzwTQ/5Orp6VdotYkvMgFFZ1o/LYRksbKRXebrTaGv2g/tg+te1iytOB7so54nbKSBpO1AxOyq0XI3F+l6xWXKgDy0fDDjN9Lga1bvIN+9miKYJ/bLPW4Jj+kEcSJvWAJmXLQKm/YPBUdCPKR1UJcKlp+ZU50W8ZTnM9boF3lZNWgGG2R8tgdY2I9LZQPwG8titxbaRZjSgU6bKOTZBPwLjSjukOz7wTo8A9PqZQ93j X-OriginatorOrg: cadence.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Sep 2018 15:19:24.8192 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1bf929b0-88d3-4e1b-bd1c-08d61d7a1e57 X-MS-Exchange-CrossTenant-Id: d36035c5-6ce6-4662-a3dc-e762e61ae4c9 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=d36035c5-6ce6-4662-a3dc-e762e61ae4c9; Ip=[158.140.1.28]; Helo=[sjmaillnx1.cadence.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN4PR07MB2164 X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 a:mx-sanjose2.Cadence.COM a:mx-sanjose4.Cadence.COM a:mx-sanjose5.Cadence.COM include:mktomail.com include:spf-0014ca01.pphosted.com include:spf.protection.outlook.com include:auth.msgapp.com include:spf.mandrillapp.com ~all X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-09-18_06:, , signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=810 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1809180154 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org According to the PCIe specification, although the MSI data is only 16bits, the upper 16bits should be written as 0. Use writel instead of writew when writing the MSI data to the host. Fixes: 37dddf14f1ae ("PCI: cadence: Add EndPoint Controller driver for Cadence PCIe controller") Signed-off-by: Alan Douglas --- drivers/pci/controller/pcie-cadence-ep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/controller/pcie-cadence-ep.c b/drivers/pci/controller/pcie-cadence-ep.c index a67dc91..970d934 100644 --- a/drivers/pci/controller/pcie-cadence-ep.c +++ b/drivers/pci/controller/pcie-cadence-ep.c @@ -356,7 +356,7 @@ static int cdns_pcie_ep_send_msi_irq(struct cdns_pcie_ep *ep, u8 fn, ep->irq_pci_addr = (pci_addr & ~pci_addr_mask); ep->irq_pci_fn = fn; } - writew(data, ep->irq_cpu_addr + (pci_addr & pci_addr_mask)); + writel(data, ep->irq_cpu_addr + (pci_addr & pci_addr_mask)); return 0; } From patchwork Tue Sep 18 15:19:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Douglas X-Patchwork-Id: 971157 X-Patchwork-Delegate: lorenzo.pieralisi@arm.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-pci-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=cadence.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=cadence.com header.i=@cadence.com header.b="dmBt/SKL"; dkim=pass (1024-bit key; unprotected) header.d=cadence.com header.i=@cadence.com header.b="AS88za5W"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42F69W3gdxz9s9N for ; Wed, 19 Sep 2018 01:19:43 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729447AbeIRUwo (ORCPT ); Tue, 18 Sep 2018 16:52:44 -0400 Received: from mx0b-0014ca01.pphosted.com ([208.86.201.193]:57653 "EHLO mx0a-0014ca01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728982AbeIRUwo (ORCPT ); Tue, 18 Sep 2018 16:52:44 -0400 Received: from pps.filterd (m0042333.ppops.net [127.0.0.1]) by mx0b-0014ca01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w8IFJ5Fs011198; Tue, 18 Sep 2018 08:19:28 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; h=from : to : cc : subject : date : message-id : mime-version : content-type; s=proofpoint; bh=1VA97M2tW+9R4wPxaeZH8P9Czi5y3nXH9PL03NLb4Qc=; b=dmBt/SKL4K2p/Gkbu1todmtNrgXH6ZuBnJ5twAq/QiO/5t9QV/XZDqE2JZ7GGp6dM2D0 BCTYTEeJ3a6i/OZtLgCyGppB1E7q8WktySLxSd7IvaAYpL6lhvKlDm41gmHI+OUtvQ1a JGlWOGNDb2gftG4UIugRmfb0rEGWmf28/FDEO8kQ/B256MDTI/W2OTtYwZYqRUtxQ3/8 zbyP28a8AQ+c0CAeIEwN2wg+utR6aom6wRN6fVcCdbDVDQSlKtcnmamiZL5o9zjX/ayp 4o1EXzBQ6SSI9aio+RFfL5+tUr87ntBpg71qbHzaLmjYBMb6mkbE/INOEhO8YtC2FDs3 4w== Authentication-Results: cadence.com; spf=pass smtp.mailfrom=adouglas@cadence.com Received: from nam01-sn1-obe.outbound.protection.outlook.com (mail-sn1nam01lp0116.outbound.protection.outlook.com [207.46.163.116]) by mx0b-0014ca01.pphosted.com with ESMTP id 2mgwnv7q3v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 18 Sep 2018 08:19:27 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1VA97M2tW+9R4wPxaeZH8P9Czi5y3nXH9PL03NLb4Qc=; b=AS88za5Wpm4xk4G1OCWgDHdxgT7IcvastEsXHgn7qpc9oLs6UKZHDEMU5SZc9vcybMuEqHvwptWnvWpOlrje+nZhV61MkpVwYoQPshpHY6xmRoGUELb+g1eGfyYoOBnYDqwzY9VOeqmL+3vlrLMWKGER4VLgs74l7lXJUJAYyXk= Received: from CY1PR07CA0005.namprd07.prod.outlook.com (2a01:111:e400:c60a::15) by MWHPR07MB2960.namprd07.prod.outlook.com (2603:10b6:300:1f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.15; Tue, 18 Sep 2018 15:19:25 +0000 Received: from CO1NAM05FT034.eop-nam05.prod.protection.outlook.com (2a01:111:f400:7e50::201) by CY1PR07CA0005.outlook.office365.com (2a01:111:e400:c60a::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1143.14 via Frontend Transport; Tue, 18 Sep 2018 15:19:25 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning cadence.com discourages use of 158.140.1.28 as permitted sender) Received: from sjmaillnx1.cadence.com (158.140.1.28) by CO1NAM05FT034.mail.protection.outlook.com (10.152.96.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.1185.5 via Frontend Transport; Tue, 18 Sep 2018 15:19:24 +0000 Received: from maileu3.global.cadence.com (maileu3.cadence.com [10.160.88.99]) by sjmaillnx1.cadence.com (8.14.4/8.14.4) with ESMTP id w8IFJMuZ022233 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 18 Sep 2018 08:19:23 -0700 X-CrossPremisesHeadersFilteredBySendConnector: maileu3.global.cadence.com Received: from maileu3.global.cadence.com (10.160.88.99) by maileu3.global.cadence.com (10.160.88.99) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 18 Sep 2018 17:19:27 +0200 Received: from lvloginb.cadence.com (10.165.177.11) by maileu3.global.cadence.com (10.160.88.99) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Tue, 18 Sep 2018 17:19:27 +0200 Received: from lvloginb.cadence.com (localhost [127.0.0.1]) by lvloginb.cadence.com (8.14.4/8.14.4) with ESMTP id w8IFJJnJ019303; Tue, 18 Sep 2018 16:19:19 +0100 Received: (from adouglas@localhost) by lvloginb.cadence.com (8.14.4/8.14.4/Submit) id w8IFJJ5L019302; Tue, 18 Sep 2018 16:19:19 +0100 From: Alan Douglas To: CC: , , , , , Alan Douglas Subject: [PATCH v3 3/5] PCI: cadence: Check whether MSI is masked before sending it Date: Tue, 18 Sep 2018 16:19:17 +0100 Message-ID: <1537283957-19223-1-git-send-email-adouglas@cadence.com> X-Mailer: git-send-email 1.9.0 MIME-Version: 1.0 X-OrganizationHeadersPreserved: maileu3.global.cadence.com X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:158.140.1.28; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(376002)(396003)(346002)(39860400002)(136003)(2980300002)(36092001)(189003)(199004)(106466001)(87636003)(51416003)(26826003)(36756003)(478600001)(26005)(48376002)(16586007)(2616005)(42186006)(126002)(316002)(426003)(50466002)(105596002)(486006)(6916009)(8936002)(336012)(476003)(54906003)(246002)(7636002)(47776003)(5660300001)(50226002)(186003)(356003)(8676002)(86362001)(2906002)(2351001)(305945005)(107886003)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR07MB2960; H:sjmaillnx1.cadence.com; FPR:; SPF:SoftFail; LANG:en; PTR:corp.cadence.com; MX:1; A:1; X-Microsoft-Exchange-Diagnostics: 1; CO1NAM05FT034; 1:wyn+QeaMT8fHSBVnsZlVf/l5kj0T93ZE7MmbSDMzSbGBkxEFeOknRJcXReAPejz4AWLkL8FdWlwk3vr9rdDMKkBbd3KkkHSI68qGg4JgIszMd8eWmHLbp38ZMYHLO96N X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 227ca1c0-128e-454a-b292-08d61d7a1e44 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060); SRVR:MWHPR07MB2960; X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB2960; 3:FD9gYcvEvRJVYaUY3CIFLAHeS62LZe6rf4GJS9xd+nb8liAeTVwx23rEpS5n60H5cQv9z0PPiU7mZoH8pxvXLdj0VgfbgvvG9w2nJMHRvzr/uT1wgjnq8rRgB0QAQWiAPBuH0eIl029Yj0NugJQVGFQsG3ayKBS0S1CSByeOkcrfualqrOfs01nUO6S8CW/Pbhgb6bYLgq2nGiSX3kMTWy7+7oNeAusgPXqUmGCFBmuCyHojS3svZTTMaZIsr1kKgrFuRkkU4MzleXCzrvoYQISApFdZE9IIXTY7jh6yOkLEtcj3zgx+nYOtFUYTr2QvlsRk09+sRzQZn+rcRElw9E9+qwQcFLO5LNk/zJXZ+Hk=; 25:6psjLZbUtN0y+VaPRzEyweoTcumMIRmhmnqhhBRGcgBmf8tfIMLYx39MBiWA7IwuLpqQ5JI4yZpwtUK8Sm/Saw8gUr2YKnGwE7eWODW0qO8lKXZ6meJxmRB98ud36Pdyl1qDe6C+wN4lXYVoSyP9WZ4CCNVdV4ky57QmrmI125aC+FCDb3fdodWZcGexLUb3uEDVgbg46tGq1VU2bTQP1gMt/bLYhAhb7qUaLBhvaZgDKyZwNO/JXbpWUQ6A3WYELY3c4x38YjjmpgID+ZUSEDyBUa1Cl3On3L6+79TDpf8KcAXlhQsqvfWqf4hyVgMYjETTuH/PTEB0DNkAyqJbsA== X-MS-TrafficTypeDiagnostic: MWHPR07MB2960: X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB2960; 31:qiKAcG1Eca+ic8FyY6eBFJu9Ioql9ZTHMuoT0K/1lU8tmvw9j/DJp6AEhO59qS24KTdtv8xL4Ai90aBDZ3ph21Th3ahcJPmjbWRW/QQs1HUcPFQ+Rm5O3ZT9RZemyzDpoeX4/Z7GauMEC4gECUA29bCGm9LE+GjGr10WGP/7/hNMEBz5hLttHpgXXTfIak33MNCAWtn2iUYDLBwuS7QWf06ptVQ62NZ1tTXrg5635BA=; 20:1yhfcYC5kDzdR1k1T3gvFWqDc8hxiACsMiJBNm4+uRwBelenKzHnMgTnT0i+gWEzT2oZmf187hC990qsxvfM/42yMZd/Z66+2q4TLshL6IDBq/JlQRqSbDx1IDgpgnSbxBmyfxvsRW4gmRsx+qIJlzjnwk0gUv+C79CPmmvT5jiR1q5AaNb7ghcfF7qyQopdxAOxbX1nGAeus39MJRftkqLO6rI12LqT4NMXjes5HMpgGmNblVt9XoAPkuyYIrAvNlpd5Wb/enKjXlk2P9ftLSxJiq6IZJJReE2BJbeqdPGhKzVAR3dhlmiEPKLr3zPd17hYK8xM0piHAHPtxdBcLS/XAC6mpjTl+36+em/juL0jWxuD1rV2F2FUYX9697vvlqCm2MubAZko0ihiPaeAyWHJgON+h3MWZLfjDq1YdCpMbJMoJQDW7x+Cb0T18S4RvtsaLzmEptmNBzbM9TY9zJBtf/png/D5m9lx8/KH2jqzdtZe8UKZKZKBHf69JAWD X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(72806322054110); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231355)(944501410)(52105095)(3002001)(10201501046)(93006095)(93003095)(149027)(150027)(6041310)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(201708071742011)(7699050); SRVR:MWHPR07MB2960; BCL:0; PCL:0; RULEID:; SRVR:MWHPR07MB2960; X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB2960; 4:HUaXEac79LpmFx3tvb+5e0fkurEcZ0uTe48K8PVbm3PHPc4J63LUiXkxk80GLjdAELL4y5Hx60WEA72SAin7QyGUYxouEkVD9xzf1FRWRSryvIPhu7wOedsJ7Dsjz7J5mncLi9KX0zpsiQkT8G0I+s2u4RufWS4UURXQQHQ5x2u7zDQgMv1ICNtvKEtCuGHGxbtqIR+9gjP/KAeF8z6mi3ptC2rch4SzjMjYbqucRG8lT4dZw8h+AlmeTQR/jQ1W7GJZrKlmTQrGWdnSmzyg/b1qNbrceF97kOIRBW5M09iEtwqYyEzJ/Oy9NlEAQMKH X-Forefront-PRVS: 0799B1B2D7 X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB2960; 23:BGQxNCDrzFPmWlGx+xpwv+2VBXws5jt3dtSKFvcj4fdqBq2eivHsHsKcbvOZpqbl9l0ZhnghaoJE+V4Nd6Mv9tqR1ls/yO+sTTU51YXOEmMJAFw8I1NFFl35Na3oi3v2vYI1sZnpx9Km/9TXzysSO0IIuBuJkSOj0ey4RBKJaHyGTcHDqbcp1xp/tVW9vdHMP4dcCo8IFAYMbKKRKazWfmd1v9/BxTlrH9vrvI6zG0e/qJBeUTxTfiTQDinAKyv+3ktTQkCAhMkm+h/bcsdPzsC2SJONJQ6qHqpQ4owujn5xSvyKe822R/bp7KPMkLCuBDbyX+YqmrlSGxPhjdqf500EfxwvJdU0U8DP9XFLB9hNt2fJfiduUyP7ZkodJlh4t8gR6399IGxZ6zklYEwZBtH8D4Dm2sdU8uv/IR8PZnpL+oqgJJ+jE2gsNPxIu4OtOyOiuZbmrS7WevSl6mATmN0BJCFobLE4cUMcOccBgrR9m/smAhe04FQ6x4Ob4G+Vsfu26JHZcg1G0gJVvjB90/aZoWDvqisoWHxJQ3X0WjPWQAL/yUbhMQFKpaQRpYVrxWZr1I+ks97akVLo93XdT61jhUx4G0dFGKkMGmarNedQddZuCZrprt+gdMVjbWaqKODAU9tXTuxONJVf/toxkgeM3iDp2Po4ag7qxoTTKJyxeCEMPFhf3OQdE5OZtahCSXUJwWnYeb7GRqU/ligbL64M3g2ailE3gJmdBKu9+zyj2sBIgY88biKaQO+NA7PuWLBHcgpA+Qf4xQdt0bDf+71qc7ikO/vYSafFvEY8TBtclv6+HiTOgljimN2loMIa4cSw0vvgpMinq/IalvvPcl0qwUqmtik9mLntiISTGpnP8I2vcR44PqBrHNbkHr7pSkSTOjglPWZu5sM2/MBW3ba6lzXq9I1g4pJ8sgKZawmZlpeI4nEqa0Nqks54wiLweaa3TfIUrXCeuWlJZUO+1ewx0CVw/0c45vHAn3SRlfP0gBU/EOj2v2X4jzfaWWuI X-Microsoft-Antispam-Message-Info: cZXuSsdh8bAa/yOTyMTRhdEytrv5z5dHeaXMAn44VkgA8P1o0HrQLYgg3rFrfzI24dajJY+JHa2Rue90xsKe35+40VfUdgxFx5NdcZIEox/DlK39b5+dU8sLD/DoBmGR+lPXNk4aJ9FJjIcdoUyPaohWBqshZKTvLS1EK4TvNek6iEGC0/X8eaHfWhN+nakJonqBBIXfoK28nm06WB/Sc+ULFNvnnwaAiCveobD0TxN7SmBzvZQmoeHIuL39E3TvQ/k/m59FBU+A6VEujxDXXSg71ZpxsAon9lhfDD76LDLmqelbWYpKR4qB/2/yGFRM6KrooQX0BRIF/q6jTmkkYg+FJ/cYNPRQDTiuwVzVESQOrHRgLxvIEA07pRFndwkLTHV2srcJrOEgsGziFrODIg== X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB2960; 6:NgpqUv2hYiJzDV+IcmGZsoc2gWg8q0sJR8WHlnM7YmDr9s+b5kjpwk3ImTOS6HRI6Yoc5N+5TqRtLzAjOqYvb2Z621X9ucNiIbOMPDXEbXczPfrY/gK/D1LSqBKrqMhMNwYhJmpS6O6orrKShKAYTFv45DOJdOFI/QOgQo32xpczhfQZv+T4fhQQkLZTZOdPWlWdZeV1rzand0ECKwmWSrv0IgLimNUS5uHXg9j3dS/SnPzBbkKx82s6Ea08Eb6w9qk9bFzYcu7obGmhWY8gdOkOlepDHFt4wzB2UA6lryBlnIyKK90z5KAat4BX8Z4U7edc7Oaa+cnRu+tdwunhIeXYKyUTl0QFaX/+M10kQtm98jiGWhtrNXBwxbbxYqodoDn3omzGnxXc9OusPO81v5Gc0P/d+WDs5mkAVM2N8bxIm1if4XavHvtbh2AmY4qFxqCXIl9xCEJ1wckSbK2dlQ==; 5:4clRbuSJi77m0RvM49vvYBQNnK/HBHiBc6B5Nad2ITYJ8l0nbYKjh8j/8tFCc50esa79aJaM1+S1IJij4+9hptwO/p8fEyRYDDMAXmBrJ/fE+CMjDpou+923Xh14LlnsR+RXAXMVepWoPcwpStKPXGVmqsDPApe3lTG0/ACZJEQ=; 7:JwC7njbazQpy8mMOfA1eIuNUy6l9gYuED5uL44DbM2b4hiek64YZtb0JQVOgNFoNmlgqYSiqriudTg8l0ZmOrldonQDLr7gv0Wn3Ot5JnecfKpTnx+g3U0f5IWthh/bjtfBAqQ/fGB+b3xdvGcFLRGYbiOh2iTwxA4rFwaPBbZP4rkkvWjic3ioNujIKMvCk2ZnN7geBU/odAJ4U/pc4TQBshaVu8k66LEGTaIP/Z+elRHJCBHOPO5lsCWBqlT/G SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB2960; 20:A7mcoTxXfOiJAhbJwVxtLJPzHxehjFP+S8Uz2ImTXH7OIMN8raq5rvBAmCMVZvbIq6n+HZo5jIEnD45wjxQPEjmE/QWNFntAiU5QAPZfY7DlcqqxNIq2H7pCOtZMgR/lUXPsCsDC6c1yZFaEsTfZX7eSMfEdBjruhPO6aUMXCb+2dMakQ8ccJ/tz4FIIg0pfwUbPCSDNizo3dk9pFTevCm8ep/ersol8BoIorHf8G5Zg/kMszKfmqNb/DuTSqL4T X-OriginatorOrg: cadence.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Sep 2018 15:19:24.8194 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 227ca1c0-128e-454a-b292-08d61d7a1e44 X-MS-Exchange-CrossTenant-Id: d36035c5-6ce6-4662-a3dc-e762e61ae4c9 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=d36035c5-6ce6-4662-a3dc-e762e61ae4c9; Ip=[158.140.1.28]; Helo=[sjmaillnx1.cadence.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR07MB2960 X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 a:mx-sanjose2.Cadence.COM a:mx-sanjose4.Cadence.COM a:mx-sanjose5.Cadence.COM include:mktomail.com include:spf-0014ca01.pphosted.com include:spf.protection.outlook.com include:auth.msgapp.com include:spf.mandrillapp.com ~all X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-09-18_06:, , signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=399 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1809180154 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org The EP driver did not check the mask bit for each MSI before sending it in raise_irq. This is now checked, and -EINVAL is returned if masked. Fixes: 37dddf14f1ae ("PCI: cadence: Add EndPoint Controller driver for Cadence PCIe controller") Signed-off-by: Alan Douglas --- drivers/pci/controller/pcie-cadence-ep.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/pci/controller/pcie-cadence-ep.c b/drivers/pci/controller/pcie-cadence-ep.c index 970d934..56f6b87 100644 --- a/drivers/pci/controller/pcie-cadence-ep.c +++ b/drivers/pci/controller/pcie-cadence-ep.c @@ -333,6 +333,11 @@ static int cdns_pcie_ep_send_msi_irq(struct cdns_pcie_ep *ep, u8 fn, if (!interrupt_num || interrupt_num > msi_count) return -EINVAL; + /* Check whether MSI is masked */ + data = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSI_MASK_64); + if (data & (1 << (interrupt_num - 1))) + return -EINVAL; + /* Compute the data value to be written. */ data_mask = msi_count - 1; data = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSI_DATA_64); From patchwork Tue Sep 18 15:19:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Douglas X-Patchwork-Id: 971159 X-Patchwork-Delegate: lorenzo.pieralisi@arm.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-pci-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=cadence.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=cadence.com header.i=@cadence.com header.b="kxr+XjAU"; dkim=pass (1024-bit key; unprotected) header.d=cadence.com header.i=@cadence.com header.b="MwaTJoYV"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42F69l4msHz9s9N for ; Wed, 19 Sep 2018 01:19:55 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727756AbeIRUw5 (ORCPT ); Tue, 18 Sep 2018 16:52:57 -0400 Received: from mx0b-0014ca01.pphosted.com ([208.86.201.193]:41906 "EHLO mx0a-0014ca01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727348AbeIRUw4 (ORCPT ); Tue, 18 Sep 2018 16:52:56 -0400 Received: from pps.filterd (m0042333.ppops.net [127.0.0.1]) by mx0b-0014ca01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w8IFJ3KD011150; Tue, 18 Sep 2018 08:19:45 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; h=from : to : cc : subject : date : message-id : mime-version : content-type; s=proofpoint; bh=RODBcRzswngvqg98dUkhex/I/RL/gWvNaWehFvMZFE8=; b=kxr+XjAU9k3oqut4IyNcmPYJV10TFUvob6Xq/0gSkZWbCnNOaIGopJzeGnnDk5xEpvxT PaxnTeYxWpBOblg5xW6WE8TT8H7iSwmGOrgJHgfmr3h9b1QCvV+L+7kYY2xfLVSjmc0O Ba5hd2hf4slAZ5C8uYy5ymAOooPQHG2/3tVPISjyg22HtgV7m7ODPMr3TZ6zQ2zHtMRc wQSo71sQFah0UnuQCU7beoCNfWug5ya3EQqwy0wGAuhvLqd0dHDeeobQrWJeumCpiRZ/ Mnr/UMFs5sU2Ol9uUF8cNv67zq4VEt7Z642Rgx+in4704Qe+kgEurdYzRePAhy4VT08G pg== Authentication-Results: cadence.com; spf=pass smtp.mailfrom=adouglas@cadence.com Received: from nam01-bn3-obe.outbound.protection.outlook.com (mail-bn3nam01lp0176.outbound.protection.outlook.com [216.32.180.176]) by mx0b-0014ca01.pphosted.com with ESMTP id 2mgwnv7q6b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 18 Sep 2018 08:19:45 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RODBcRzswngvqg98dUkhex/I/RL/gWvNaWehFvMZFE8=; b=MwaTJoYV6Uww4u62p+TrjsODFPhXkzGZ/ue3CuTggDaCisgLFu5tL9WRFkSeMwApFYrY56iNfwkIj70i7sMifd6cGO7XAC0byOcW25WejBSWl7pY8Nd+P35zgORMIpsbnSyhW1agP4MPApLKugnFUo61r7viPqB5H3PgccZjB3g= Received: from CO2PR07CA0074.namprd07.prod.outlook.com (2603:10b6:100::42) by SN6PR07MB4414.namprd07.prod.outlook.com (2603:10b6:805:59::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.17; Tue, 18 Sep 2018 15:19:42 +0000 Received: from CO1NAM05FT055.eop-nam05.prod.protection.outlook.com (2a01:111:f400:7e50::208) by CO2PR07CA0074.outlook.office365.com (2603:10b6:100::42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1143.15 via Frontend Transport; Tue, 18 Sep 2018 15:19:41 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning cadence.com discourages use of 158.140.1.28 as permitted sender) Received: from sjmaillnx1.cadence.com (158.140.1.28) by CO1NAM05FT055.mail.protection.outlook.com (10.152.96.171) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.1185.5 via Frontend Transport; Tue, 18 Sep 2018 15:19:41 +0000 Received: from maileu3.global.cadence.com (maileu3.cadence.com [10.160.88.99]) by sjmaillnx1.cadence.com (8.14.4/8.14.4) with ESMTP id w8IFJd8V022248 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 18 Sep 2018 08:19:40 -0700 X-CrossPremisesHeadersFilteredBySendConnector: maileu3.global.cadence.com Received: from maileu3.global.cadence.com (10.160.88.99) by maileu3.global.cadence.com (10.160.88.99) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 18 Sep 2018 17:19:47 +0200 Received: from lvloginb.cadence.com (10.165.177.11) by maileu3.global.cadence.com (10.160.88.99) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Tue, 18 Sep 2018 17:19:46 +0200 Received: from lvloginb.cadence.com (localhost [127.0.0.1]) by lvloginb.cadence.com (8.14.4/8.14.4) with ESMTP id w8IFJccw019795; Tue, 18 Sep 2018 16:19:38 +0100 Received: (from adouglas@localhost) by lvloginb.cadence.com (8.14.4/8.14.4/Submit) id w8IFJcVQ019788; Tue, 18 Sep 2018 16:19:38 +0100 From: Alan Douglas To: CC: , , , , , Alan Douglas Subject: [PATCH v3 4/5] PCI: cadence: Check link is up before sending IRQ from EP Date: Tue, 18 Sep 2018 16:19:36 +0100 Message-ID: <1537283976-19703-1-git-send-email-adouglas@cadence.com> X-Mailer: git-send-email 1.9.0 MIME-Version: 1.0 X-OrganizationHeadersPreserved: maileu3.global.cadence.com X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:158.140.1.28; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(346002)(376002)(39860400002)(396003)(136003)(2980300002)(36092001)(189003)(199004)(5660300001)(36756003)(186003)(26005)(51416003)(8676002)(246002)(4326008)(50466002)(48376002)(2351001)(305945005)(8936002)(86362001)(426003)(478600001)(87636003)(26826003)(106466001)(47776003)(105596002)(316002)(476003)(50226002)(126002)(2616005)(107886003)(2906002)(16586007)(54906003)(6916009)(7636002)(42186006)(486006)(336012)(356003); DIR:OUT; SFP:1101; SCL:1; SRVR:SN6PR07MB4414; H:sjmaillnx1.cadence.com; FPR:; SPF:SoftFail; LANG:en; PTR:corp.cadence.com; MX:1; A:1; X-Microsoft-Exchange-Diagnostics: 1; CO1NAM05FT055; 1:8hEbGyQrRZqa5x7pdqQA9HQTGiyo6e6YIhGj1w1zfkw5x4FXPTUFQCSz5be2IMBC7SgWcVaYcUTFaF5+BEwUev90PYd+WV3MJrcOLv5mgOEd+w0zfvsKR7DgTZFPDI7h X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ef404e1f-86ec-4ce0-3580-08d61d7a2848 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060); SRVR:SN6PR07MB4414; X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB4414; 3:aZsXIch0XtM6Q7Uc7iv0OQJs1/l8aX3RZAFQkTkb3nKqeJSzTTdKak+dp2viMsHalF98Npwso7OgWSzRlqzw79QDWI2zipJzWW+hQbJl1YoIVN3HBdBXZJBAicxOGCn/qd1ZRfiAkdSQaxKSkJxPuWcsC429eUvZzV91uocjgr5KMI1DhJ7z4U+tnN6Z1HwZr4DFKMYhu27oglF81O/7jRux1Sk0qeG1ZkmNoKtqPZsLysVhCqktFwo8iOU7JjSk13svnazLFxZTuOjRr1Em+IxHRbPXxJ5X/+3venfMqsp9ZaN0rKqOvtxcxk3jmMw6g3PEII/Rc+H144DhhqNkfnTSHetvVTB9YQz99maxCYI=; 25:SEmDy69/bwrLcSvdA0zK3SrxaBk0EJvRszVe1alklCubHXOnv6GjSD+kjUvzNADHn6rK8CYDkh4FgepbjhzWDmsNHuLtzeiya2ycBy0yoEA6BTneiv8FWVEr0NdVSMQAKsZNSXtE+FbEBlLhihd3Z0KxKXoL7W9CevE2cVPd8XQuX3p3KZAQ2RNxrsTbOFybneF8Yy73FPLJoJLMy6Ge2r07msjjIW2uXoOxDWVphVDlvmUNFpoMhP3sni41nXbZlwP0+xRTIIPBty4sgnV+aNyJQLmYhlrPIpltm/CIGhVsERsIlt9qwvuwN705f0a+uVGDubsT8MwdKNEQ51uCqA== X-MS-TrafficTypeDiagnostic: SN6PR07MB4414: X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB4414; 31:7ibncaHeXU9Hkj5MYkuGgARTaXZ1z900Kcxqu5jySJ0CtSDEM4/PWplkDthTpSSwAW9wPRAsBtRrG8UfiD/kHLVEqqS/TmzFe7xfyG+ok2ymOLJkGVRGTKVTyCx/PShzqivMGU/6RKIqsycSEugXJCpgHJDRSu04EXo2T7DeSEdP1iO8PYFtaxylcDIUbMqsSlW6NgUFsinuY+kuXKDwWcR1Ih71SQaatog8Hy4+SJk=; 20:D87tt+ZiATRZienXiVq5Nxer0PchVo/5+eSB+0YeucLLc94pfW5fs0MG+j6VaDGoD60EbjqIWj6lPywA8aBkF1+H4SEy407vpEM+UhkHWS8Ehk8ePaA++4phoGA/fjPqXS0GHQ+B+dvC8jGFhB2wlmeB+TS27TvNnl/EmJOqzFYV+8QDIBKLsWq5etrPklL8ea+vs7E8Uqcg5sYe+HxzvYvqD1VdL0r7RR6VnF9Ah2aLytmYUnt4pw2SLE0E+u3yNn3Qm0fXwCxqzADLDbhFlIoSiI2VxGjOE+CCzmyteDb2oizlxqJUYsffvwPdMlFw1pHk6PFtmHIIjimmD1KgzEcqRSZTYUEUVByj8r7FOmJG15+QQhT9HjNFVGblvAU3ToRPFYtjVeI85J+E107ZZNpVsi7lUgj94r0ZRFEa5UCkP8DgDGmXsSlbNiY+HrG0so1qbtK88E3B8Ib63iGgc3HM/Gk4JVirQOzCiKhpUDD+Sg1f7XaFaXq5lBDoNL/C X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(72806322054110); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231355)(944501410)(52105095)(93006095)(93003095)(3002001)(10201501046)(149027)(150027)(6041310)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(201708071742011)(7699050); SRVR:SN6PR07MB4414; BCL:0; PCL:0; RULEID:; SRVR:SN6PR07MB4414; X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB4414; 4:RBfIgTTgJszGJRScsz/xz64caOa1/THwwdoxISpfc2tYioq4SWCGd1wFxiWPbzrg5l8kUl44BVaUoNEpU4r4SqWP/Fay/UvgUbj7q5+0qiTr+vOLpOBvjM7h8MPR+H46T2avzageLglK0moqnAsk7fwvzU4+2MKTjxkaWDetLOdtYiggOEh1SaCqk++DZY5YVxyIftb6wbmpSbmgpaFlSCr+srQYuIVLd8OCODrM2ONAM/X2cD8+w9RcGPz+tCjaHGLAy9C3kh8yEa5YGbjdWyqHu3dCfsEkjn3WQPVL1c38PjZBGYRvFLS7Z2haqAZY X-Forefront-PRVS: 0799B1B2D7 X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB4414; 23:k5411RIqnnfm+hnlvwseNHcNu0XCDmlnP4zXO13cy0uVxwkonQxYZ1p6TbqSdL+TZgwTbRDHJw0T1LuL25VMZw3lcDqXY906KyOnvjV8obYDdKHFTkFGqdRetXscYBmJoUY5y+P9yeEDj29Ui+tbDxXgETgT/srkEIYzICYm+FB/mhjhNQHQgatN5sSjBzJHQ7WclVIovNJkcXbglHuRdrY94l2S7c6OvbXKtl3tmgezWSFNix2R6Rqn0syiXwekJrc3P8Rgjkm3Jb0FowppkTn1HO60SNiuKEfBHsvqC9lxkgwXSsTJCPBdwGuGtySx/Mm1SXyWMZlOMjki1wGwmNupwS0Qz/Di7RVL6fGTdK5V/VQC1FSI++wcR9twKCUmTtOmJMCBsMr9SkW8AdjyfiwDU+7NC9qXxkVKDb1IEQ0bklo1ld742cpsfZ3i+rHa69ukmc3yst5IJ5GxWB10zDUYGhblXdIPxC0NhE4Fm/J11bP7CKOtCdM0wnBzJAHS4ncUDVBAzIUQEUoQEm3sKCbEdfqw+oysU3Ig+3IwMO8s7smza6D0yBSljSOuoKYJd/zJ9lycn/u6cIsG0lIOZ2iERdCYZmhIrJEW/GyKINO/Sr8919Vdijzig9HddDlIB53zYNNy4VHBmuXA7EK/mWM49W5jrDoC9UkKX1rK7IoDFbB9KkBtVOU6fMZvptC0AifAKUE6UUWzYAd1erUvvImn0hiFxedCLcUZMuf3lVg4u6pUx8B4LbhaOMlRPBlDPLdNedBjJEouu45QZ64vc5COe4PZdJj+mNu9Ny8Rv7rrIjU+cRWRVkEfoMQ7MHJTVQ04t5WZhIHAD+8fbZa9B0y2ZUzowS9LM+QQ/0xyvMeDwGbWmbYAJXtIxlWO73xy0rzJpSjlWmHIL62VweBY5+snoJrgQVrhf83Zf5RURgfHc4wiJCp3VDeQswrtyl76NfiKgyKynX73WfT+cscZWXiamkF61EAjuhqve2/gwuze+lbsdzWOSvAMZA7/6Nvj X-Microsoft-Antispam-Message-Info: xv0mb0Rjpz1udaqECNWyo02eFoM+B5tJnt0Cq9r8dir80/FPyU9VsXrEH3749t7cxt3fF3i2uEJXXk+0lhDIf/3TkXnZLb/JK7ttFbdqUjAeIKWB5TJL5TmBeQ6sSGSUhHxjY7wjA8eLi211TL5FHnIY4celiWrg2WV2EQlWomccxg7vOMdsklaNIguSsQQ76PUVIkP5tQNUZ0xjRzp3YfLsQofpO/CNLbzan0mo29E6vnVbrmoG6c+5TJai6oWV0UHb0dzVmpMEGXI1OE48Q4iPjhetrSbFCcu7qegQbZh++7DbmTFfH54UC0A7Iv5O3bXKtLIX1/HRsOKcxd3YwfSXZcbKXM4J4FZWkkkEgiO+5obM4E7vvMetAKTpKazwdRlGMi16bkso0hg1yGZsvQ== X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB4414; 6:CLdSHVNILqv8dNbKpVGgAQh6NjReZnci/IlGt3k0mazyQ0WK4ZGonpnMg7MybjHn0r9wv211XpDh//zeRUAH6fOib7yJdAKChxbZGHlGgcyYLJfkV2Hw6yTPthgOrN6u3qOi/FKp+74z+IDD9FfVOo8OnYfv8cBVaRHswu0rFizAymJ94I2F/NURgUg6dw4WKGYY82VtwDDcV9PjpAzXHz9k6wTSKZTWGv+iXZu/1JI/K9A+esyvyPLliVfTmY1Z55YN+OnnoHEVTG8VaV2tuodbkcHoizL81fQ2N5DpiHZFNC4h71tIkT8K0qYG5bHWfiJVl69RuyihOBNIwIl/kYJRs9TfeVJNPrlw+m2KCfVSa8Shgjkx8rS4iGqsqnBs/w5ElXj+nZ5WW4QQZSa+YFzyQoPeFDTGqRnW/GfPvSKJSELDvhiz1Go4Y7M+RSYIqA8GdeRZU1LQZuOkC/xbdQ==; 5:V6HyIW7zY5aw2QB35/3dYjf/3AgYnOM6BqidrOXUpbzvSkYzCRrWBsvzJ+pCdkkuJmjZEasXlLE92p2VfSxmhv8lwGdpVpKf8IkTS8xy/aY+3oUgxrPHiiZ3mDOZoiL7zYhY6zvp0iEjzhFcrOUKybze3m9MOdfAslncaR1WVYU=; 7:OY/7FSOQk8V3ad7i08OPE6mWPzDO5sESjUOgGa+CGkR4l2ZDnhycGqAsjYQUjdAVqn+ebx9RevyuEuLrMLZiS5Dh/Jjc2Fs0sZBXDHOlxbapkN/QRBeMDeApP1qK3o/A5dHhWWY9HJUiH8nWlIsBa5ZZpRg+h12bVyFFh3prWpHdJ+RPLwUZE6iBEft4RkMXlyX0PhWFD7M28BLllMUbOFlxPN5B1LJiJxHZDev8ESp7+L9Hp1+u8ZPsQauRC4YV SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB4414; 20:Qp3dST0YWzgxj6cxImF+ePnxPNSsGGvPMUIVJli+SyQz876ruZUC+N7ANHm0oEhbfR62H+E9CLYKDqsIN5uSTpAG/x3APiQWLhwsNwSTK5vipEo+X3MVhdlIRnXH3BMcSGBQtjY/YRYYzFUP3yFPNji8NvjLMDdWnXgfhNCi6Pk07H4aknZ9lHp1jrqjKA6sekjua+Q8sEng0JZSHB0aCIzBfLn4c6nhEPGIAN8YO58BQeChmjjmErCtmEIRhDDo X-OriginatorOrg: cadence.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Sep 2018 15:19:41.6196 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ef404e1f-86ec-4ce0-3580-08d61d7a2848 X-MS-Exchange-CrossTenant-Id: d36035c5-6ce6-4662-a3dc-e762e61ae4c9 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=d36035c5-6ce6-4662-a3dc-e762e61ae4c9; Ip=[158.140.1.28]; Helo=[sjmaillnx1.cadence.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR07MB4414 X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 a:mx-sanjose2.Cadence.COM a:mx-sanjose4.Cadence.COM a:mx-sanjose5.Cadence.COM include:mktomail.com include:spf-0014ca01.pphosted.com include:spf.protection.outlook.com include:auth.msgapp.com include:spf.mandrillapp.com ~all X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-09-18_06:, , signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=373 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1809180154 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org If EP attempts to send an IRQ (legacy, MSI or MSI-X) while the link is not up, return -EINVAL Fixes: 37dddf14f1ae ("PCI: cadence: Add EndPoint Controller driver for Cadence PCIe controller") Signed-off-by: Alan Douglas --- drivers/pci/controller/pcie-cadence-ep.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/pci/controller/pcie-cadence-ep.c b/drivers/pci/controller/pcie-cadence-ep.c index 56f6b87..1248d75 100644 --- a/drivers/pci/controller/pcie-cadence-ep.c +++ b/drivers/pci/controller/pcie-cadence-ep.c @@ -370,6 +370,12 @@ static int cdns_pcie_ep_raise_irq(struct pci_epc *epc, u8 fn, enum pci_epc_irq_type type, u8 interrupt_num) { struct cdns_pcie_ep *ep = epc_get_drvdata(epc); + u32 link_status; + + /* Can't send an IRQ if the link is down. */ + link_status = cdns_pcie_readl(&ep->pcie, CDNS_PCIE_LM_BASE); + if (!(link_status & 0x1)) + return -EINVAL; switch (type) { case PCI_EPC_IRQ_LEGACY: From patchwork Tue Sep 18 15:21:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Douglas X-Patchwork-Id: 971160 X-Patchwork-Delegate: lorenzo.pieralisi@arm.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-pci-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=cadence.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=cadence.com header.i=@cadence.com header.b="cQY0dUXE"; dkim=pass (1024-bit key; unprotected) header.d=cadence.com header.i=@cadence.com header.b="BCmYmuvJ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42F6Dk1grwz9s9h for ; Wed, 19 Sep 2018 01:22:30 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729583AbeIRUzb (ORCPT ); Tue, 18 Sep 2018 16:55:31 -0400 Received: from mx0b-0014ca01.pphosted.com ([208.86.201.193]:43642 "EHLO mx0a-0014ca01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728912AbeIRUzb (ORCPT ); Tue, 18 Sep 2018 16:55:31 -0400 Received: from pps.filterd (m0042333.ppops.net [127.0.0.1]) by mx0b-0014ca01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w8IFJ0To011110; Tue, 18 Sep 2018 08:22:17 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; h=from : to : cc : subject : date : message-id : mime-version : content-type; s=proofpoint; bh=0LyqvjKnQWkOs+AaJBjOi5zMsIdvoYAYQlhe/Ek4MyY=; b=cQY0dUXEBT2zLen+afuE8M4nY+d4XV4msGweYXGeZCNWKA3/QbY1MQAv/UwRcRleHaTa 05vVCk7IzZHJzEHQqo+JoJ0AsYUw+liRmhFDbXSWUyWgstRHXHzFAb31TLyayqKxBjLl MTcWI1aY0hixfsxsw2iKFvEnvuLipqFZXyv4fzAUrY3njeVk/pLHKNc0+HIaERZ+RDHh /r/jE5H4MCGBJ0fNzVOMCeF0GfRlabGLgx23cRDOGolvQCkcHpGoTj6DIOWxSLfCQDMd r8O4RX+Yf5d6lXO+PCDTvD8HX0WEmKoXni47FGwxP94gxq79O66sdqwv8YAg6BrwuuyX hQ== Authentication-Results: cadence.com; spf=pass smtp.mailfrom=adouglas@cadence.com Received: from nam05-co1-obe.outbound.protection.outlook.com (mail-co1nam05lp0082.outbound.protection.outlook.com [216.32.181.82]) by mx0b-0014ca01.pphosted.com with ESMTP id 2mgwnv7qtu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 18 Sep 2018 08:22:16 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cadence.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0LyqvjKnQWkOs+AaJBjOi5zMsIdvoYAYQlhe/Ek4MyY=; b=BCmYmuvJZfqJtSQWJhvaNszrFkEnrvmKMCfZoSs8jzt0FNUtl809BUf9HTOxWflQjXj97WIClzDKJD/OSu4Ql1gSiS8oGA+Zq1BL7vzrXSKrxCYl/goxMvarPqu9PRWQWIskFOnyiEV81GQMKWLX40JoFltoURhC9LZrKgYRH2k= Received: from BYAPR07CA0007.namprd07.prod.outlook.com (2603:10b6:a02:bc::20) by BN4PR07MB2164.namprd07.prod.outlook.com (2a01:111:e400:59c6::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.15; Tue, 18 Sep 2018 15:22:13 +0000 Received: from BY2NAM05FT036.eop-nam05.prod.protection.outlook.com (2a01:111:f400:7e52::208) by BYAPR07CA0007.outlook.office365.com (2603:10b6:a02:bc::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1122.15 via Frontend Transport; Tue, 18 Sep 2018 15:22:13 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning cadence.com discourages use of 158.140.1.28 as permitted sender) Received: from sjmaillnx1.cadence.com (158.140.1.28) by BY2NAM05FT036.mail.protection.outlook.com (10.152.100.173) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.1185.5 via Frontend Transport; Tue, 18 Sep 2018 15:22:13 +0000 Received: from maileu3.global.cadence.com (maileu3.cadence.com [10.160.88.99]) by sjmaillnx1.cadence.com (8.14.4/8.14.4) with ESMTP id w8IFMAbk022475 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 18 Sep 2018 08:22:12 -0700 X-CrossPremisesHeadersFilteredBySendConnector: maileu3.global.cadence.com Received: from maileu3.global.cadence.com (10.160.88.99) by maileu3.global.cadence.com (10.160.88.99) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 18 Sep 2018 17:21:57 +0200 Received: from lvloginb.cadence.com (10.165.177.11) by maileu3.global.cadence.com (10.160.88.99) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Tue, 18 Sep 2018 17:21:57 +0200 Received: from lvloginb.cadence.com (localhost [127.0.0.1]) by lvloginb.cadence.com (8.14.4/8.14.4) with ESMTP id w8IFLmQ4023622; Tue, 18 Sep 2018 16:21:48 +0100 Received: (from adouglas@localhost) by lvloginb.cadence.com (8.14.4/8.14.4/Submit) id w8IFLlP6023594; Tue, 18 Sep 2018 16:21:47 +0100 From: Alan Douglas To: CC: , , , , , Alan Douglas Subject: [PATCH v3 5/5] PCI: cadence: Add MSI-X capability to EP driver Date: Tue, 18 Sep 2018 16:21:45 +0100 Message-ID: <1537284105-23519-1-git-send-email-adouglas@cadence.com> X-Mailer: git-send-email 1.9.0 MIME-Version: 1.0 X-OrganizationHeadersPreserved: maileu3.global.cadence.com X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:158.140.1.28; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(136003)(39860400002)(376002)(396003)(346002)(2980300002)(36092001)(189003)(199004)(316002)(54906003)(126002)(8676002)(26005)(476003)(2906002)(356003)(16586007)(426003)(14444005)(105596002)(42186006)(486006)(336012)(106466001)(2616005)(86362001)(7636002)(47776003)(186003)(2351001)(246002)(8936002)(478600001)(4326008)(48376002)(50466002)(5660300001)(36756003)(305945005)(51416003)(26826003)(50226002)(6916009)(107886003)(87636003); DIR:OUT; SFP:1101; SCL:1; SRVR:BN4PR07MB2164; H:sjmaillnx1.cadence.com; FPR:; SPF:SoftFail; LANG:en; PTR:corp.cadence.com; MX:1; A:1; X-Microsoft-Exchange-Diagnostics: 1; BY2NAM05FT036; 1:k5InleM/zTDujYUIvEKPbT5LhkbH8T0OWVKT4LW0Y1kvKTcK33x0nn6E1J39N3t5UAFr0eR3NPj02/2xyaMIk9sbTw3aQwcq8syqh2vek44qCUvp1GTeLpcuz0Hm9xph X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8cddaeea-17d8-48cc-e6ad-08d61d7a8271 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060); SRVR:BN4PR07MB2164; X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2164; 3:Yvi+W1MxVVvbm9M7PVDSv8xDKZxnToUoy6fF14OeueGa1koLbWnLvBdWPpEl5Ys9mwP4RK9rGk7Qfr3NQDSjyk3yFICAW5WO6T1WmqIV3MbVUqGAl1OcsVmVOP95QgimJb3ERTrNZWC55HDASw2Nn1wL/7qOM1zn7qXAcCjWLgRXOXEEf9GFMfeWXBqMkNyTLitIFE0DTdougDxFXJa9LsoEtLuzL61bOKj/ejIMHtegQiSwGXtZADUG6UOTRBPDBNs/oiJyNCkfQ1PqIyjS2yqWOKFyCpVT1HjsDH1ICC3IJr22/okKty7/dNgksEUrOT8rzGCrniU9qRMmoqjhxXd3oGI5nW0eJrYR1m/Zmcg=; 25:BWae5Zto5DcvHVm2T4rYHNlZoKwvG11Dm8EAXyz3Z+a+JzdvW4ijNZRbl5pP6KyTIWTNz7/gVhu9C1ikwi8joerHhfbHKHrDtvjY6ZUtaA9e+3qiyYBjS8OoV6+HiTjB5N4SAps2fjpo0RT1aXZ4ofUVBNwGbX/GCqeb/dS1PN3HZsRPFLh2u+JP1p8/msLCrvfu73fhAAygg8s5SDy3VLKkBadZI1aayIHyPPBsp8ofuwbEfygTZqeXzUOPMAe0uD8UQN8+woaRjX6OEG3+q3VTyLaXlUF+o5HIW/2+Frm1vBCmzMyJLWoyBX24MN9cw0eXKdMW/sF34xwjgNYNtQ== X-MS-TrafficTypeDiagnostic: BN4PR07MB2164: X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2164; 31:rhpTcnQ4g0Mz/EuPK5riS8o7h8pkHDLATT7APSaD8Fq8hBm5BrfRd92bYkC5KtRe/8LPQr9fJks3vl52GRRMPkORxEo515/G/fsUDTvbmmpXwJFyHgCBU8a36JdoKHeSZoxdGvpMCfVe/Z3GZ4G5kzU7Lo0gQGuAE4OHvMUqYd3S92G8y6H24cURZ4cAX20j+Zr0wUcXWBtsAsYSQmqQiKUvDMrOJAr82pBkzlKddlk=; 20:VAYrAyJLY99ZSpaUsnVgKZye5WZilLQxaz56rA/lQHIkRL1hmur+pqRJM7qr2NIpo86jpICyZqaISS9DPtnUohw2ynvVWcALUDpUeK7fjR24poNhld+m+kRHn9yG/+S5xKi0rzUcAF7PC1QlFIxaGAchrsNMfo87iEuwRG+40YHReQn3ww8e3RZF7U75K0025Gbo2qDcyjN6mPhnFkxtWbkdT9/XB4TbfrXlgud6RXfiL1fgl8vbDUbqw+Vg0HxaZJ9nMMhTd7hRtBbUGycT/qkkZRizoLD0hlCMBtHssn0haqsJkAyG6LXTCP/2buccwds321ohwTWTzbaAQqDdM0D2eCD/xH69f6mT1xMppif+EZSIBg4plOSBj9MuDYU38eQxLQ5/U3pqDvxvulf1Ek1pm+C+26ydOHQDzsbsBi2Ol0RP98NZVhByzUBdi5kO9i1kW04EBh5aSwev6aQcIUEczqzKUxHIr7UTyEPnhwrXq1a4EoT3VzKsi9OLQlF1 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(72806322054110); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93003095)(3002001)(3231355)(944501410)(52105095)(10201501046)(149027)(150027)(6041310)(20161123564045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(201708071742011)(7699050); SRVR:BN4PR07MB2164; BCL:0; PCL:0; RULEID:; SRVR:BN4PR07MB2164; X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2164; 4:dKxuklFymQOK9gN8YX7sdDwuFHQAUj5kY9afNuoSMg+4nc1my55tFIOt4g4pWw00BULow5lmgFx86HbCKZwuVFkMQxGFYsKtP4ADILiW3dgZi2TbuC1J4XcXZ736AVZRa+xiw2biNW2yI+C8txWkzvZjTynCSkkhyEBUfPIs0Qr3xmXyrx7Sl/Nkj6Y/CuevQ77tgN9bf213YG14+2QFdWmkFiabVv4ncr2LoRRKDtt6Y8XMo/ApPVrY5TqtmWKfkhO+jPe1v0YRsKvK9fr6gQrDd4IeXxuOkzucNs2tWWO6c0chL2Ibf9YL1BRVs/oB X-Forefront-PRVS: 0799B1B2D7 X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2164; 23:y3wgJaovL5knyTHEPLR/TXG+QBSNsmgceGjBn0cTsSO1xOZU15jZHBlkxoagIqUd9IjeEQQktV7vActbfkTSL90X8YBlf7LpDs0CqUV1FAcnIrOe5LwXXMDhtqSbKwRkU6jK/hcsr+Q1trIeZv7bVflSi4yLwgWGfJZrsXyvartNZfbu2RzbmeqFSFbmU6DapR3nKGVPgIzsEa6379SfKCIDQopzfigMCuCuuXvf6dOuGP93iPy6awC1SVUPy4z7zuAY3lPrywDx1ycyi/NmHWq1NFmjyzEXlTLOwyFtakVSs2Rqg5fsXtcLrpNTaAWzSYikr9yOlX2xnr2TA0tR0t+1RBFpq8y/mdGZFn9QA90nxGKZzd7pbQKoDxpHYYBWL1Vvi7aOq10F0cK9zH7YY0NT1gBn6OAGNSoFm1K7iWmB0Bg+I18D9f+M/YaO4VPsjQcYF3ut9+xgd0Zqyooghm9wlvlzgzv+dClj1KQJtnHIzSnXyTows9yhtiOfFjc0XhGVVLJfH2C/tiz9WODSoSeS07ujO+JaZXg1bfArV6ql+50V1aZ1Bnr2HffHmHVKMTKGohfgapzMkcThc9ffn5VnvKMVMXQxgUO4Wryxn3ylIz34PxXtB26emvjhIbv58yTFFUjhN6LEXbYDMWaBWH2OQ6yPwYsXMNmLF1QNwZmdj6R1DaWJVL3zbW4JRyV97O1fhq4CmGbmgBeGj7Xzz1VmFpaNEACqvF8W/ZH/XYhKlKBsAwpRtvq1ai26u+dILR4CgGLv7kfcJ4G9CWzD7KNjAZZ9/h4jIgQlDwAuRouTerFUgX5uKxwQ8h04XHJlWbae61/KDR1MxBVSXhQYgSFIZu3aVNDcmRYTKBCd7s0Tf8lUmWlLBObcwwNwL4CYqctM5YmSk5QDwxjQHXVzCKkTnLBlQdY7QYH5tuxqS6ZEGsvJzopwG0oUkVyEFG3/w8yGOtfRBvSdLVnkm9CXk5aKlW7SLRe6lMU+qf9xPvFNm2vvZQN1obWHzWrJPu04OMzyZ4hGI9O4SDHOC/3l1A== X-Microsoft-Antispam-Message-Info: nYgaNn6VfAwitIGiIRzdB6ZFa8RSk608mcgFkzPZQaNuOyXxvFXiYVtXToV9BPz+m8j9Fl6DS46Ow7nAvyBCGqZN9Jq5dKnevXZFxjhGaT//szKdg9QSuA5dXjQ14ggAC0XR18kii/AwNSlm64CymbZkb4BV5LCpxLwG8FqTNM1MMzTfvZkw31rdW5zzUD60mE9kAuw7ZGQx7C9nmRYsi1n8XCiJoiEpgnFDXxSzUqMgm/HBqEaWlWiG28u7jCuuvjZefD6qF765XCTz+c55Rl6XWmsxkP3LryM+lI1jpNa6X/TQRNPi1Tckj0hzRbFLQTkY5esfitEo1qpBZIzhwxynqp47fJJT7ClyOYY4aaWygioXh2R7FqCOS4YNgH/AzZKGHDf+4PHttWxPQdA00w== X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2164; 6:gICX7xQMItlOIXV5WmI/GdRFbBcbolGcv7Gz1vx93MHT7pUEv1EZLMcRbkGCNVLMyPgsw3kbWjUB5KfS93HZhdneSrijha9MsVpSTOXCOV318E5s/glP/sAqqOliX54RszwjbtUEHEx/dedNnsq326fILvK2R6CLmwFjs4vXJt8HGG8gkh/5WR3n06UzWicfqTDO4PSt3hlET56STX1fH9a7cZkEs2naHThw7cl8J+Pkhg6ZW4oFtqXT58bJNREFdWf6BLOesHqWgKybSuJ5R+y6w7Lnl+XjEJoAO04AG0P9pjNKExd5h6I6a1/hD9wGGBgpRfVTyZGSrs+DIaf7J6G0aGIeXSZ8ht/lDlMk3vLgAMhLmaZRaT2PBeEQipKxDm6k63i6YkI7gVmkCZHnCJ1OrQXF06EBCmWElGH6jts3Nhs26BqmX7/ObluL+1hwQI1ouocK9tW0bIkCCZB7eQ==; 5:5D+0AkM5uhwrwnN5zRYugY4SSdt18NYRbZ1awgx7Rkk2+iNLcMc6XrWnwkafEynNeEKyQR1wJsZSyvVfaC2RG811SqvuosjT1R26MAGMAz/8QhHoc9cDshSD9HesRI+/Y2DX7EDEOk8OVHlRhIo3Gu3OomfvdO/Qgs5lFJqt81A=; 7:L11YQRz4IH/WTPMu3qzoPTpAy9HNAbw4Mk/UzF/9+bMxRO/EFRs3yyws22UjgJA5gTpZXspXVn3FtS4KJVZTuFjwJuQXqccNM/pfrSLWaAXgBtP42g1K+W7KM6GoSRuwaPGfNbm3eHS0ptZ/G6uxhhzGxAa4zpoggtN8seq0BkFaRTC5yxIuhhWMKHWWrElgHs0fdRFYc2tjyqdHu3iI+vlRKVbr0aGGORpumO0FOWB+9+oGQbee+09ReYRVqdbW SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN4PR07MB2164; 20:DlJmm51QW6eYM4RnTSnA4yBqIAntYd8qN2oi//V2ATHM0BNX0pfiPrVdH3hixViVK+jaOeN9fkDtaxwLuKpR8Q2L1Z52yVjXxBjhGBM2ubXqW6L02F89fJHKU+Ntl4+HeBDLyznftglUD8SHi0aZs5fAscBSNbioDWxL0OnKj8qG82mrIqDc5owIrAOOsuhc3kWXAZC6cqnPsX2JzlbyYu52C6njycZpNkf9ZaNxQSOeJwhAbsuNtgi5JDxmtQlV X-OriginatorOrg: cadence.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Sep 2018 15:22:13.0597 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8cddaeea-17d8-48cc-e6ad-08d61d7a8271 X-MS-Exchange-CrossTenant-Id: d36035c5-6ce6-4662-a3dc-e762e61ae4c9 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=d36035c5-6ce6-4662-a3dc-e762e61ae4c9; Ip=[158.140.1.28]; Helo=[sjmaillnx1.cadence.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN4PR07MB2164 X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 a:mx-sanjose2.Cadence.COM a:mx-sanjose4.Cadence.COM a:mx-sanjose5.Cadence.COM include:mktomail.com include:spf-0014ca01.pphosted.com include:spf.protection.outlook.com include:auth.msgapp.com include:spf.mandrillapp.com ~all X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-09-18_06:, , signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1809180154 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org Add set_msix and get_msix functions to driver, and handle PCI_EPC_IRQ_MSIX request in raise_irq. BAR4 is used for the MSI-X vectors. Signed-off-by: Alan Douglas --- drivers/pci/controller/pcie-cadence-ep.c | 129 ++++++++++++++++++++++++++++++- drivers/pci/controller/pcie-cadence.h | 7 ++ 2 files changed, 135 insertions(+), 1 deletion(-) diff --git a/drivers/pci/controller/pcie-cadence-ep.c b/drivers/pci/controller/pcie-cadence-ep.c index 1248d75..dbe76ab 100644 --- a/drivers/pci/controller/pcie-cadence-ep.c +++ b/drivers/pci/controller/pcie-cadence-ep.c @@ -16,6 +16,7 @@ #define CDNS_PCIE_EP_MIN_APERTURE 128 /* 128 bytes */ #define CDNS_PCIE_EP_IRQ_PCI_ADDR_NONE 0x1 #define CDNS_PCIE_EP_IRQ_PCI_ADDR_LEGACY 0x3 +#define CDNS_PCIE_EP_MSIX_BAR 0x4 /** * struct cdns_pcie_ep - private data for this PCIe endpoint controller driver @@ -255,6 +256,65 @@ static int cdns_pcie_ep_get_msi(struct pci_epc *epc, u8 fn) return mme; } +static int cdns_pcie_ep_get_msix(struct pci_epc *epc, u8 func_no) +{ + struct cdns_pcie_ep *ep = epc_get_drvdata(epc); + struct cdns_pcie *pcie = &ep->pcie; + u32 cap = CDNS_PCIE_EP_FUNC_MSIX_CAP_OFFSET; + u32 val, reg; + + reg = cap + PCI_MSIX_FLAGS; + val = cdns_pcie_ep_fn_readw(pcie, func_no, reg); + if (!(val & PCI_MSIX_FLAGS_ENABLE)) + return -EINVAL; + + val &= PCI_MSIX_FLAGS_QSIZE; + + return val; +} + +static int cdns_pcie_ep_set_msix(struct pci_epc *epc, u8 fn, u16 interrupts) +{ + struct cdns_pcie_ep *ep = epc_get_drvdata(epc); + struct cdns_pcie *pcie = &ep->pcie; + u32 cap = CDNS_PCIE_EP_FUNC_MSIX_CAP_OFFSET; + u32 val, reg, tblsize, b, cfg, ap, ctrl; + + /* Check that the BAR has already been configured, and is large + * enough, and fail if not. + */ + b = CDNS_PCIE_EP_MSIX_BAR; + if (b < BAR_4) + reg = CDNS_PCIE_LM_EP_FUNC_BAR_CFG0(fn); + else + reg = CDNS_PCIE_LM_EP_FUNC_BAR_CFG1(fn); + cfg = cdns_pcie_readl(pcie, reg); + ctrl = CDNS_PCIE_LM_EP_FUNC_BAR_CFG_VAL(b, cfg); + if (!(ctrl & CDNS_PCIE_LM_BAR_CFG_CTRL_MEM_32BITS)) + return -EINVAL; + ap = CDNS_PCIE_LM_EP_FUNC_BAR_APERTURE_VAL(b, cfg); + tblsize = fls64(interrupts * 32 - 1); + /* Need (1<pcie; + u32 cap = CDNS_PCIE_EP_FUNC_MSIX_CAP_OFFSET; + u16 flags; + u64 pci_addr_mask = 0xff; + u16 tbl_offset = 0; + u32 bar_addr_upper, bar_addr_lower; + u32 msg_addr_upper, msg_addr_lower; + u32 msg_data; + u64 tbl_addr, msg_addr; + void __iomem *msix_tbl; + + /* Check whether the MSI-X feature has been enabled by the PCI host. */ + flags = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSIX_FLAGS); + if (!(flags & PCI_MSIX_FLAGS_ENABLE)) + return -EINVAL; + /* We want local address, not address on host. Table is at offset 0 */ + bar_addr_lower = cdns_pcie_readl(pcie, + CDNS_PCIE_AT_IB_EP_FUNC_BAR_ADDR0(fn, CDNS_PCIE_EP_MSIX_BAR)); + bar_addr_upper = cdns_pcie_readl(pcie, + CDNS_PCIE_AT_IB_EP_FUNC_BAR_ADDR1(fn, CDNS_PCIE_EP_MSIX_BAR)); + + tbl_addr = ((u64)bar_addr_upper) << 32 | bar_addr_lower; + tbl_addr += (tbl_offset + ((interrupt_num - 1) * PCI_MSIX_ENTRY_SIZE)); + tbl_addr &= PCI_BASE_ADDRESS_MEM_MASK; + msix_tbl = phys_to_virt(tbl_addr); + if (!msix_tbl) + return -EINVAL; + + msg_addr_lower = readl(msix_tbl + PCI_MSIX_ENTRY_LOWER_ADDR); + msg_addr_upper = readl(msix_tbl + PCI_MSIX_ENTRY_UPPER_ADDR); + msg_addr = ((u64)msg_addr_upper) << 32 | msg_addr_lower; + + msg_data = readl(msix_tbl + PCI_MSIX_ENTRY_VECTOR_CTRL); + if (msg_data & 0x1) + return -EINVAL; + + msg_data = readl(msix_tbl + PCI_MSIX_ENTRY_DATA); + + iounmap(msix_tbl); + + /* Set the outbound region if needed. */ + if (unlikely(ep->irq_pci_addr != (msg_addr & ~pci_addr_mask) || + ep->irq_pci_fn != fn)) { + /* First region was reserved for IRQ writes. */ + cdns_pcie_set_outbound_region(pcie, fn, 0, + false, + ep->irq_phys_addr, + msg_addr & ~pci_addr_mask, + pci_addr_mask + 1); + ep->irq_pci_addr = (msg_addr & ~pci_addr_mask); + ep->irq_pci_fn = fn; + } + writel(msg_data, ep->irq_cpu_addr + (msg_addr & pci_addr_mask)); + + return 0; +} + static int cdns_pcie_ep_raise_irq(struct pci_epc *epc, u8 fn, - enum pci_epc_irq_type type, u8 interrupt_num) + enum pci_epc_irq_type type, + u16 interrupt_num) { struct cdns_pcie_ep *ep = epc_get_drvdata(epc); u32 link_status; @@ -384,6 +505,9 @@ static int cdns_pcie_ep_raise_irq(struct pci_epc *epc, u8 fn, case PCI_EPC_IRQ_MSI: return cdns_pcie_ep_send_msi_irq(ep, fn, interrupt_num); + case PCI_EPC_IRQ_MSIX: + return cdns_pcie_ep_send_msix_irq(ep, fn, interrupt_num); + default: break; } @@ -430,6 +554,8 @@ static int cdns_pcie_ep_start(struct pci_epc *epc) .unmap_addr = cdns_pcie_ep_unmap_addr, .set_msi = cdns_pcie_ep_set_msi, .get_msi = cdns_pcie_ep_get_msi, + .set_msix = cdns_pcie_ep_set_msix, + .get_msix = cdns_pcie_ep_get_msix, .raise_irq = cdns_pcie_ep_raise_irq, .start = cdns_pcie_ep_start, }; @@ -501,6 +627,7 @@ static int cdns_pcie_ep_probe(struct platform_device *pdev) } epc_set_drvdata(epc, ep); + epc->features |= EPC_FEATURE_MSIX_AVAILABLE; if (of_property_read_u8(np, "max-functions", &epc->max_functions) < 0) epc->max_functions = 1; diff --git a/drivers/pci/controller/pcie-cadence.h b/drivers/pci/controller/pcie-cadence.h index 4bb2733..946f6ee 100644 --- a/drivers/pci/controller/pcie-cadence.h +++ b/drivers/pci/controller/pcie-cadence.h @@ -52,6 +52,12 @@ (GENMASK(7, 5) << ((b) * 8)) #define CDNS_PCIE_LM_EP_FUNC_BAR_CFG_BAR_CTRL(b, c) \ (((c) << ((b) * 8 + 5)) & CDNS_PCIE_LM_EP_FUNC_BAR_CFG_BAR_CTRL_MASK(b)) +#define CDNS_PCIE_LM_EP_FUNC_BAR_CFG_VAL(b, c) \ + (((c) & CDNS_PCIE_LM_EP_FUNC_BAR_CFG_BAR_CTRL_MASK((b) % 4)) \ + >> (((b) % 4) * 8 + 5)) +#define CDNS_PCIE_LM_EP_FUNC_BAR_APERTURE_VAL(b, c) \ + (((c) & CDNS_PCIE_LM_EP_FUNC_BAR_CFG_BAR_APERTURE_MASK((b) % 4)) \ + >> (((b) % 4) * 8)) /* Endpoint Function Configuration Register */ #define CDNS_PCIE_LM_EP_FUNC_CFG (CDNS_PCIE_LM_BASE + 0x02c0) @@ -93,6 +99,7 @@ #define CDNS_PCIE_EP_FUNC_BASE(fn) (((fn) << 12) & GENMASK(19, 12)) #define CDNS_PCIE_EP_FUNC_MSI_CAP_OFFSET 0x90 +#define CDNS_PCIE_EP_FUNC_MSIX_CAP_OFFSET 0xb0 /* * Root Port Registers (PCI configuration space for the root port function)