From patchwork Wed Jan 31 00:45:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1893175 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=Cih+Wo82; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=147.75.48.161; helo=sy.mirrors.kernel.org; envelope-from=linux-pci+bounces-2846-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org [147.75.48.161]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4TPjyc72w0z1yQ0 for ; Wed, 31 Jan 2024 11:46:16 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 219B9B2263C for ; Wed, 31 Jan 2024 00:46:16 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 15070A29; Wed, 31 Jan 2024 00:46:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="Cih+Wo82" X-Original-To: linux-pci@vger.kernel.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2040.outbound.protection.outlook.com [40.107.20.40]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 020BC376; Wed, 31 Jan 2024 00:45:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.20.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706661961; cv=fail; b=oBLAEudnEWxed7xVp60zwVVA/waeowaw+v2obbNPzV+BFmigju6A1ghpVic8TVqzNDrSjQE9eRk7Dc7MU1guFijnM/wX004EiJFlUAlDS7CQnefHFfxkOkVmhCTDRToyIi7MF6OBxXwTCCSRUnWXL5s33aRvNEa4BkVZZDhko0c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706661961; c=relaxed/simple; bh=Z26ijTWu9kklFNv4mpRxio96+rSVE8fsb1NKDPiRJ24=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=MriQqIBROSmHYoyppZbw9Nv/7WhO7sBNYVO6PnuhJZ2dEHc1ujCsPyLWnNL9wgP3yX3PVtcTZteeBuG8LhYr6Kds47k5UX3TQKz5eQJBPhdeMW8ztldddvIVBA/qt30DuJcvLkkQ5HAEG++guXCat5JB+GpGQREZFblgXulPiKE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b=Cih+Wo82; arc=fail smtp.client-ip=40.107.20.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XzpcGAuvmA1BtySWm4gjM/FBGtywz+7LRK2BSWTmFde2pP3SSYyYsXAvWnKNTUCee25sMYmk0x+cqy+LesYxQdPURwr2R6L9+PYqK+elmNhiHsK2eDRmgqfjJ3EpujSl9h4YU4KcN1Hv/gEgNoY7fMHjmn7TJkgDXQnXPQm6CtUhZuErVAtiLdMvoWhdUFAOeCssTaM0vAe9372CiU9ZjPGLnX4avnnU0AVGut3bbxVwapi7bpsGCOfQZ4xj3AL8a4soG7rPf0YFvsC6qqm+s1lhC1JnpIjPjwx/Y3+TyGNbCARqOeC9MDtrLunijQVo3z/eXL7aw0y1ZVBaH9XJeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=EBW2xTui5wC0cl8OR4//w42EY7bam5XH3e1go2MU8so=; b=fLr+GfG3r5HFhic22SM7mSOgeO0rdrb9oI4sJJAmSa0DCUEtEz9pYjaElx8MSB45bcJpuONknhMyZLdJoLCXHShhBiyXtfuZJeUKggnJ7DpsrIwneyIsXXnGklAbBk+3o3iWq7PhGZsjJAhpDVoIjeqSSHVpUKbTuXBwVmW6CqH+2ZZW7uyh94Nu50YEAJD1AvKQGQEQkofVyTTqpBuygzhosUhzGLgKiMyb3kyN9MUvWMen5OjDyo0ZDD73xuxwmcbk4wig0qFD3/Rb1ZkoUaVXBjRCfmLEXLRCUMel/7JCsj/ENoEJpSDKaoDMcl1yl/L2lFeXVk3NpXNcTtwimQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EBW2xTui5wC0cl8OR4//w42EY7bam5XH3e1go2MU8so=; b=Cih+Wo82sCvkf9dCL8vhC0qXUhT6Id5RFn/sBiMSFruEhTbj4mhP3cm1K8iBmRy2+dobuCdorMaT2Brk71jMPZC3/JC20a5NduHQWGDny3MTv4QNVJJ2J/J1/PppN2xI9eixospxH43IaF8oBn28A+JQ8BFk8TVPBve9fHCYKJc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by VI1PR04MB6877.eurprd04.prod.outlook.com (2603:10a6:803:131::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.34; Wed, 31 Jan 2024 00:45:57 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::c8b4:5648:8948:e85c]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::c8b4:5648:8948:e85c%3]) with mapi id 15.20.7228.029; Wed, 31 Jan 2024 00:45:57 +0000 From: Frank Li Date: Tue, 30 Jan 2024 19:45:26 -0500 Subject: [PATCH 1/6] PCI: Add INTx Mechanism Messages macros Message-Id: <20240130-pme_msg-v1-1-d52b0add5c7c@nxp.com> References: <20240130-pme_msg-v1-0-d52b0add5c7c@nxp.com> In-Reply-To: <20240130-pme_msg-v1-0-d52b0add5c7c@nxp.com> To: Bjorn Helgaas , Jingoo Han , Gustavo Pimentel , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , imx@lists.linux.dev Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Frank Li , Yoshihiro Shimoda , Serge Semin X-Mailer: b4 0.13-dev-2d940 X-Developer-Signature: v=1; a=ed25519-sha256; t=1706661950; l=1517; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=nE4jamYScnOg48L0dd/XRhLRFGfRIOfGIfMx2QdWz0Q=; b=RqwGnuCNaXST5/Dit4b0X6oAf7e1wjFwvVNSezKlg6vlCFQgmQBP4G/DcUDf0QaWrx7cN+NHv QMvL1X/bFNoAQHjhaSbCyGF+yMOnBiBUisTkXeE20YgwZtZNCA6NfZ/ X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0225.namprd03.prod.outlook.com (2603:10b6:a03:39f::20) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|VI1PR04MB6877:EE_ X-MS-Office365-Filtering-Correlation-Id: 465de1ed-765c-408a-382c-08dc21f5fd00 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DW9BFTyQn6C8ABo9KG08meeN59qHKOb3kZR9wKWdZFv74yCql66DaqWo59iWwhafqFwcTue2Qny+4SEJmvo6DB7ENjvyg6d/n6aYj2P4Nhk/f1prGBXIlE3CmXj/nplc+6B86qHppBac9ybmPibv7PLQw2+oo8lCp/HGTQmW3rEPhaAU15AUEs43hhtmxYAF1kKRLQQVIczrF8ZLV5AHS4Wz3QayDKtcKVj8r6eEOouP7yvdY79PQCRxISga0JmpgxfGjxWuigAyOnPOgi+XOLQZmc+iIZqffkELg8xuOOnCTQ98d2OqwF4Mu3Vu6kxflrQf0c44aYaG90EpYM0ow/pYrFy2LQVsNqRea7Qz6T6SpwXC6zeu44+GKbiNr8psHKlyG7uObS7Hc/IHWdPAxG2NwuNCXzME42BcdENZf1JM2KgiiKOyrV14OY6tT7FV+6OH6K+RqIDqpeCE7FkUqftHs14623frS4W8BG/rAZvSKJ4XO5TJr0zPjvzvRsbaFldup9Ainc6ywewjnLORYkLnpZJf88S6je19GC3Oid7V116aB4AAojwptRylabpNTb0c4XNZn3x0LJhY1wGacly2S0D3K9H5ZcEBACxmEvc7eqKY6HwYqEOUWcvaRbR8CzKl8pmtHoZ95WMa6E5S8Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(366004)(346002)(39860400002)(376002)(136003)(230922051799003)(186009)(64100799003)(1800799012)(451199024)(41300700001)(921011)(26005)(36756003)(316002)(66476007)(38350700005)(6512007)(52116002)(478600001)(83380400001)(2616005)(6666004)(6486002)(6506007)(38100700002)(86362001)(5660300002)(7416002)(2906002)(66556008)(54906003)(66946007)(15650500001)(8676002)(8936002)(4326008)(110136005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?gqbNkNYTH5Zua2wH+jx0eJdsAqp8?= =?utf-8?q?FXocg5IwDAxY2w05mLNISWuDManFU7pNPPYJVHZ9OIDCJxVO+D0Si8WHkybYU7OoA?= =?utf-8?q?kVKt9JnmL72zpn1Ds/jZ51fH3wQwnU1EAgykcuTmRZ2Ms5KB3RCwsjqa8ZbIZoLuD?= =?utf-8?q?2abKfZ6YAXwlwieMhZaqj+2XxgayDodaMKHVnToA/DIEisAZoMd3wAcfag26mdJq5?= =?utf-8?q?pKyUpnNQDKTnumFZoivmzrOq9uGWlyvTuburr35eRGdr+LiRLFZzUkbgFjGItfBTz?= =?utf-8?q?idP1gfD/++452vpMafZPlL0w2Bm35DDm4Izxk3vkRdK3HAlzlvEcd+bl6L1dfMmWV?= =?utf-8?q?FcY8L6fMXF2NRZ5fKQmY9cGqAn9baw5Lzaio+UddLMh4JcAv8B9Q8wZIqXXlRhPvT?= =?utf-8?q?4L3cScGof1s8q8YgLQoi9HJNr95TP3jk9CeQJ+6GASebPjLcif6Y0C+kd4HJFQzk/?= =?utf-8?q?kxe95wxS85psK26B6F+pasnzWWZUZ3dAWbC14Yv+J1Pe/bNI/vdPNgsdkKGjcdCzK?= =?utf-8?q?h5diFPq+UM5Q4frvY8jasmDOZCSaZkWoXk5XuAVITK+obejCiU5ZexUMhEpV3eNz+?= =?utf-8?q?zoKfj9aMBRpGcgqy1Zl1wVAcx91y2+CfONw0pTeXAMTJQkVIT1XdPF458kWgCZnc6?= =?utf-8?q?YMOUXUlsCpNZAe8J4DC9198/y0iBd3wgln6aaSh/v+BOOOjgdPJFYEBAIB3b48wnQ?= =?utf-8?q?QvSB60sbIUPnDvAST+/y42aWN/YZ/jseSsnd+AapAv2A9q+dBTqyR5+OjPsV5KgNf?= =?utf-8?q?W8R5/oA/CggMGiIZrBRyQr0bajMRhnUjCqJ8Jgnv3A/SRA14B8pTMeB0+fq30Yirn?= =?utf-8?q?qPxAB3Lz2eev2j95HnemhJX8A/Dvaon/7YUE45iZEWCGSxG21jtVcQrWPvncHvXLz?= =?utf-8?q?qG4RpLymxns1trJuIiCJw0IHwUJIyJpf8dYKaKBYsajg/2IUu2QtbL/5ICx2Zhl0S?= =?utf-8?q?+zVIGXyI+ewKY1eHuEFPQfx+Brk7cwKBmGw+f8yECWQvP5MLJDX+ilJydzrvA88G1?= =?utf-8?q?yy2xTfLpreujTBS3710GcGGHLcO1jD67R8RihH9Fv8EVZsxJ9PIHRJs04zxy4QLTs?= =?utf-8?q?7Q5Cl01aLH9qTyTy3Q9w1UbCMWAo4pgwT2gET7Gu8qBDEdhD8I0DqY0ioahgtCR72?= =?utf-8?q?KX/R2G2YxM52aUiN+1Tg4ieVMGkCh2NdwzoRP9cUJ9e9joP7lax+sytZvOVTuBLeY?= =?utf-8?q?ivw85ibWxJxtY/teTaJf50BFYfc0p4Zxk/i1y7MXE1Sa6UJC+ZOPiI3G8W9ZBwRKA?= =?utf-8?q?YjkZb8BuG0nJfy8HbC3GQMYFUAE6vo9NULaC44HPOXfpq0ZceNkbJcPFBB0DnwPbD?= =?utf-8?q?0vWztF3TdpNd6ZXmx5orUs3YCIUZS6lMTXm+KeFZ2wXoKYoKE/MSq4q8h1ePIWAvN?= =?utf-8?q?EiOUHWNbrH2GYUvkrjKOSz9vz/yMvJGbrL0D5o0HMBBK/jqY8Br7AYUw+V0smRAUO?= =?utf-8?q?cczaG1GEmJ1+ps25sAfYrLKWtihjZdq3UG2hENh/g+JnzsTfI2aNisSZiPXeFOKf+?= =?utf-8?q?7mKeLucf6Hl4?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 465de1ed-765c-408a-382c-08dc21f5fd00 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2024 00:45:57.5901 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /mC4l68TIXkZWUUkudpz0K3m4N3CMmP4M/VRJsyY5NQIVziVPjgPKlYMX8NdhI0RyZW/FYZl2VBtHrzE7bM7KQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6877 From: Yoshihiro Shimoda Add "Message Routing" and "INTx Mechanism Messages" macros to enable a PCIe driver to send messages for INTx Interrupt Signaling. The "Message Routing" is from Table 2-17, and the "INTx Mechanism Messages" is from Table 2-18 on the PCI Express Base Specification, Rev. 4.0 Version 1.0. Signed-off-by: Yoshihiro Shimoda Reviewed-by: Serge Semin Reviewed-by: Manivannan Sadhasivam Signed-off-by: Frank Li Acked-by: Bjorn Helgaas --- drivers/pci/pci.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index 2336a8d1edab2..fe42f5d10b010 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -22,6 +22,24 @@ */ #define PCIE_PME_TO_L2_TIMEOUT_US 10000 +/* Message Routing (r[2:0]) */ +#define PCI_MSG_TYPE_R_RC 0 +#define PCI_MSG_TYPE_R_ADDR 1 +#define PCI_MSG_TYPE_R_ID 2 +#define PCI_MSG_TYPE_R_BC 3 +#define PCI_MSG_TYPE_R_LOCAL 4 +#define PCI_MSG_TYPE_R_GATHER 5 + +/* INTx Mechanism Messages */ +#define PCI_MSG_CODE_ASSERT_INTA 0x20 +#define PCI_MSG_CODE_ASSERT_INTB 0x21 +#define PCI_MSG_CODE_ASSERT_INTC 0x22 +#define PCI_MSG_CODE_ASSERT_INTD 0x23 +#define PCI_MSG_CODE_DEASSERT_INTA 0x24 +#define PCI_MSG_CODE_DEASSERT_INTB 0x25 +#define PCI_MSG_CODE_DEASSERT_INTC 0x26 +#define PCI_MSG_CODE_DEASSERT_INTD 0x27 + extern const unsigned char pcie_link_speed[]; extern bool pci_early_dump; From patchwork Wed Jan 31 00:45:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1893176 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=kMgZykTm; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org; envelope-from=linux-pci+bounces-2847-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [IPv6:2604:1380:4601:e00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4TPjzB4f2wz1yQ0 for ; Wed, 31 Jan 2024 11:46:46 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 063A41F20FFF for ; Wed, 31 Jan 2024 00:46:44 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DBAF5367; Wed, 31 Jan 2024 00:46:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="kMgZykTm" X-Original-To: linux-pci@vger.kernel.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2065.outbound.protection.outlook.com [40.107.20.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6B5F94A33; Wed, 31 Jan 2024 00:46:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.20.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706661966; cv=fail; b=aVPF9Um6X4LxdJW8+iSED9/u+vIzWPyvh+ER75BrNhG0WzUg0OuRx1RPXERpH8QmAARNJpB0tbGrzBZHcP/uMqcPdd0MNS/SdsJ7pX0qhPLuVtwcxzTX6blILSeSHXqBaXpFA1c13lw0XDOCd4vp+dYcvhB+zOrBJUFuIexC0Pk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706661966; c=relaxed/simple; bh=hzGYRhAZl9U+Uvuu6aIidx5j0fhBAx2klPXN/eaV8Q8=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=JlkNjlRWgLmqao/cK3BxyEgztpCce7gMjekmr2cZN9mjZFbLYQOrV35kTGCwkJH2zJxl8fr0UtKKbZerb/ZBGnHVNe4oiqyGUUYZngror9TF+mcockVjj3euXKTazdY8jTozUs1hAHXbBzJ+b4eTD80K6hJTnkur4mmHw1m/PLI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b=kMgZykTm; arc=fail smtp.client-ip=40.107.20.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FeXB2E73uUZfoBlnbSmiDKF3tBUG3+ttadmx97mp+wcb3AeoWJta47OFImf0MMXVEqBLJVQJNfL5Od4UUgSp/6Sf57YwZCffruwYY9xqQ21NVix2pXqb6xa8ZShgI2orqcKmikSbYI4gmTRjPWnfitn88Y/cEQIGre1GvwXJTHUibqW88DmenJOI3E67Cdt0TBNGy6IBGWETt0KE1FNAO9TekgRdJ1Gqme0mAXijPeRGCCwcIICGncIkaN7lYRle8TdD1HbvZVXBEaF4L6xg9XM5ARh08p44Hy0mgEEB/WcUdlKAKB3q1l7QRU6M3a68GlDrK9EFdBmeZbmWT1/FYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0z4U3sEC3khiRNkm46MPnkPrIySIybGo6ofqvEZ86Bc=; b=KeBlZR0FEuI9kaV2z4RrLUV0KhtIhiOKszIL3Lf48Kz8mf0Zh2AD6PSdibBkW4r8z4jIILLaXrDHLF2tcoNaY2taaAH8qrsHkByDkxEBDnE9rMPtdiGriEPF7edjN/ZB7r1J//v0yHyNMYCJ9O0cMdCBndrD28VNaBfftBPasjfpEfMrbvML52s4PhpoeqJYUTe4FOKfmw9CwQ68bXz3qUdFXGsdYeNMv1qSO0BL5uVpp1L9oOKQx54qLINKEStX9u9+ZNIkzj+JETv3Tsa6OiOumyUFZwGn7QLDIDtxXcjk8hb649L7joWdV+4WwaGEv9zLPlliDVcR9ZRdlh260g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0z4U3sEC3khiRNkm46MPnkPrIySIybGo6ofqvEZ86Bc=; b=kMgZykTmZZB1s6ycWGgYccfBI+zzf0jl46gHRAsrfYFowrGdqS94ML5SwHf9vN5kJrMqcMTOP8AJn7kz76tIkClQoLaBCv2blRglIRM1dSNMiBFzcfUilEqIUk9RubX4WbgE03rpmUnnNJrj6aoYI+H0f5DnHaqjDLHs1oXqXZI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by VI1PR04MB6877.eurprd04.prod.outlook.com (2603:10a6:803:131::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.34; Wed, 31 Jan 2024 00:46:01 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::c8b4:5648:8948:e85c]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::c8b4:5648:8948:e85c%3]) with mapi id 15.20.7228.029; Wed, 31 Jan 2024 00:46:01 +0000 From: Frank Li Date: Tue, 30 Jan 2024 19:45:27 -0500 Subject: [PATCH 2/6] PCI: dwc: Change arguments of dw_pcie_prog_outbound_atu() Message-Id: <20240130-pme_msg-v1-2-d52b0add5c7c@nxp.com> References: <20240130-pme_msg-v1-0-d52b0add5c7c@nxp.com> In-Reply-To: <20240130-pme_msg-v1-0-d52b0add5c7c@nxp.com> To: Bjorn Helgaas , Jingoo Han , Gustavo Pimentel , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , imx@lists.linux.dev Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Frank Li , Yoshihiro Shimoda , Serge Semin X-Mailer: b4 0.13-dev-2d940 X-Developer-Signature: v=1; a=ed25519-sha256; t=1706661950; l=12761; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=HU4ER7vz+HwzR2rHdE/BVWAKQXG5UmDhW10DZ8OHeTA=; b=9CXDVpgObhAZ8p/yaymBx5lNUAbW1i85G12lw7ObrzpFIVj9JgKgHuAjYWs2aidhcK2A6S/Wn AolpvJjqQ5pCXUgpiK5k0Hk1KTqt2cmf7WWn0458/gbeXxPAOje+rA6 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0225.namprd03.prod.outlook.com (2603:10b6:a03:39f::20) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|VI1PR04MB6877:EE_ X-MS-Office365-Filtering-Correlation-Id: d3154114-670b-43b2-1616-08dc21f5ff43 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZCtCCnYf/ON1MLpmUhH8uCaRAvsLZZA28uJo1g+3Q+GfbttHhTNavNpIP3LpqGfAQIRCLJSvNkqX+DGoaYqOHp4UVNco/GKjGoXCW9mGz8CGtEniXqE6ThpSJFaj4kKh+HKwtletCqGgAWofRyYH5fuCOEqpOCrvhqKVmtXXf2HsXkFvuOWB2+tDVTrYFCSaR+y9XvimwhKTEx5rx8tfMC2bPKQvCRThjaAc25kmRHKn8Zb0X+yVCbYLP/dhwkafN943fLEYYMNgPausHZZi7DA1NTBeUcd8hZOoSW4WRMSL8y3j0tt3Vwuuu6NEhRfrECElDvdxim0eWcSSDF4/b8h101Fw2dyh0dTH8q8OPuvOZJ2qsn0K3/3KOifr9lNYBsW1XLLoh5pc/YL9VNnWw0u/upLhWNlbZT6b7muyIqwm/fvdjmvsDT70V5s0X76VTRPf3BYSM7zTiw6GJONWT/14dP4S8TDU0eU7xjQgBb/enqtec7CoMb1j569SLjh/dsogheiqGbj7z88+adV59/672TSQBqIpOJQjNg7c6mdBG5GzGfhGqn4gRsjGzp4tL/CMCOmhSnn/EU/LBBblpF/MbyEY74JwvrfQBQIhETW+vqAOpFNTkf7s/bgFZKJ0RF68ofZYSSP4umhYWZisuQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(366004)(346002)(39860400002)(376002)(136003)(230922051799003)(186009)(64100799003)(1800799012)(451199024)(41300700001)(921011)(26005)(36756003)(316002)(66476007)(38350700005)(6512007)(52116002)(478600001)(83380400001)(2616005)(6666004)(6486002)(6506007)(38100700002)(86362001)(5660300002)(30864003)(7416002)(2906002)(66556008)(54906003)(66946007)(8676002)(8936002)(4326008)(110136005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?KGtOTllAAiKDINmUZN3YcvA8JC8r?= =?utf-8?q?UJ024kvnNUYZF8rkswwQXCLQsG7Wt5jcpr5v1QEKDtFA4+nZnZ6Ncp10QDu4/Pnuk?= =?utf-8?q?kWSY8qltgiOEuSysa27kPi07kK6NVLL/+0E4HYP9XPrPKsOHzh0CQJBnoZeqUn347?= =?utf-8?q?1O5pkTmxWTOeNYy83Y6d48F9CeITduePduDRmk7nJusxQ+NP4NgYOabr91I9WXEiv?= =?utf-8?q?OmgpmZJ4W69XXg4vir6AeVaQXQbRx3mGSVraIcq0g3aPUGB+CFiGkpRtXjVv4d6Nh?= =?utf-8?q?5ndenagrXUCcVCv6BY3/AUzm21VQoDnwIWGI4a0Fr0T2932+UYrdL1qkCoL0owN3l?= =?utf-8?q?yIQtY+SqMv6KLiBKL2ASFV36F2OMa2Z0JhSK3NNhPDnxrmhoBFaQJE+8QJ5bMkPvz?= =?utf-8?q?aRvYVfBEccQyLX2ZccJbPMjNUcrF9NoASc9sHcugsQu5Hm7fDt4mx36WpYvcecrWT?= =?utf-8?q?UKjFhtGtXqbmgtORaICDRWFItpX2WFWCcn+PmijRcoEP6uUrXKdkkGtqw+FOGzNy5?= =?utf-8?q?PQoR3Tj99yBK3g7may9Ylp3G+Ck68VIUGvCprB6Tg6uUBA66zNmDgsq1tcgvaxcmN?= =?utf-8?q?VWA6/0lI8YX/HVDrjcwu5iqH8xPjByuH+HEjqQDbYRpMq4C/BEkDZhzn7eg1k6kOL?= =?utf-8?q?mkU8d0RC/yZnX/WVxVvZQlMQe0bHxAgp0moUCEfz4vr0bUyTmMvyavFL11cErdCxu?= =?utf-8?q?XdFttEvPBiPw+nPWpbj4Q6Hj5l1Wu9LDlLZxcyPGYfS16cEhEO9vUZU1fxrIibQax?= =?utf-8?q?8U097oYtULTjNmTXZlOObIKtH36ICALdOWTA5ftqp5/qPtqjQVGQZ7ty+TUjp1GBm?= =?utf-8?q?RqAsRXKCRe+VWlLVl+sf7h5G4qcLcSUrJ73hIBTgy3WAwmhLtgf3ypHbNetluEabe?= =?utf-8?q?hiXQUs6uIfM+lSAQCTEuheFwqHiCprqHbOQwCPIyGUTZKdG6vBMH7OIUKKrR/OzLA?= =?utf-8?q?5+0knzhCdEU0cOlzFL1vDL09UV3ilVRijA8Y98VZ7RNsPMvTvnU4smOYJOagSZibp?= =?utf-8?q?aN+Zlb54/2jk44JDkyNEeHu91TVlbs6KogriMPMIVz+r/60VGPBF7eP1G0Aozba/4?= =?utf-8?q?Cq00b9OYfQ37UPwy7WN5yFztb1x5fn6datrNVZyvR1da2aEYPzP1JNoBZyjLIE5tr?= =?utf-8?q?iW4cUuhG0SB9jEo/YVT2ZM+mwzn1smfAgP1NbFbYdCCO+lkMF0RlG1W25PIiZNodk?= =?utf-8?q?LN6CJD/uc5KUNpWeoW8qHzHFrEGcBKtVQY1ABTBuIx9n2sQULCMzNLZV0YqCZ9oe4?= =?utf-8?q?CxX5zyOkF4/AZhy0GozhOs6J3XzKANYImSg5AV+OcPIL/8FXrG6ISL3pvQULIql7O?= =?utf-8?q?Y2rD89GHEuyAB4BCiFjyP6KqsBT1pyONelqLPukbpDgMXziCzPz9LWgVpUWMvpeQs?= =?utf-8?q?xPiX7BW5RFeUQH9UkMXX6NYSUT+ZPbJqhPvLWFaF9Wn0vuSIUoYYwx27/nl43C7Ol?= =?utf-8?q?zCU5gJjExc8EDLqBBCQc/bF4PGDYhkS080ZUocgoX0yKsA89agMHsDgDXnx5P/+Ij?= =?utf-8?q?20uXgroYzqOZ?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: d3154114-670b-43b2-1616-08dc21f5ff43 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2024 00:46:01.4193 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vr5MELiB+cTN0i9D/BCKFQuEJhHbVtE09uyaU1M9xqMPc/ApxBgPJyFaS+LtQcSxnzii9fur2sszc9P3DC3aHg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6877 From: Yoshihiro Shimoda This is a preparation before adding the Msg-type outbound iATU mapping. The respective update will require two more arguments added to __dw_pcie_prog_outbound_atu(). That will make the already complicated function prototype even more hard to comprehend accepting _eight_ arguments. In order to prevent that and keep the code more-or-less readable all the outbound iATU-related arguments are moved to the new config-structure: struct dw_pcie_ob_atu_cfg pointer to which shall be passed to dw_pcie_prog_outbound_atu(). The structure is supposed to be locally defined and populated with the outbound iATU settings implied by the caller context. As a result of the denoted change there is no longer need in having the two distinctive methods for the Host and End-point outbound iATU setups since the corresponding code can directly call the dw_pcie_prog_outbound_atu() method with the config-structure populated. Thus dw_pcie_prog_ep_outbound_atu() is dropped. Signed-off-by: Yoshihiro Shimoda Reviewed-by: Serge Semin Reviewed-by: Manivannan Sadhasivam Signed-off-by: Frank Li --- drivers/pci/controller/dwc/pcie-designware-ep.c | 21 +++++---- drivers/pci/controller/dwc/pcie-designware-host.c | 52 ++++++++++++++++------- drivers/pci/controller/dwc/pcie-designware.c | 49 ++++++++------------- drivers/pci/controller/dwc/pcie-designware.h | 15 +++++-- 4 files changed, 77 insertions(+), 60 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c index 5befed2dc02b7..27956b2a73be7 100644 --- a/drivers/pci/controller/dwc/pcie-designware-ep.c +++ b/drivers/pci/controller/dwc/pcie-designware-ep.c @@ -159,9 +159,8 @@ static int dw_pcie_ep_inbound_atu(struct dw_pcie_ep *ep, u8 func_no, int type, return 0; } -static int dw_pcie_ep_outbound_atu(struct dw_pcie_ep *ep, u8 func_no, - phys_addr_t phys_addr, - u64 pci_addr, size_t size) +static int dw_pcie_ep_outbound_atu(struct dw_pcie_ep *ep, + struct dw_pcie_ob_atu_cfg *atu) { struct dw_pcie *pci = to_dw_pcie_from_ep(ep); u32 free_win; @@ -173,13 +172,13 @@ static int dw_pcie_ep_outbound_atu(struct dw_pcie_ep *ep, u8 func_no, return -EINVAL; } - ret = dw_pcie_prog_ep_outbound_atu(pci, func_no, free_win, PCIE_ATU_TYPE_MEM, - phys_addr, pci_addr, size); + atu->index = free_win; + ret = dw_pcie_prog_outbound_atu(pci, atu); if (ret) return ret; set_bit(free_win, ep->ob_window_map); - ep->outbound_addr[free_win] = phys_addr; + ep->outbound_addr[free_win] = atu->cpu_addr; return 0; } @@ -279,8 +278,14 @@ static int dw_pcie_ep_map_addr(struct pci_epc *epc, u8 func_no, u8 vfunc_no, int ret; struct dw_pcie_ep *ep = epc_get_drvdata(epc); struct dw_pcie *pci = to_dw_pcie_from_ep(ep); - - ret = dw_pcie_ep_outbound_atu(ep, func_no, addr, pci_addr, size); + struct dw_pcie_ob_atu_cfg atu = { 0 }; + + atu.func_no = func_no; + atu.type = PCIE_ATU_TYPE_MEM; + atu.cpu_addr = addr; + atu.pci_addr = pci_addr; + atu.size = size; + ret = dw_pcie_ep_outbound_atu(ep, &atu); if (ret) { dev_err(pci->dev, "Failed to enable address\n"); return ret; diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c index d5fc31f8345f7..267687ab33cbc 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -549,6 +549,7 @@ static void __iomem *dw_pcie_other_conf_map_bus(struct pci_bus *bus, { struct dw_pcie_rp *pp = bus->sysdata; struct dw_pcie *pci = to_dw_pcie_from_pp(pp); + struct dw_pcie_ob_atu_cfg atu = { 0 }; int type, ret; u32 busdev; @@ -571,8 +572,12 @@ static void __iomem *dw_pcie_other_conf_map_bus(struct pci_bus *bus, else type = PCIE_ATU_TYPE_CFG1; - ret = dw_pcie_prog_outbound_atu(pci, 0, type, pp->cfg0_base, busdev, - pp->cfg0_size); + atu.type = type; + atu.cpu_addr = pp->cfg0_base; + atu.pci_addr = busdev; + atu.size = pp->cfg0_size; + + ret = dw_pcie_prog_outbound_atu(pci, &atu); if (ret) return NULL; @@ -584,6 +589,7 @@ static int dw_pcie_rd_other_conf(struct pci_bus *bus, unsigned int devfn, { struct dw_pcie_rp *pp = bus->sysdata; struct dw_pcie *pci = to_dw_pcie_from_pp(pp); + struct dw_pcie_ob_atu_cfg atu = { 0 }; int ret; ret = pci_generic_config_read(bus, devfn, where, size, val); @@ -591,9 +597,12 @@ static int dw_pcie_rd_other_conf(struct pci_bus *bus, unsigned int devfn, return ret; if (pp->cfg0_io_shared) { - ret = dw_pcie_prog_outbound_atu(pci, 0, PCIE_ATU_TYPE_IO, - pp->io_base, pp->io_bus_addr, - pp->io_size); + atu.type = PCIE_ATU_TYPE_IO; + atu.cpu_addr = pp->io_base; + atu.pci_addr = pp->io_bus_addr; + atu.size = pp->io_size; + + ret = dw_pcie_prog_outbound_atu(pci, &atu); if (ret) return PCIBIOS_SET_FAILED; } @@ -606,6 +615,7 @@ static int dw_pcie_wr_other_conf(struct pci_bus *bus, unsigned int devfn, { struct dw_pcie_rp *pp = bus->sysdata; struct dw_pcie *pci = to_dw_pcie_from_pp(pp); + struct dw_pcie_ob_atu_cfg atu = { 0 }; int ret; ret = pci_generic_config_write(bus, devfn, where, size, val); @@ -613,9 +623,12 @@ static int dw_pcie_wr_other_conf(struct pci_bus *bus, unsigned int devfn, return ret; if (pp->cfg0_io_shared) { - ret = dw_pcie_prog_outbound_atu(pci, 0, PCIE_ATU_TYPE_IO, - pp->io_base, pp->io_bus_addr, - pp->io_size); + atu.type = PCIE_ATU_TYPE_IO; + atu.cpu_addr = pp->io_base; + atu.pci_addr = pp->io_bus_addr; + atu.size = pp->io_size; + + ret = dw_pcie_prog_outbound_atu(pci, &atu); if (ret) return PCIBIOS_SET_FAILED; } @@ -650,6 +663,7 @@ static struct pci_ops dw_pcie_ops = { static int dw_pcie_iatu_setup(struct dw_pcie_rp *pp) { struct dw_pcie *pci = to_dw_pcie_from_pp(pp); + struct dw_pcie_ob_atu_cfg atu = { 0 }; struct resource_entry *entry; int i, ret; @@ -677,10 +691,13 @@ static int dw_pcie_iatu_setup(struct dw_pcie_rp *pp) if (pci->num_ob_windows <= ++i) break; - ret = dw_pcie_prog_outbound_atu(pci, i, PCIE_ATU_TYPE_MEM, - entry->res->start, - entry->res->start - entry->offset, - resource_size(entry->res)); + atu.index = i; + atu.type = PCIE_ATU_TYPE_MEM; + atu.cpu_addr = entry->res->start; + atu.pci_addr = entry->res->start - entry->offset; + atu.size = resource_size(entry->res); + + ret = dw_pcie_prog_outbound_atu(pci, &atu); if (ret) { dev_err(pci->dev, "Failed to set MEM range %pr\n", entry->res); @@ -690,10 +707,13 @@ static int dw_pcie_iatu_setup(struct dw_pcie_rp *pp) if (pp->io_size) { if (pci->num_ob_windows > ++i) { - ret = dw_pcie_prog_outbound_atu(pci, i, PCIE_ATU_TYPE_IO, - pp->io_base, - pp->io_bus_addr, - pp->io_size); + atu.index = i; + atu.type = PCIE_ATU_TYPE_IO; + atu.cpu_addr = pp->io_base; + atu.pci_addr = pp->io_bus_addr; + atu.size = pp->io_size; + + ret = dw_pcie_prog_outbound_atu(pci, &atu); if (ret) { dev_err(pci->dev, "Failed to set IO range %pr\n", entry->res); diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/controller/dwc/pcie-designware.c index 250cf7f40b858..df2575ec5f44c 100644 --- a/drivers/pci/controller/dwc/pcie-designware.c +++ b/drivers/pci/controller/dwc/pcie-designware.c @@ -465,56 +465,56 @@ static inline u32 dw_pcie_enable_ecrc(u32 val) return val | PCIE_ATU_TD; } -static int __dw_pcie_prog_outbound_atu(struct dw_pcie *pci, u8 func_no, - int index, int type, u64 cpu_addr, - u64 pci_addr, u64 size) +int dw_pcie_prog_outbound_atu(struct dw_pcie *pci, + const struct dw_pcie_ob_atu_cfg *atu) { + u64 cpu_addr = atu->cpu_addr; u32 retries, val; u64 limit_addr; if (pci->ops && pci->ops->cpu_addr_fixup) cpu_addr = pci->ops->cpu_addr_fixup(pci, cpu_addr); - limit_addr = cpu_addr + size - 1; + limit_addr = cpu_addr + atu->size - 1; if ((limit_addr & ~pci->region_limit) != (cpu_addr & ~pci->region_limit) || !IS_ALIGNED(cpu_addr, pci->region_align) || - !IS_ALIGNED(pci_addr, pci->region_align) || !size) { + !IS_ALIGNED(atu->pci_addr, pci->region_align) || !atu->size) { return -EINVAL; } - dw_pcie_writel_atu_ob(pci, index, PCIE_ATU_LOWER_BASE, + dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_LOWER_BASE, lower_32_bits(cpu_addr)); - dw_pcie_writel_atu_ob(pci, index, PCIE_ATU_UPPER_BASE, + dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_UPPER_BASE, upper_32_bits(cpu_addr)); - dw_pcie_writel_atu_ob(pci, index, PCIE_ATU_LIMIT, + dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_LIMIT, lower_32_bits(limit_addr)); if (dw_pcie_ver_is_ge(pci, 460A)) - dw_pcie_writel_atu_ob(pci, index, PCIE_ATU_UPPER_LIMIT, + dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_UPPER_LIMIT, upper_32_bits(limit_addr)); - dw_pcie_writel_atu_ob(pci, index, PCIE_ATU_LOWER_TARGET, - lower_32_bits(pci_addr)); - dw_pcie_writel_atu_ob(pci, index, PCIE_ATU_UPPER_TARGET, - upper_32_bits(pci_addr)); + dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_LOWER_TARGET, + lower_32_bits(atu->pci_addr)); + dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_UPPER_TARGET, + upper_32_bits(atu->pci_addr)); - val = type | PCIE_ATU_FUNC_NUM(func_no); + val = atu->type | PCIE_ATU_FUNC_NUM(atu->func_no); if (upper_32_bits(limit_addr) > upper_32_bits(cpu_addr) && dw_pcie_ver_is_ge(pci, 460A)) val |= PCIE_ATU_INCREASE_REGION_SIZE; if (dw_pcie_ver_is(pci, 490A)) val = dw_pcie_enable_ecrc(val); - dw_pcie_writel_atu_ob(pci, index, PCIE_ATU_REGION_CTRL1, val); + dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_REGION_CTRL1, val); - dw_pcie_writel_atu_ob(pci, index, PCIE_ATU_REGION_CTRL2, PCIE_ATU_ENABLE); + dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_REGION_CTRL2, PCIE_ATU_ENABLE); /* * Make sure ATU enable takes effect before any subsequent config * and I/O accesses. */ for (retries = 0; retries < LINK_WAIT_MAX_IATU_RETRIES; retries++) { - val = dw_pcie_readl_atu_ob(pci, index, PCIE_ATU_REGION_CTRL2); + val = dw_pcie_readl_atu_ob(pci, atu->index, PCIE_ATU_REGION_CTRL2); if (val & PCIE_ATU_ENABLE) return 0; @@ -526,21 +526,6 @@ static int __dw_pcie_prog_outbound_atu(struct dw_pcie *pci, u8 func_no, return -ETIMEDOUT; } -int dw_pcie_prog_outbound_atu(struct dw_pcie *pci, int index, int type, - u64 cpu_addr, u64 pci_addr, u64 size) -{ - return __dw_pcie_prog_outbound_atu(pci, 0, index, type, - cpu_addr, pci_addr, size); -} - -int dw_pcie_prog_ep_outbound_atu(struct dw_pcie *pci, u8 func_no, int index, - int type, u64 cpu_addr, u64 pci_addr, - u64 size) -{ - return __dw_pcie_prog_outbound_atu(pci, func_no, index, type, - cpu_addr, pci_addr, size); -} - static inline u32 dw_pcie_readl_atu_ib(struct dw_pcie *pci, u32 index, u32 reg) { return dw_pcie_readl_atu(pci, PCIE_ATU_REGION_DIR_IB, index, reg); diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h index 26dae48374627..d21db82e586d5 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -299,6 +299,15 @@ enum dw_pcie_ltssm { DW_PCIE_LTSSM_UNKNOWN = 0xFFFFFFFF, }; +struct dw_pcie_ob_atu_cfg { + int index; + int type; + u8 func_no; + u64 cpu_addr; + u64 pci_addr; + u64 size; +}; + struct dw_pcie_host_ops { int (*init)(struct dw_pcie_rp *pp); void (*deinit)(struct dw_pcie_rp *pp); @@ -434,10 +443,8 @@ void dw_pcie_write_dbi2(struct dw_pcie *pci, u32 reg, size_t size, u32 val); int dw_pcie_link_up(struct dw_pcie *pci); void dw_pcie_upconfig_setup(struct dw_pcie *pci); int dw_pcie_wait_for_link(struct dw_pcie *pci); -int dw_pcie_prog_outbound_atu(struct dw_pcie *pci, int index, int type, - u64 cpu_addr, u64 pci_addr, u64 size); -int dw_pcie_prog_ep_outbound_atu(struct dw_pcie *pci, u8 func_no, int index, - int type, u64 cpu_addr, u64 pci_addr, u64 size); +int dw_pcie_prog_outbound_atu(struct dw_pcie *pci, + const struct dw_pcie_ob_atu_cfg *atu); int dw_pcie_prog_inbound_atu(struct dw_pcie *pci, int index, int type, u64 cpu_addr, u64 pci_addr, u64 size); int dw_pcie_prog_ep_inbound_atu(struct dw_pcie *pci, u8 func_no, int index, From patchwork Wed Jan 31 00:45:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1893177 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=I1Qn22H5; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org; envelope-from=linux-pci+bounces-2848-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [IPv6:2604:1380:4601:e00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4TPjzL4Jzsz1yQ0 for ; Wed, 31 Jan 2024 11:46:54 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 5B6221F217FF for ; Wed, 31 Jan 2024 00:46:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 15A47641; Wed, 31 Jan 2024 00:46:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="I1Qn22H5" X-Original-To: linux-pci@vger.kernel.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2065.outbound.protection.outlook.com [40.107.20.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1403BEBF; Wed, 31 Jan 2024 00:46:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.20.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706661969; cv=fail; b=SNjGdlNUe/h39P/9EB2vPSPtq9aEjMyz0Aq/MuRgC78l9Abjp9/tCsJD/GKEgHwFbaJUCJ9PapH4WW4nwhq6oUnLJOrU5An6rceerbPD0hJ1EkIs8x6fVHfH1HYuhaM8IYdbeQ2KbFm9SsI68IMQqycjZAR3tOk8HEEXdTaEbyY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706661969; c=relaxed/simple; bh=CSc9b/7O8Q2ywCcaQSNOAl8wC5iOA4e7Fn1jMqRoyvQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=r/E/Go1RRTthWAU3ihdeoazbEhJPlaAVMayByN/RCTjzWYrtOFrfoW31KsCU5iMV8Do9u/1cDQBcvsrB3YKMCEy4WvQM7qQWTdSikdsE+HrlAevuBoP1UbuP5CSipONk1wDrPS1EL+DdAGOeWBNrby/9VrTWMosmoiVmHBjcu04= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b=I1Qn22H5; arc=fail smtp.client-ip=40.107.20.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SDcTt2E88hUp3NrU6tCM/q2Y4vjZ8tMl3PSC24T6mxC4Kn0p4lPNs23FRnZISgESYfobutVjR95zKNZQRG1xi9yMGtQVACtjcdOYcbyL9ruONhnLvs3FRPiNx/De6n4OtXWiwhTpt259gtaDf129EZcgfqVWy2OxIikt0nBo7AYG6gNI83SN31r+fnhJHtoGhdNZ8uGHvVKNDm+ktclcK1/UVDZhjQ8YJJfHSVq5fH38FuxyLA9eYA5zWjzl2bUq9U4IEve99j/HxzYuIa6O5Moz1cfZq8kJ4F7766ZlLoqFx5fpwkEFtBd+ZTSaZYycTeiI0xPk62rDdy9ma38cZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=HUvBZb1q4P51HNUpNUrXht5CZNZYfFhNGx2cTy486Ms=; b=H7K/dHIwZ5Bt4giZGNqEOnBM2UyKYwCir5WoHOzWgLDnHhtLxwrvA7b4WEyrbHD3NBozesalmsii7+MD5shiEoj6IEzSOUMRXVEnNGP+nRzmJwz8nFmf/pktgz+um2iYvkvx2O/Rjy7MrhotQQPtWqTOZ1pbTJI2s3Gy6Q3tsqhoCSwqo6wug5w5mlpyJTFvwvROp+pt4OzG0lnCabBdJo1X64otNtoOXCYtq8Ip2977pIJLcYG9/Ve8yadDwH59Em2D8Twbl2Oc8Ki0bs17wCFKsxdN0udne/m7YKDRzMqRGwAnUxCORxkkwladYR6BCwIc/9IwbBPmmTWsMGC9+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HUvBZb1q4P51HNUpNUrXht5CZNZYfFhNGx2cTy486Ms=; b=I1Qn22H5rdAUE+H0QL0Ut2i+qjQhfK+doxT4TPVYLP6uosJQZeMJg4jAjKZtTZQXqsE9Zji+xJeC3SB31xVR8yDMEg3vPq7ZTv4Em0srhGmRKDIwEhgcR3GsFfT/cn16XCSfxFm/zACu47WLs+6/Gddgbn6vZPnm/MhcVY2hKBU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by VI1PR04MB6877.eurprd04.prod.outlook.com (2603:10a6:803:131::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.34; Wed, 31 Jan 2024 00:46:05 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::c8b4:5648:8948:e85c]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::c8b4:5648:8948:e85c%3]) with mapi id 15.20.7228.029; Wed, 31 Jan 2024 00:46:05 +0000 From: Frank Li Date: Tue, 30 Jan 2024 19:45:28 -0500 Subject: [PATCH 3/6] PCI: dwc: Add outbound MSG TLPs support Message-Id: <20240130-pme_msg-v1-3-d52b0add5c7c@nxp.com> References: <20240130-pme_msg-v1-0-d52b0add5c7c@nxp.com> In-Reply-To: <20240130-pme_msg-v1-0-d52b0add5c7c@nxp.com> To: Bjorn Helgaas , Jingoo Han , Gustavo Pimentel , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , imx@lists.linux.dev Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Frank Li , Yoshihiro Shimoda , Serge Semin X-Mailer: b4 0.13-dev-2d940 X-Developer-Signature: v=1; a=ed25519-sha256; t=1706661950; l=2896; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=HsYYWicc5fOwAhzWsSAplVHxy6sgutdY8ja1Er1MKyk=; b=6M71McR98puiDwzSllTMoQVYo2KcrPwBY1JxhAbcnFPfPp7U5VwE8mr3YOr9iyUO9xPSRK+ic puKZ23iM6e+DLZaEVWuuA6EEhVtOyKSudc0ZfhQLRSlV4mOvlfdrcXX X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0225.namprd03.prod.outlook.com (2603:10b6:a03:39f::20) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|VI1PR04MB6877:EE_ X-MS-Office365-Filtering-Correlation-Id: 32d440c3-e25a-4898-aeda-08dc21f601b7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pMAEPAG8F6P2P1hNFXFEVMA3XOq2LClNx84h2mJsqtXFQq8uGARFmmyVkkxi3zKsvI5RROdaKZkX6J5zL9oyL9jzdo0RodqPmF0rlfky3tDgqJFbAF1UEoKtyfvmHmcrDBsflvJRFfX4FIN/6u1rdJpoysAzGegDyPY2JzRIsD78XsLRRcmnHb9zj1OMnNQCmgyBwxZxS0GWb1JZQKTwl9JYKW7yY8lSrTKYsWg+CoE/dW4bnyRl1uB7g8oiiI/FXp0yz4v9d9zA3bw4iTIOpqTS5f9pTFy9F4NcvBxobrj8r02TNB9Dd17xxDYf/Sg48b3a2EZaaIoVzX9jWCMmMu3daeOn1yl9RB2UUnaC/OLBAqJQP68NTpyhCfAI25ECG2Bv6CGtjpmZKKdNpcE3/m2ZQ5yXVh+KiIO368HBhOYPcIMxqphjG2J2qgCDv8U1wT8TafsLLzYNbX/3/TnKf1MnkSxbIFbJbVxuJxRMTFLA23JXTMpKik+s5jeLWfwtTNC2KhqWvlrUBxLAsJwMUQJN4c79oedpP/Z6ZFOpbiasrQBfKgiNa6PtFXGxK8oaEcv9E/PJaAHT/z2Cjh3UW+vHd8ULs7nNU3rI152C9YbdqeNYGYT2PAW9OKG0yoOWqHaYnuRFGCIHWi7iWpE5rA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(366004)(346002)(39860400002)(376002)(136003)(230922051799003)(186009)(64100799003)(1800799012)(451199024)(41300700001)(921011)(26005)(36756003)(316002)(66476007)(38350700005)(6512007)(52116002)(478600001)(83380400001)(2616005)(6666004)(6486002)(6506007)(38100700002)(86362001)(5660300002)(7416002)(2906002)(66556008)(54906003)(66946007)(8676002)(8936002)(4326008)(110136005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?9o2aAqNX6KhpJQaUfY9DyILPY6rP?= =?utf-8?q?V5iiQALpmIjRwesx8WkfPyo3DYtWppx4pHwkZxZxymkHi/tYMp2BKOESFMEZRlt8n?= =?utf-8?q?huqajDcy2ESuKFlCtFNpjVHNn7gcOZWRZvyVAoTPHyKeZl9Qs5Reu6ZDuTHJP6Wu8?= =?utf-8?q?z+DPZFQ+tW2VEJKUuHNUQzIzZyal+uXpCkgwrGb8pnEhyuLbUsWC1YT3ydKflvGLB?= =?utf-8?q?Ht3kOR8DaSkWXJifC9oLBeNnN5VOM5tghUgstnGP6IsdJ5kdymel65UbsxWIYl3o4?= =?utf-8?q?W4/+apxWWqjhZQXLF79nBfGBv/XKIKbwSL5nVmBxIEpMj3l31hxjy6LFT5LBIIXHT?= =?utf-8?q?za+zeF7YX2WJLRtKwZSyqnu4hG6HNs/UjowweFx2xAtTyYwFZKBD5/rmQFH4PzB5P?= =?utf-8?q?mwPhnDoHmLwBTOZ2p7SZg3SRf4WeWmhLrONP8MBKhaPsvl5r9EjAU9Pk/OquyBn2Z?= =?utf-8?q?YGhHfiRYxHor6fKBcUCud2dvw6RDTNNjWKuyhwaqdiRXPU54Q8Qw1/Qaf1FdEdUv0?= =?utf-8?q?8WUmaSxWQFhNvNHbPHmfoNVAL2yM9Wa8kZPFxYH3MG+pjCCVnNZOuFWJYUYhts4lr?= =?utf-8?q?8fD5pVI0j9jxIBwghuDWKWcqRA+e0XcLGq2/SczOsZFaK9cuekOzVTSCRXA5gplIP?= =?utf-8?q?JNKSRxwEhyEIN84n9MUKRBgZdCbwY2LPiJpY/gUDTdcy41FpAgdrAsCxRiiNsgyIj?= =?utf-8?q?AJeWgH6Ro7nTe12xbNuNcUjhmXG881+u8b2LFtLA47iD3+spKhwpzzCV/DifF7QRM?= =?utf-8?q?EeE5ahwmmGA/JUxlwPbyxfURk+i7B6lZ62nzx0rozGOZxPr0ni2mpnOZntZWoJ/7q?= =?utf-8?q?IDjZ6zD9uXirmzz4RWzWcrtx0vPikGKJpcvBExj39F4hCLImKrm3T4Oi85ZctJsul?= =?utf-8?q?WXdA1xF1i5kpMAMhcZhtgtPBlKDTkPTYUReo7dEac6elOJGmj3I2dhlnJNmuvPmo3?= =?utf-8?q?wDcvfGd2UPHXSVCApevF1hXNMgb0L6e7rU9I7Wk6tccIaZRfPpt72+9gxyxRnKgPJ?= =?utf-8?q?qtAs4l90W0xlUkJcQCCYgzvlSbTE1LtDzRf2z2z6H79I/ZrMhSGYnJimB3eNZ9dtW?= =?utf-8?q?VGU9a1uGvFT/JCPhJIdn/Y7ejgNA/bX1JHb1ys6+OToGCEHoHWd+XdERcEOL6VISO?= =?utf-8?q?qE1MkyIMe18F3qfQSInIrE3JZAbW24kcnnCimqj5vEhzDOxocOBY12y4+c5g1n5Gq?= =?utf-8?q?5a6lR0Edn/G+QC9LlTDd9p0/wtpUmSbndV4G9PYdqBmTelhRYdSJKFHFYBcCKpuuN?= =?utf-8?q?e4PRGQ4xzRb2bM6DebG56XY+N3AwuruNVkR3f+9gNtSGczoojsnTMXn5r3f7LXAO2?= =?utf-8?q?SBjrY4HbiqRl3ea4WT335T8cq9+l50zwp7iwWjg6Hbw2IVK1/ByyzVKHZnqRjwsui?= =?utf-8?q?lu9atTk/e7lyE8nY53lHEYdcBQQikZMcZVKmeBaHwr5pab31WZ8q1ovWTmzPusEJx?= =?utf-8?q?5VtybAiRB+B6kj+x4t3oIFlCWGwtaU8UOXEnPYQk4h0+RqkBP4O8LpQLoCeYFgGCn?= =?utf-8?q?tgwbrTNZcwSP?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 32d440c3-e25a-4898-aeda-08dc21f601b7 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2024 00:46:05.5321 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cCLUSoEvzbp5jd2rR+XZc90H4gwloETCb7YpocwdyKSpYwtnzNLP+oMxAN32oSrRHq2dCiNOWmrgDaI87VvgTg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6877 From: Yoshihiro Shimoda Add "code" and "routing" into struct dw_pcie_ob_atu_cfg for triggering INTx IRQs by iATU in the PCIe endpoint mode in near the future. PCIE_ATU_INHIBIT_PAYLOAD is set to issue TLP type of Msg instead of MsgD. So, this implementation supports the data-less messages only for now. Signed-off-by: Yoshihiro Shimoda Reviewed-by: Serge Semin Reviewed-by: Manivannan Sadhasivam --- drivers/pci/controller/dwc/pcie-designware.c | 9 +++++++-- drivers/pci/controller/dwc/pcie-designware.h | 4 ++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/controller/dwc/pcie-designware.c index df2575ec5f44c..ba909fade9db1 100644 --- a/drivers/pci/controller/dwc/pcie-designware.c +++ b/drivers/pci/controller/dwc/pcie-designware.c @@ -499,7 +499,7 @@ int dw_pcie_prog_outbound_atu(struct dw_pcie *pci, dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_UPPER_TARGET, upper_32_bits(atu->pci_addr)); - val = atu->type | PCIE_ATU_FUNC_NUM(atu->func_no); + val = atu->type | atu->routing | PCIE_ATU_FUNC_NUM(atu->func_no); if (upper_32_bits(limit_addr) > upper_32_bits(cpu_addr) && dw_pcie_ver_is_ge(pci, 460A)) val |= PCIE_ATU_INCREASE_REGION_SIZE; @@ -507,7 +507,12 @@ int dw_pcie_prog_outbound_atu(struct dw_pcie *pci, val = dw_pcie_enable_ecrc(val); dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_REGION_CTRL1, val); - dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_REGION_CTRL2, PCIE_ATU_ENABLE); + val = PCIE_ATU_ENABLE; + if (atu->type == PCIE_ATU_TYPE_MSG) { + /* The data-less messages only for now */ + val |= PCIE_ATU_INHIBIT_PAYLOAD | atu->code; + } + dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_REGION_CTRL2, val); /* * Make sure ATU enable takes effect before any subsequent config diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h index d21db82e586d5..703b50bc5e0f1 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -148,11 +148,13 @@ #define PCIE_ATU_TYPE_IO 0x2 #define PCIE_ATU_TYPE_CFG0 0x4 #define PCIE_ATU_TYPE_CFG1 0x5 +#define PCIE_ATU_TYPE_MSG 0x10 #define PCIE_ATU_TD BIT(8) #define PCIE_ATU_FUNC_NUM(pf) ((pf) << 20) #define PCIE_ATU_REGION_CTRL2 0x004 #define PCIE_ATU_ENABLE BIT(31) #define PCIE_ATU_BAR_MODE_ENABLE BIT(30) +#define PCIE_ATU_INHIBIT_PAYLOAD BIT(22) #define PCIE_ATU_FUNC_NUM_MATCH_EN BIT(19) #define PCIE_ATU_LOWER_BASE 0x008 #define PCIE_ATU_UPPER_BASE 0x00C @@ -303,6 +305,8 @@ struct dw_pcie_ob_atu_cfg { int index; int type; u8 func_no; + u8 code; + u8 routing; u64 cpu_addr; u64 pci_addr; u64 size; From patchwork Wed Jan 31 00:45:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1893178 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=W7OTadz/; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=147.75.80.249; helo=am.mirrors.kernel.org; envelope-from=linux-pci+bounces-2849-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [147.75.80.249]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4TPjzs4GRSz1yQ0 for ; Wed, 31 Jan 2024 11:47:21 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id A97961F2208E for ; Wed, 31 Jan 2024 00:47:18 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6A89C804; Wed, 31 Jan 2024 00:46:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="W7OTadz/" X-Original-To: linux-pci@vger.kernel.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2056.outbound.protection.outlook.com [40.107.20.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8AAB15681; Wed, 31 Jan 2024 00:46:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.20.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706661973; cv=fail; b=WQuP9e0+5/6a8KFTF5gRnyuuwdtb/4KMBo3FX5tFomI7vEcDzH3QOYlBiohu80OLH+dMJUtp1KJL3rypcH3CSZjigyN+oXoZwPJsJ2u04ybM4w9P6hgyyM9K8rRXEzY6MkxgMKbH9l6/KbLAYVOJ2gTZx9ayhWuxypf+6xNaoHk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706661973; c=relaxed/simple; bh=D3OVyPoQgbl9xXSYR/1BiTXAJm+k9I1uFEMvcHMr1z8=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=kuuIJ6DAqTyhqhbsNpiKRbffvfsR3MLlgm22tv3q7V4Zp2UvIaNMmSKH82giRt2bvMmlTtd3vvTKT7FPoqgBv9fdIMu9hN4X7P+aAuW2/F6hJ0JVxufvsplF0ozsm45tEIALdKmF0Aaj9WoQCzTnFFrSxX9ZPGRyH5+Ym838aYU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b=W7OTadz/; arc=fail smtp.client-ip=40.107.20.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MDL+N+7Q0WPCATaTHmYHQOIXedL4V5vlAjUgvZ4voxXUiPR8EwP9bhooIoFTLFxDURFkPhj+rpPDO+4zqtlsMmrIjLQQsImd3yuMf6xcVFUgKTTkVrPStjc7TLiykmGfVpQG/HVrm970bIGK1/SsmX0bMK8n+VAHsYl2im+nD487Qr5mE9m3js5oOZR7dcCvQWcqIm9JmQtoE6kobxzUu11y/XO6hYZk+l1JPR7NY32nm+t1PEKFm6phCeaNnFhiWfJvG5PtAGPkU83R+3ddRbEgUZUyaPFy13hDpm/kM6ZtrH7h4Udi/EwOUZze5g+mOqk5UanHuj4f3hi1Xi4pyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=iyF7iTLz64XOA4J2OBaNogx5ppHO6pakjQq/PoIvIyg=; b=eFztu43zfMPMRXeO8AW4VyAPnNdJJk7D31LCZAac+/EVp4ElzG4mNbfdIKVlRLfbEbkNP0yVp7VSpgA1dcV9OfIoFLnwsCbN6nZT07U6+DMwnRcrbIKpYE9qcAhsfCGlLjbkJrh2Qupjiw8l9/KT23uKU9ci+TH+t1cVyIu5V3tecvVIiGATSv56wWJwwlpKYKua1PegKMwPZPMIJy1mqVc72k9gHE35Gyq1+1I8HWTKdxro8oZ9UZG6a9KEx2v5SKtDwNYTNomupI4/CI4FB3YLlY4tO2+1nZofxTQ5qQofvdgkDCMaiv4K1XDhDLlbgj3OJsNsD51jm7yra+UiUQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iyF7iTLz64XOA4J2OBaNogx5ppHO6pakjQq/PoIvIyg=; b=W7OTadz/kXl1p6xDd/oN2VV0IfaFeug9iBw9d61tMSHnjOtfLpSUhrYIjXVENwFnk3kyDo4UOq+E55i3gxS4rdMCXTmqRVvUWToAsBvP4r13AO1xVkXds6ywRTU59et9lHnV+SVqWkNmKqnFrmDS9jYn3QTwJZ+2eCxyRryPVwI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by VI1PR04MB6877.eurprd04.prod.outlook.com (2603:10a6:803:131::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.34; Wed, 31 Jan 2024 00:46:09 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::c8b4:5648:8948:e85c]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::c8b4:5648:8948:e85c%3]) with mapi id 15.20.7228.029; Wed, 31 Jan 2024 00:46:09 +0000 From: Frank Li Date: Tue, 30 Jan 2024 19:45:29 -0500 Subject: [PATCH 4/6] PCI: Add PME_TURN_OFF message macro Message-Id: <20240130-pme_msg-v1-4-d52b0add5c7c@nxp.com> References: <20240130-pme_msg-v1-0-d52b0add5c7c@nxp.com> In-Reply-To: <20240130-pme_msg-v1-0-d52b0add5c7c@nxp.com> To: Bjorn Helgaas , Jingoo Han , Gustavo Pimentel , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , imx@lists.linux.dev Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-2d940 X-Developer-Signature: v=1; a=ed25519-sha256; t=1706661950; l=581; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=D3OVyPoQgbl9xXSYR/1BiTXAJm+k9I1uFEMvcHMr1z8=; b=XsXEWdpcfnWza3UEvb1fkG/rDSmcctRltnVtUv3z6PVCeT2HxW2MXIcag6pe+EntwDp+AcySh B2dNTHOnL4jClEFUYY5KN6dhQ/sEMN1ks0en+DDPU/LajdW9UhqdWZG X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0225.namprd03.prod.outlook.com (2603:10b6:a03:39f::20) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|VI1PR04MB6877:EE_ X-MS-Office365-Filtering-Correlation-Id: 0bd87ac4-6eee-4351-3f6a-08dc21f603c8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +wp5sDTPzJkk526FiddlXYFFizL/l057QhtFzkhwBZ3dAGxz6RkTQ2sYuLLdjTYkqbL6/oDnJ42fKVNVYuGhaEMYZmaaPf+tABEz4eny+/mW7UzWm1XhdTsk2KKSXcWBpX8l73MJK461lWmrolpYsdVO6UvOlkqV6DkBmxHzCG4TcLHCAnbYD/dV9cnCr4hvHIA1dr3ofYtpB83Ww6+kl/TuuTUC7SiOBwKK52thDLwzQuAsd04Jbx7z6lwABU9Y9TlPVsHbL0geQytgWbnKxYwozOsVE7mXg22BHPqX8nmKmwueSiqop+MhBPuOI1yM3rQteod2Sy/ITue8ERbFtAgN8IGCQnrON6bD+sbORfow4CWYADjj67T8iIFHnVUvuLt0SthFM31M3w1FGeDu5L9eSbYrkQ8fEGwiwLcpoR+pUqDbnXiBY3OGLULbi9PyrloT24331lKk7FSKLCebgUDgkDghOMLPlHWcaw+vj9P6MNiFGVNNlej2fYDLSFaVxammpedKmMxf0fKG6at/VLdAz9Asr7a33kCrpmx/DVZZ8f2jMPeGX6+WQ/QBYTNy3tf4bHnyf0zQfj8jjooVMRkNeMedfUpr3zKw5RJOQaGFuS4Wf89IwAaEDwXY8llXIRQAh7dwc6NC1sq4DQOaAw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(366004)(346002)(39860400002)(376002)(136003)(230922051799003)(186009)(64100799003)(1800799012)(451199024)(41300700001)(921011)(26005)(36756003)(316002)(66476007)(38350700005)(6512007)(52116002)(478600001)(83380400001)(2616005)(6666004)(6486002)(6506007)(38100700002)(86362001)(5660300002)(7416002)(2906002)(66556008)(66946007)(4744005)(15650500001)(8676002)(8936002)(4326008)(110136005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?OXn5hBslfh27Aun6aQlCF4ZJz+vR?= =?utf-8?q?WFcI1H/eTEUiWnFFc26f+miQquM/qtLs6/eB8ptis/oyjIDuiunTkzDzvqXT5zMuB?= =?utf-8?q?uW8k3qGjV+4BuMf7JKCxvzoRV5ChLj2GXxlarlxBHEnjYfIYuj6RLppaJx36HFwjg?= =?utf-8?q?oAOurYiT3kikGne6lUIHHTuHdco4K1ArY1ae6RSiCZAB2k+EWFHvMPrBoga2LAO+M?= =?utf-8?q?Pf/LhLUJo56raCml2JS8ZdgT6IPWLR7tFR2ic28qNWtln+uN7u5cAwwOTliUkpPwg?= =?utf-8?q?o/mxKySqB9elt7wVHFtT4n992zq9OcP2gDfJ5gLCTCps+2XwNTGOIJ9Dy1vwdBqqh?= =?utf-8?q?xQc/7ix0DJ6D4Pee3IeLQcFi7BO8f+EqVtzvVeCOgNMFuOdMxop7939PIJVWL8wnR?= =?utf-8?q?s7HgMdK8oHk/BjhZLfsMqNDsYImqu2jjuSvhlb2nOFGBTzw74s5miVPx1r953xQkx?= =?utf-8?q?yL60hllOEhI9yMPgP7iQPSZhfFTJwxPmRCFDpEuCdQyQzsCV2a8X5k6RDZvLoT6bp?= =?utf-8?q?mUWnOfXRUW4auxTjDfwLYlxp6rW9aeGYDL5RhCjDVxXlpcoUwvx4Gf4bM5gjla177?= =?utf-8?q?pwWw26PCKKjUwDEB+2hYGqRwQPbUozsBsu+S/5PGGO9E1F74Mr0AhyHmr+sMSMHO5?= =?utf-8?q?uPYTtM0pk5HGRdZHPdyIDkF1C5CW7TBnHwoH6+zpmvUED5OKyE+pJC7td9e98xLou?= =?utf-8?q?O55jKxmJZB7XBWDBD6VX9cQB5X+r4xcxfo78wpqCo4IQe+OKdgF7Ok88vp/SW1eav?= =?utf-8?q?ImaJxJfzv0WGKotHiungdojF9WqWgQFXmQfUfePR3Ezq4LjgYEQEMM7F23A5DvZN0?= =?utf-8?q?mTfdTpymn4HYIYJ+W/kOr9kXPxC+bspw+EZo7DmS1JNjvZza9FiEiCETMQA9X2X9v?= =?utf-8?q?Vh82XsgTB0nmcYV78jwEsgX9TSY6WYwPZM5OZshFio+VIkODAN1T+BVorIQYqgOh0?= =?utf-8?q?LVd5FoeXIoDW11UMgEnBFWTSj4rB+IRMHSDi/pthK01fjbs0VvjkQIgd/IliGPQIA?= =?utf-8?q?7A7zeqPnBhvG1jPkO6iG9ZIfGZRazQKABI2GlchqNINA7NT7GtqW/sr6Sv7nE0YnS?= =?utf-8?q?hNnf3THZVzp81QSaKEq6UhIoWmZCv4Y3WP3B8i4/NyPypL2TY+AT7FQ6e9CZrpaS1?= =?utf-8?q?tp2dfntF6cYJ2DUzNyfdpI2G7W5IwqGmZvxZMA80n8YxL9uew+wejHtfo5KcXAnpA?= =?utf-8?q?yKlWPUdt5hziZtBnt+Y94czM7VNFTSEM8T4JSVDvuGCd2xHIjJb19V4UFqV+7QArK?= =?utf-8?q?GprOm0InMUyG5lg46uFkU687cakvx9FkoKQv2ZqfnOwi4jx1Fe9XGJ2a2MfcP/mmq?= =?utf-8?q?MNlOyXU2GIxHM9+i60qVBvR3bHFhC2R8F6UGYU+f1qnC4gGXalmsNMvnYSovShoiH?= =?utf-8?q?K37s3XRpCj44P2yNlDet+Q2Lv5Imts8sE3p24I9Yjs38OwyJnSiuKrEEbkae8vzbq?= =?utf-8?q?Orx3L+4Ctlod+Y8RN/y/IJqx1Ij5jMp4WP6RrSgrQfLLaGk+wsXplcb6GIZRT7nUn?= =?utf-8?q?tgaTjJYOhtFY?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0bd87ac4-6eee-4351-3f6a-08dc21f603c8 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2024 00:46:08.9941 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cVTelFsuFgiqLplFcRYnyJ+h1EOcDdsHlF1Vn39CvygpuS6TxkTFT28qrbvbetfPMaSGcL3iHLavgcB2J40dyg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6877 Add PME_TURN_OFF macros to enable a PCIe host driver to send PME messages. Signed-off-by: Frank Li --- drivers/pci/pci.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index fe42f5d10b010..46bbd815efccf 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -40,6 +40,8 @@ #define PCI_MSG_CODE_DEASSERT_INTC 0x26 #define PCI_MSG_CODE_DEASSERT_INTD 0x27 +#define PCI_MSG_CODE_PME_TURN_OFF 0x19 + extern const unsigned char pcie_link_speed[]; extern bool pci_early_dump; From patchwork Wed Jan 31 00:45:30 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1893179 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=TGW79rl7; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org; envelope-from=linux-pci+bounces-2850-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [IPv6:2604:1380:4601:e00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4TPk06345Nz1yQ0 for ; Wed, 31 Jan 2024 11:47:34 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 083FB1F20DD0 for ; Wed, 31 Jan 2024 00:47:32 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 90873746B; Wed, 31 Jan 2024 00:46:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="TGW79rl7" X-Original-To: linux-pci@vger.kernel.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2056.outbound.protection.outlook.com [40.107.20.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 959584C8B; Wed, 31 Jan 2024 00:46:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.20.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706661975; cv=fail; b=IUC1tnJXpjTO3WTSSsd2Ux6x4B8k+gKGS/OWL49LLQQPBHFQ8Qh4+6/jhozmxbXRsC1r0OS2x66gSs451mWYM+ccqHYsrvcDxxDFJhB1eG3cmKuVm8mNAXvotOLA9O+8m5riGv5hgPsSAYJ41aCu7LB2nVYhfP008qnSuy6ly3I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706661975; c=relaxed/simple; bh=cfu6DwDb0l7oT09xNpxjpxzHoXAlkfWEhm2pP3eS+Z0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=pkBh7QqI2Pq2hVYpYp0+E9pcV2adZx3wWQdwAZJdXEiAY+5ha9h2AorwUXPnoIcF8uSmI58y3scuiuDTyZ1Dr+SkgWwPOjlviM5ayAhQGPJAA5Whc3UNU4xKdoNQcVwFePv+KxgVL0zWESeTDrpNu0GZjUHcmhS33QGBXPxgx0M= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b=TGW79rl7; arc=fail smtp.client-ip=40.107.20.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Lfmq5ct05OgIBVlsXUJpPtptPTq78Nvf8UpDv9rsX3IjxybPp/pJjBdWAvB0/yYZ3sUFnoYHCNtMIjCgJXjcWFX1tHreyDNQ6wXplT7Uu+FpIarrVVDUEDjmxk/BGXvcHcZ+O6VCXvovEweOilOo+tpd4g+P+2zgz2gm55gODdG2v3PgSPrSINw1WS1iio1q7jZUdGkn2H3mCie8cj35facrwqZ0OfXhuMzxrrgcV09Zo9uh45sqs+XsiiSA5AOz9yE5eTeX6Oqb69hFggYsrCFYSNmu89DyySCeajZ/QiTd+U1+wlfWy7ISHHkIE+ILosXGFuWXwksK7UZjOV3+2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=RKNQWNbqoT8m5ZP1u/XMj+BzC8WwW+892iG/+v4LN6c=; b=YefxaRL9aFWCbO8zlb2KrgiTfxu6kb65tdIK1KBeEVuS3QGMi5kJX2q0t6GkW8MQaGTJe2GWeS+kBQtsml4dnl1KEedG8/pJdOXhaDLFC0w5HhYJau86NDkhmo1/rtM8duZpKGAa6CN8ak4la31wJaf4HOiq4jOa8h0VurhSHkkf2TVB4AI4GsVesx3M7vZdGTf+gAKClrtcTz6vU21QoF++WOvL9026xBAWg7RGocDwuBNAasq5LV6LR7askJ3dV7p7yjnCfXI06NAoJWu0pINcSbUHNjFWADWpSKY3Q+XH+8wedzKrM/QC7jhpjnIGDVGVRGI9+8POXa95OPm4eQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RKNQWNbqoT8m5ZP1u/XMj+BzC8WwW+892iG/+v4LN6c=; b=TGW79rl7xIUW7G4pxk8lBN8f/0Xxr3caZwNBPlptEzWDJI0055+XXzl3CgN04kevPLgQjYPi/5spy7Jm7N2Iry05UirdrQOFrILd1FgDdenKQ+3/KYOn2H2itEyC+mupF15aTlb3rxLapNpBeoPPR6+D5EeZG26DJ53qnaqm5y8= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by VI1PR04MB6877.eurprd04.prod.outlook.com (2603:10a6:803:131::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.34; Wed, 31 Jan 2024 00:46:12 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::c8b4:5648:8948:e85c]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::c8b4:5648:8948:e85c%3]) with mapi id 15.20.7228.029; Wed, 31 Jan 2024 00:46:12 +0000 From: Frank Li Date: Tue, 30 Jan 2024 19:45:30 -0500 Subject: [PATCH 5/6] dt-bindings: PCI: dwc: Add 'msg" register region Message-Id: <20240130-pme_msg-v1-5-d52b0add5c7c@nxp.com> References: <20240130-pme_msg-v1-0-d52b0add5c7c@nxp.com> In-Reply-To: <20240130-pme_msg-v1-0-d52b0add5c7c@nxp.com> To: Bjorn Helgaas , Jingoo Han , Gustavo Pimentel , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , imx@lists.linux.dev Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-2d940 X-Developer-Signature: v=1; a=ed25519-sha256; t=1706661950; l=1214; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=cfu6DwDb0l7oT09xNpxjpxzHoXAlkfWEhm2pP3eS+Z0=; b=eSiFbo1e8v1w0/khlc/jIGteYlx1FXSj+QNnu5Dg6nmkEz8JBuXjM6Q1MfwqsGJOuVE+2BjeS 7J03CQ/nRwsCsrg92n14XENpAoKNuTg/P0u+wzCzWckX2pGv3Qq/Vdd X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0225.namprd03.prod.outlook.com (2603:10b6:a03:39f::20) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|VI1PR04MB6877:EE_ X-MS-Office365-Filtering-Correlation-Id: 1f9a4b83-914d-40cd-852c-08dc21f605d8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zz0Wk0GLFJ+JFP+bAVAxz8oB4OUMGQGNXymInE+Lq7oCiSl9Tm9Ms9Uo9C+fi1ENE4wshnZa0YXrlmqwZGR798buNpwd+m/EJFhz9a3pXWp+YYu2ZqMQ9A5AIlGbln479fQZxuI6VxtaENR79pemC0rDRv7QcEyY9AzxNf1RXy0fjW9P84wRSmRsbzFclysA6SjCzk0wESTD8P74zLdZiSuM1y+yBiljpWPFqRD+v9PBYajuuHN55DHp0fVxJTex4vzmtK4iZOYR8sf3g85SBKvP7VL+WXn7v+zWbDMFT5PEubJh02y0K1N26IDl3LGP+BmOvd1oC6BYqXjWe3t51nl7D2NNWpwTASRR9C1Pf6JIIb96e0WH/OW9e7VsPvcvCjrQchxPyE2LlmqvgljP/xZxovyhgbnun7VLQ3RYunZ9Rs5yRJocOwKd27JzCmO7Cg0gxHvG2uUCHcDksXx65SJUxBCiuFnsqKoskzIG5uVs6pPi1jndukOBBlH0HyKUlxyeZ6gdnz4VWUrPLHXlfdwXHJfOZfT9MrU1X4SIUKvRBcozNpvKVr0E3RMyNJ3ZVGMUR5c+mkthbNSn+/Y+8rYKyGCX7xsyoN201rGAD0m3TF4hZj9vJSstoO8PGOz/tanMaJg1cPwhV+k3sPUY6g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(366004)(346002)(39860400002)(376002)(136003)(230922051799003)(186009)(64100799003)(1800799012)(451199024)(41300700001)(921011)(26005)(36756003)(316002)(66476007)(38350700005)(6512007)(52116002)(478600001)(83380400001)(2616005)(6666004)(6486002)(6506007)(38100700002)(86362001)(5660300002)(7416002)(2906002)(66556008)(66946007)(8676002)(8936002)(4326008)(110136005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?+Gfp/yw695K/+1WJpkEQhVyak2S/?= =?utf-8?q?i8jge+og1QEobPjnwJKPkOxMo9WR6U3TucQbQxUF0aLpUIhxYucaR4LQBgyx+sqwo?= =?utf-8?q?uiAc9LmSgYzy0SY8Kv8f36/ddJ5IJbKZvGPfoEOuO4d3o3D16Fe3hZcAN57XrcbBL?= =?utf-8?q?oL+bku0MhLZvTV8wZUoDS6asl9pJh61zqhasj2U320ULm9WIzC3ha6CqBp462Niq5?= =?utf-8?q?8bQfev7p52EviEILJNn8iBOZwCXFrcVeL49FHVvWyx+hC6Dp6Bio0occOGLc3fol4?= =?utf-8?q?Ra0DaCZ6WbtOFqI/yae9FZ2Ao3FHrSyjnygtP6eixFFi35tC8j3DNlKuEBvefthb5?= =?utf-8?q?ZcqaCgiKqzN//nZymVo1N6hOefCk7X+SD4gbkM0IHAEWQB+xtlvi8P9XFFGOqPR3L?= =?utf-8?q?ExwWwKyOTMWUNrcYtN2XvMcNqG5pOjAEDYX1ARMILoYLr17ufWezbh2SGBF8+IPYJ?= =?utf-8?q?TIPL9J2aOr6haXLuxEnCEWeg42sj7UKoXZqzXzKHp6+wjIk/vTpguxhr0oYzMwp0W?= =?utf-8?q?j4aEmWlfbvUZGCiYBtrXc5aMpcAOfWCC3qgSWKMeO4Qyyf4czjADqqMJ2HXaBaQz8?= =?utf-8?q?iigHLxk/kA6t8dWikS44z0/w2s+HrDh3SyqfqMOB87p4Xr2dmxgbZ/aRZWoA/Ycyu?= =?utf-8?q?Mh2aFzqLB2S5FFMMKWHScBvUGL/SzVESzb7puKc3/EfTONlYksmsiX7LIYw+CREFE?= =?utf-8?q?0wbvalkfD1Y4fpCetydyqtWP8MH5QYFzMwAr/1FR6a8A8ge08KQr8a/cyGcj/i/5K?= =?utf-8?q?GBobwWxoeVrCYjMQwMd7a03rgVZB59bUTGvbrV8Y52Buzs7sET4Sh8ngW3gY3T9uO?= =?utf-8?q?aLCG3uimFLk5c7WJEcD6KzkS2lC8vsjok+rHkRbTN2ZqdL5M6kCKnXqFQPaLLd74T?= =?utf-8?q?A5kCK8hbuXnbSfkPebFQQAVIqLL3huLbm5DqVjWkYn+H9VWxhESZz6rNNUD2bKRDO?= =?utf-8?q?Hv+Wann1RMmAQO7Y78+SOazmls6OmkRERKMJ9kudv17rpynkWyp5vfwm+rPzqSw1I?= =?utf-8?q?4mdGIMQFsC9Pg7/8ITlBXIphCrX6iLawkeuBtzKtRGj367gdip729BLzYLHG1PADs?= =?utf-8?q?rOzP+SCOs+b97A5SJFPNPLNtw6LJsvq0odtab4HNWmiXCZ9SiLRb0tXE6opYFry9g?= =?utf-8?q?vD7ryyrntycFFKneDxJRfR07OIX7TvZ06TsyCZHRKQekzEAwzKY7A3qpnTq7Zo4av?= =?utf-8?q?ECGteLKnhDacJu0bU4e/C2imYjGL9KOc/ThGX3g2b7TZjLpXtLTpTYfFRLlFPMPun?= =?utf-8?q?ky52iJxKyXZElNrj8OGRvmU0VLKe91GlVZ30uPqc8MwBVfepZqN+L+IqyndkSNVHP?= =?utf-8?q?DDUqTHTqTY0uCqIk9q6T5J8YdGdiSf56TVOxGKN4j56+7L9n57ZUN+RqJdu2Crows?= =?utf-8?q?QcYbbdi+ejghbqiCISF5PNQ0lmtMJsPsXsFGnaQafVt0xT3+/Lij+Uc217NRvnjVA?= =?utf-8?q?rtm49XuRD6un902ayOaajvCnxZALU/UTMUe/XgRDxByMmFVC0ijgV8iyC7MRTGvpb?= =?utf-8?q?NYYgsPCsmc0O?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1f9a4b83-914d-40cd-852c-08dc21f605d8 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2024 00:46:12.5033 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: oEfnUyMOCUKn1XWdgsLRM4m2DF3tQtFoeQClWF6787w6Ez/uArHcM69/11nl58G6smbVvDxM5uvlWSf64Ohhzw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6877 Add a outbound iATU-capable memory-region which will be use to send PCI message (such as pme-turn-off) to peripheral. So all platforms can use common method to send out pme-turn-off message by using one outbound iATU. Signed-off-by: Frank Li --- Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml b/Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml index 022055edbf9e6..e27d81b6a131c 100644 --- a/Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml +++ b/Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml @@ -101,6 +101,10 @@ properties: Outbound iATU-capable memory-region which will be used to access the peripheral PCIe devices configuration space. const: config + - description: + Outbound iATU-capable memory-region which will be use to send + PCI message (such as pme-turn-off) to peripheral. + const: msg - description: Vendor-specific CSR names. Consider using the generic names above for new bindings. From patchwork Wed Jan 31 00:45:31 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1893181 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=fQufqIj6; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45e3:2400::1; helo=sv.mirrors.kernel.org; envelope-from=linux-pci+bounces-2851-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org [IPv6:2604:1380:45e3:2400::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4TPk0Y6PLvz1yQ0 for ; Wed, 31 Jan 2024 11:47:57 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id A453C289397 for ; Wed, 31 Jan 2024 00:47:56 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EFBA215C8; Wed, 31 Jan 2024 00:46:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="fQufqIj6" X-Original-To: linux-pci@vger.kernel.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2062.outbound.protection.outlook.com [40.107.20.62]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D3884DF63; Wed, 31 Jan 2024 00:46:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.20.62 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706661982; cv=fail; b=fkdaeFkS0hFaHFI6ge3+/8EnFnZ7Kxg5mNg5DnIDL0fLkpgHzoIlEykZXJRj7LPklhzhLo7InBLqoUAPzpBTTpUMFeEM2CohyB8BMqQM28P32nVa7F0mFVi9QH6AJ9zAEpIYIUdpb7oHJq8UyH0pIXj+LP9nMFWCVpUfeWaT5Lc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706661982; c=relaxed/simple; bh=w5ej/3IyEY+WZO1JvfC0AqolZMkMcYnAfQL4D+f2MCA=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=dST3smhvJXD1EsE2KVY5r6Zud/2wUUuGWkPq/S7dicmBywfkLsG+yOArXP2nvsM5mUmrW9ceGBdYvVs2v6/pkY9V2df9lTFlQra67tcHLaxnvFH4sPB2m5GAYvAoITdmVPABnxZnJcKCBS0HoUE8ogRokxkRQuc4+vtIHNE3zT0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b=fQufqIj6; arc=fail smtp.client-ip=40.107.20.62 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KxcX9lcWCe3uW/D9Oo5kgr20TlonZf6fZJrZZYTlZPYmHyEE9fNFqxdWqtNzIJ9I6FTN2GPEapTATrP653Gc/e7QZwMNhVyog7quJ2AxSK85Rnf2eKTgCUnZz/Yjg4SuILjfTMpODffJgu7W3hPzcO0yE80lHk2HZSR9SF4cL4Tjj1IxtXPLZI8A/ZfQZwct8uJaJ+1ysjK1ms8ehG9dJm9EC1gd/mg1FskfSrU9EkPQVlKMAxsYA1eiy6xv0gQukV/PUfyHMn+sXR2xybhJ1sxESGXYypvbe7jFnz2+T8JHudR4olkmpdXhRUcxyuHumH/hvz0UNKVXGGJKqSIE2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=oEbzfKH1xUS89dtwi8tCWKu2ZeVTsxGddGeKiXwLfVQ=; b=SMQUNrOl/Ti6yl4sRx5jG0lJaBEmBoRj2fDHrc7+Yj6zF03xY922aKnQttF++5yBcX0G48biooQnWJtQo6FB/rKi6kk0GlQ6tKa2NZJsrrW5wKepI7XItRntY8V/b3Btv/cfFtgPQuKZveh8wxHrd3CFhZn+egBsRJQgkyZarLcLYfDHr8gwcRf6xLdFPt91a6DGaDg8sYwoox6gDaY69IYZ805MspqPp+O0pswqsk5adoJrsOOe9XHi/l7apuNCrIzwiln3RLPSfLZYYe2/AmjKSRZB0q5NaJ5vYgEWIk0mT8piPKKc1Z7/vyYC3Iv1l4epYahWFc3fn7fYiclwhw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oEbzfKH1xUS89dtwi8tCWKu2ZeVTsxGddGeKiXwLfVQ=; b=fQufqIj6sAwGvAWiSI4kfn03Rvqf6pdofp1+Lgd86c8oV88bp3PFdsrh6JeKGG8FPOAZUH2LKKZZJ/mFz73J4xi9q4C8YaV3L2ITMk30NcasAeHXrjDRxnjZSQollpDkPk4uLlr5CDJVZ34o/ePRmQtStKNrXM2k8eZwuWuJMug= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by VI1PR04MB6877.eurprd04.prod.outlook.com (2603:10a6:803:131::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.34; Wed, 31 Jan 2024 00:46:16 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::c8b4:5648:8948:e85c]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::c8b4:5648:8948:e85c%3]) with mapi id 15.20.7228.029; Wed, 31 Jan 2024 00:46:16 +0000 From: Frank Li Date: Tue, 30 Jan 2024 19:45:31 -0500 Subject: [PATCH 6/6] PCI: dwc: Add common send pme_turn_off message method Message-Id: <20240130-pme_msg-v1-6-d52b0add5c7c@nxp.com> References: <20240130-pme_msg-v1-0-d52b0add5c7c@nxp.com> In-Reply-To: <20240130-pme_msg-v1-0-d52b0add5c7c@nxp.com> To: Bjorn Helgaas , Jingoo Han , Gustavo Pimentel , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , imx@lists.linux.dev Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Frank Li X-Mailer: b4 0.13-dev-2d940 X-Developer-Signature: v=1; a=ed25519-sha256; t=1706661950; l=4224; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=w5ej/3IyEY+WZO1JvfC0AqolZMkMcYnAfQL4D+f2MCA=; b=G9CDMmzzSg7ushqUxI6CN1B3eanQca1agkuFSlgt7Z96N/+IWj1Dz1TT11jgLoP40rVCKd8IZ 5JBpVI4l/0RC9IEcmAhFTTupT5H7tIkIpOhubhJediz/2++36LbkZzZ X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0225.namprd03.prod.outlook.com (2603:10b6:a03:39f::20) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|VI1PR04MB6877:EE_ X-MS-Office365-Filtering-Correlation-Id: 663c77f4-7ead-435e-fb9c-08dc21f607ee X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fGI8HVw6CITlVT19yLJ50uYeVZ2MvmQqhch15yZl1dLmBwpC44QPgfoibMlDDkB3YdKI2nM/lA7uXUWze4+WExiUw4HsS98F3QU/Fgjy+IHoWzZHaHdNSN7lRRcBcyXRdg6rnPYDqMM5VtG7GDKrKdzPBD06PcaPBwvzJKqdwJh828agxWF5yxcZTvTq9rrrjG6KhccI8RNhyjymXR30YfX5x2mf6hysRMaaeSUo4dBR40jKM37a1sDuuBcm+llRLfQVVX2BglsPk33PpLy6qBzLm5CtLjkhJ3K2hk139aZmfuvoPYHvREtl5k6ruNht7/6YiaPsxdEyqUd2luscXbOvq6nE5nl5vKsT3q0eH/yEs+J4E/Kj4jqjNDO3+1brk42LymxtOzEniFHq+CsMJAJ5XRjbxN+DEKUKppbqT45SoCGDMQS9jpjzFLFWqC2hHOGIiNyv+zdpVPjuu3VAIA084dtCZSoeiqiLyYtAdLyojniYfg4OV8+a0YSanu3w2z1nuCu8epmkB0wn2QnKhE3/Ghyvacp5YfSzLxzpCkKOXA+F4m/pnn/ysINRb4Jq9BaOIBOx5264+LJpDEUsYGZXvlxf3xBg5L2GrEBBWwxK2up4GvDoH5t5VBAuSAGkVFQJdDDRlPqEnLEfuKbvSA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(366004)(346002)(39860400002)(376002)(136003)(230922051799003)(186009)(64100799003)(1800799012)(451199024)(41300700001)(921011)(26005)(36756003)(316002)(66476007)(38350700005)(6512007)(52116002)(478600001)(83380400001)(2616005)(6666004)(6486002)(6506007)(38100700002)(86362001)(5660300002)(7416002)(2906002)(66556008)(66946007)(15650500001)(8676002)(8936002)(4326008)(110136005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?Crx/ezpFTgP6VVw3NeiI0YPRd8IP?= =?utf-8?q?8iYHu1HDHc9BhJL9nrmRB25KcNUTY0l0vJmvLCQhuOf1EiYQ33yCHcxCSIu6TIsug?= =?utf-8?q?RlM0vl1ofw4H4MFxTnahsLxUHRxYjCD/J8kAOFdH2hPgnmJPEctATfFNE3MjCgt2T?= =?utf-8?q?dB6FWMvK+UtnnTNNXukp3auXFkMSUW3AfGu5mx8Dkfu4pz8Z+lvJE10l+knrB1tuP?= =?utf-8?q?xRbD19tKJsVLWcVIsApEP2wHdq5b0V8z3XvWcn2XZPKM66fjoE+ZyUJjKGugHwA5w?= =?utf-8?q?FdaHiWZqPVGmB5emXqv8VrwTGjSpFRM/Pw7q6p4gcGTm+LAPBalRwE21t7F/2ngJQ?= =?utf-8?q?sKBeXhiUTRIS75BQso53jmWaSQBIAabeH0wA4Jp1ypN3e6gT2iWRZEBzUYbIRc0RG?= =?utf-8?q?H1YQQdPEn3iMlx90vZdRjk+U1OCC/KGj/zwVy2+e3KLSvm6POAazvBiKWemhkrLz3?= =?utf-8?q?dpY/AEwzvikNbkqB58+bhVmJhsQ6we2AmtzjjLaxuegOlWdhn1U4B3EnxGXyJ1nxg?= =?utf-8?q?JdnlY1Ou+K0j8jgD07R0DjTP73XE9QcGopKsHhZ23Ev7vOKHlZ+eYuOCGliECk3hh?= =?utf-8?q?MTMW96t95U4in/Zhspw1glgMTGVdbrT1UbZELJU7zOOaszM4rQPP42kOKMB5iacgi?= =?utf-8?q?6YqebqchO4+QjIIzKAJ7i+x09anaryAf9SQXNjB3z2FBYXsZ4EFoRKV3vxvN7HITC?= =?utf-8?q?D2PMMNwpblcWELXKS08fdTy74CCbpaWRMJ+W36V2PYA/ByuVqcOxPo+fock6eqfns?= =?utf-8?q?E3guG3tuz52QtNqzoZDMsHQkAF7FhDtleym7R27nxiqi3DI5TPvSETiD0h71g0bEZ?= =?utf-8?q?LuxKIoJrSmvxcW/fxpJjwEjRLWvCIAfmeE2Q+5pkkXgd26CIdi2/kTkzrsY3N0UwZ?= =?utf-8?q?vykIJ1wIHT32KM72kinMndg1jBfGX84j47LZZlS/Mr1nKaHv9q7K8hc14tEjsefX3?= =?utf-8?q?h1lsovnMx6JZIwvgt6LwkRiCtkMCCpkYFub9R+fLPXx0WucFQbTSk2H9sH/EhEPUO?= =?utf-8?q?qXMSnGlHa+9Qcol5A1LWIMupA+m37bAxuF/Ggb1+rtyKfT0Ai8nduP2zzT0vsbyYD?= =?utf-8?q?VaLfB7w8xWPpgC09GuDj6P56MAqMZGyyAXzHbf2kQLdd92tg8mGx/t6k8S9My/vuH?= =?utf-8?q?6khH62qU+jiEmJ0/ue7rHLD7qfYLYL8zh0fEeblEwM3LibRBAgq7nWpgFmkPTmGZo?= =?utf-8?q?NFG1JETQ0+VHFO79Neqp3fl7Oo37r7jvW3z90FXU0W2etenjLGbPOEjrGYVdVSDc4?= =?utf-8?q?tYV3DSdqAAc1aICmzg/9gT1Hkj+XXXK5StDISy5Ehg4WqDQAgJm+YSlDKh+kb4rxw?= =?utf-8?q?ClDrRNZcUT7SFhvOAzuNUTYt6XicG54lmQJWlibabmK3cu+1NLo3nXUOdoG/KWxj5?= =?utf-8?q?Ec6hJySq+sIDh1ZnjgaThPNHLeEbvn4dFzRuQ6UAZgXKWRyH7T/ga0oeKOERNbSCb?= =?utf-8?q?apLkxPeyr/zNCInvkbYhPVTtx5kzIZm7Yi1Hv++m0UzgGOW2HUS/+0UmepxrY7aaq?= =?utf-8?q?Qdlxrbn91uqo?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 663c77f4-7ead-435e-fb9c-08dc21f607ee X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2024 00:46:15.9457 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4atgBjHqpHz2pa+JAZCOMI8oXcJE/IBAqkHJJXGncIO8r5AC+NQciJKDJdEad4bh+NMa78FdTCrljUd/iFcV1g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6877 Set outbound ATU map memory write to send PCI message. So one MMIO write can trigger a PCI message, such as pme_turn_off. Add common dw_pcie_send_pme_turn_off_by_atu() function. Call dw_pcie_send_pme_turn_off_by_atu() to send out pme_turn_off message in general dw_pcie_suspend_noirq() if there are not platform callback pme_turn_off() exist. Signed-off-by: Frank Li --- drivers/pci/controller/dwc/pcie-designware-host.c | 51 +++++++++++++++++++++-- drivers/pci/controller/dwc/pcie-designware.c | 8 ++++ drivers/pci/controller/dwc/pcie-designware.h | 3 ++ 3 files changed, 58 insertions(+), 4 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c index 267687ab33cbc..2a281060f3aad 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -728,6 +728,8 @@ static int dw_pcie_iatu_setup(struct dw_pcie_rp *pp) dev_warn(pci->dev, "Ranges exceed outbound iATU size (%d)\n", pci->num_ob_windows); + pci->msg_atu_index = i; + i = 0; resource_list_for_each_entry(entry, &pp->bridge->dma_ranges) { if (resource_type(entry->res) != IORESOURCE_MEM) @@ -833,11 +835,49 @@ int dw_pcie_setup_rc(struct dw_pcie_rp *pp) } EXPORT_SYMBOL_GPL(dw_pcie_setup_rc); +static int dw_pcie_send_pme_turn_off_by_atu(struct dw_pcie *pci) +{ + struct dw_pcie_ob_atu_cfg atu = { 0 }; + void __iomem *m; + int ret = 0; + + if (pci->num_ob_windows <= pci->msg_atu_index) + return -EINVAL; + + atu.code = PCI_MSG_CODE_PME_TURN_OFF; + atu.routing = PCI_MSG_TYPE_R_BC; + atu.type = PCIE_ATU_TYPE_MSG; + atu.size = pci->msg_io_size; + + if (!atu.size) { + dev_dbg(pci->dev, + "atu memory map windows is zero, please check 'msg' reg in dts\n"); + return -ENOMEM; + } + + atu.cpu_addr = pci->msg_io_base; + + ret = dw_pcie_prog_outbound_atu(pci, &atu); + if (ret) + return ret; + + m = ioremap(atu.cpu_addr, PAGE_SIZE); + if (!m) + return -ENOMEM; + + /* A dummy write is converted to a Msg TLP */ + writel(0, m); + + iounmap(m); + + return ret; +} + int dw_pcie_suspend_noirq(struct dw_pcie *pci) { u8 offset = dw_pcie_find_capability(pci, PCI_CAP_ID_EXP); u32 val; - int ret; + int ret = 0; /* * If L1SS is supported, then do not put the link into L2 as some @@ -849,10 +889,13 @@ int dw_pcie_suspend_noirq(struct dw_pcie *pci) if (dw_pcie_get_ltssm(pci) <= DW_PCIE_LTSSM_DETECT_ACT) return 0; - if (!pci->pp.ops->pme_turn_off) - return 0; + if (pci->pp.ops->pme_turn_off) + pci->pp.ops->pme_turn_off(&pci->pp); + else + ret = dw_pcie_send_pme_turn_off_by_atu(pci); - pci->pp.ops->pme_turn_off(&pci->pp); + if (ret) + return ret; ret = read_poll_timeout(dw_pcie_get_ltssm, val, val == DW_PCIE_LTSSM_L2_IDLE, PCIE_PME_TO_L2_TIMEOUT_US/10, diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/controller/dwc/pcie-designware.c index ba909fade9db1..eb24362009bb6 100644 --- a/drivers/pci/controller/dwc/pcie-designware.c +++ b/drivers/pci/controller/dwc/pcie-designware.c @@ -155,6 +155,14 @@ int dw_pcie_get_resources(struct dw_pcie *pci) } } + if (!pci->msg_io_base) { + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "msg"); + if (res) { + pci->msg_io_base = res->start; + pci->msg_io_size = res->end - res->start + 1; + } + } + /* LLDD is supposed to manually switch the clocks and resets state */ if (dw_pcie_cap_is(pci, REQ_RES)) { ret = dw_pcie_get_clocks(pci); diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h index 703b50bc5e0f1..866ab44df9fd1 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -424,6 +424,9 @@ struct dw_pcie { struct reset_control_bulk_data core_rsts[DW_PCIE_NUM_CORE_RSTS]; struct gpio_desc *pe_rst; bool suspended; + int msg_atu_index; + phys_addr_t msg_io_base; + size_t msg_io_size; }; #define to_dw_pcie_from_pp(port) container_of((port), struct dw_pcie, pp)