From nobody Tue Dec 23 21:59:05 2025 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="Cih+Wo82" 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 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=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-kernel@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?B?Z3FiTmtOWVRINVp1YTJ3SCtqeDBlSmRzQXFwOEZYb2NnNUl3REF4WTJ3MDVt?= =?utf-8?B?TE5JU1d1RE1hbkZVN3BOUFBZSlZIWjlPSURDSnhWTytEMFNpOFdIa3liWVU3?= =?utf-8?B?T29Ba1ZLdDlKbm1MNzJ6cG4xRHMvalo1MWZIM3dRd25VMUVBZ3lrY3VUbVJa?= =?utf-8?B?Mk1zNUtCM1JDd3NqcWE4WmJJWm9MdUQyYWJLZlo2WUFYd2x3aWVNaFphcWor?= =?utf-8?B?Mlh4Z2F5RG9kYU1LSFZuVG9BL0RJRWlzQVpvTWQzd0FjZmFnMjZtZEpxNXBL?= =?utf-8?B?eVVwbk5RREtUbnVtRlpvaXZtenJPcTl1R1dseXZUdWJ1cnIzNWVSR2RyK0xp?= =?utf-8?B?UkxGWnpVa2JnRmpHSXRmQlR6aWRQMWdmRC8rKzQ1MnZwTWFmWlBsTDB3MkJt?= =?utf-8?B?MzVERG00SXp4azN2a1JkSzNIQWx6bHZFY2QrYmw2TDFkZk1tV1ZGY1k4TDZm?= =?utf-8?B?TVhGMk5SWjVmS1FtWTljR3FBbjliYXc1THphaW8rVWRkTE1oNEpjQXY4QjlR?= =?utf-8?B?OHdaSXFYWGxSaFB2VDRMM2NTY0dvZjFzOHE4WWdMUW9pOUhKTnI5NVRQM2pr?= =?utf-8?B?OUNlUUorNkdBU2ViUGpMY2lmNlkwQytrZDRISkZRemsva3hlOTV3eFM4NXBz?= =?utf-8?B?SzI2QjZGK3Bhc256V1daVVozZEFXYkMxNFl2K0oxUGUvYk5JL3ZkUE5nc2Rr?= =?utf-8?B?S0dqY2RDektoNWRpRlBxK1VNNVE0ZnJ2WThqYXNtRE9aQ1NhWmtXb1hrNVh1?= =?utf-8?B?QVZJVEsrb2JlakNpVTVaZXhVTWhFcFYzZU56K3pvS2ZqOWFNQlJwR2NncXkx?= =?utf-8?B?Wmwxd1ZBY3g5MXkyK0NmT053MHBUZVhBTVRKUWtWSVQxWGRQRjQ1OGtXZ0Na?= =?utf-8?B?bmM2WU1PVVhVbHNDcE5aQWU4SjREQzkxOTgveTBpQmQzd2dsbjZhYVNoL3Yr?= =?utf-8?B?Qk9PT2pnZFBKRllFQkFJQjNiNDh3blFRdlNCNjBzYklVUG5EdkFTVCsveTQy?= =?utf-8?B?YVdOL1laL2pzZVNzbmQrQWFwQXYyQTlxK2RCVHF5UjUrT2pQc1Y1S2dOZlc4?= =?utf-8?B?UjUvb0EvQ2dnTUdpSVpyQlJ5UXIwYmFqTVJoblVqQ3FKOEpnbnYzQS9TUkEx?= =?utf-8?B?NEI4cFRNZUIwK2ZxMzBZaXJucVB4QUIzTHoyZWV2Mmo5NUhuZW1oSlg4QS9E?= =?utf-8?B?dmFvbi83WVVFNDVpWkVXQ0dTeEcyMWp0VmNRcldQdm5jSHZYTHpxRzRScEx5?= =?utf-8?B?bXhuczF0ckp1SWlDSncwSUh3VUpJeUpwZjhkWUthS0JZc2FqZy8ySVV1MlF0?= =?utf-8?B?YkwvNUlDeDJaaGwwUyt6VklHWHlJK2V3S1kxZUh1RUZQUWZ4K0Jyazdjd0tC?= =?utf-8?B?bUd3K2Y4eUVDV1F2UDVNTEpEWCtpbEp5ZHpydkE4OEcxeXkyeFRmTHByZXVq?= =?utf-8?B?VEJTMzcxMEdjR0dITGNPMWpENjdSOFJpaEg5RnY4RVZac3hKOVBJSFJKczA0?= =?utf-8?B?enh5NFFMVHM3UTVDbDAxYUxIOXFUeVR5M1E5dzFVYkNNV0FvNHBnd1QyZ0VU?= =?utf-8?B?N0d1OHFCREVkaEQ4STBEcVkwaW9haGd0Q1I3MktYL1IyRzJZeE01MmFVaU4r?= =?utf-8?B?MVRnNGllVk1Ha0NoMk5kd3pvUlA5Y1VKOWU5am9QN2xheCtzeXRadk9WVHVC?= =?utf-8?B?TGVZaXZ3ODVpYld4Snh0WS90ZVRhSmY1MEJGWWZjMHA0WnhrL2kxeTdNWEUx?= =?utf-8?B?U2E2VUpDK1pPUGlJM0c4VzlaQndSS0FZamtaYjhCdUcwbkpmeThIYkMzR1FN?= =?utf-8?B?WUZVQUU2dm85TlVMYUM0NEhQT1hmcHEwWmNlTmtiSmNQRkJCMERud1BiRDB2?= =?utf-8?B?V3p0RjNUZHBOZDZaWG14NW9yVXMzWUNJVVpTNmxNVFhtK0tlRloyd1hvS1lv?= =?utf-8?B?S0UvTVNxNHE4aDFlUElXQXZORWlPVUhXTmJySDJHWVV2a3JqS09Tejl2ei95?= =?utf-8?B?TXZKR2JyTDBENW8wSE1CQksvanFZOEJyN0FZVXcrVjBzbVJBVU9jY3phRzFH?= =?utf-8?B?RW1KMStwczI1c0FmWXJMS1d0aWhqWmRxM1VHMmhFTmgvZytKbnpzVGZJMmFO?= =?utf-8?Q?isSZiPXeFOKf+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 =20 +/* 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; =20 --=20 2.34.1 From nobody Tue Dec 23 21:59:05 2025 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="kMgZykTm" 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() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=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-kernel@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?B?S0d0T1RsbEFBaUtESU5tVVpOM1ljdkE4SkM4clVKMDI0a3ZuTlVZWkY4cmtz?= =?utf-8?B?d3dRWENMUXNHN1d0NWpjcHI1djFRRUtEdEZBNCtuWm5aNk5jcDEwUUR1NC9Q?= =?utf-8?B?bnVra1dTWThxbHRnaU9FdVN5c2EyN2tQaTA3a0s2TlZMTC8rMEU0SFlQOVhQ?= =?utf-8?B?clBLc09IemgwQ1FKQm5vWmVxVW4zNDcxTzVwa1RteFdUT2VOWXk4M1k2ZDQ4?= =?utf-8?B?RjlDZUlUZHVlUGR1RFJtazduSnVzeFErTlA0TmdZT2FicjkxSTlXWEVpdk9t?= =?utf-8?B?Z3BtWko0VzY5WFhnNHZpcjZBZVZhUVhRYlJ4M21HU1ZyYUljcTBnM2FQVUdC?= =?utf-8?B?K0NGaUdrcFJ0WGpWdjRkNk5oNW5kZW5hZ3JYVUNjVkN2NkJZMy9BVXptMjFW?= =?utf-8?B?UW9EbndJV0dJNGEwRnIwVDI5MzIrVVlyZEwxcWtDb0wwb3dOM2x5SVF0WStT?= =?utf-8?B?cU12NktMaUJLTDJBU0ZWMzZGMk9NYTJaMEpoU0szTk5oUERueHJtaG9CRmFR?= =?utf-8?B?SkUrOFFKNWJNa1B2emFSdllWZkJFY2NReUxYMlpjY0piUE1qTlVjckY5Tm9B?= =?utf-8?B?U2M5c0hjdWdzUXU1SG03ZkR0NG14MzZXcFl2Y2VjcldUVUtqRmh0R3RYcWJt?= =?utf-8?B?Z3RPUmFJQ0RSV0ZJdHBYMldGV0NjbitQbWlqUmNvRVA2dVVyWEtka2tHdHF3?= =?utf-8?B?K0ZPR3pOeTVQUW9SM1RqOTl5QkszZzdtYXk5WWxwM0crQ2s2OFZJVUd2Q3By?= =?utf-8?B?QjZUZzZ1VUJBNjZ6Tm1EZ3NxMXRjZ3ZheGNtTlZXQTYvMGxJOFlYL0hWRHJq?= =?utf-8?B?Y3d1NWlxSDh4UGpCeXVIK0hFanFRRGJZUnBNcTRDL0JFa0RaaHpuN2VnMWs2?= =?utf-8?B?a09MbWtVOGQwUkMveVpuWC9XVnhWdlpRbE1RZTBiSHhBZ3AwbW9VQ0VmejR2?= =?utf-8?B?cjBiVXlUbU12eWF2RkwxMWNFcmRDeHVYZEZ0dEV2UEJpUHcrblBXcGJqNFE2?= =?utf-8?B?SGo1bDFXdTlMRGxMWnhjeVBHWWZTMTZjRWhFTzl2VVpVMWZ4cklpYlFheDhV?= =?utf-8?B?MDk3b1l0VUxUak5tVFhabE9PYklLdEgzNklDQUxkT1dUQTVmdHFwNS9xUHRx?= =?utf-8?B?alFWR1FaN3R5K1RVanAxR0JtUnFBc1JYS0NSZStWV2xMVmwrc2Y3aDVHNHFj?= =?utf-8?B?TGNTVXJKNzNoSUJUZ3kzV0F3bWhMdGdmM3lwSGJOZXRsdUVhYmVoaVhRVXM2?= =?utf-8?B?dUlmTStsU0FRQ1RFdWhlRndxSGlDcHJxSGJPUXdDUEl5R1VUWktkRzZ2Qk1I?= =?utf-8?B?N09JVUtLclIvT3pMQTUrMGtuemhDZEVVMGNPbHpGTDF2REwwOVVWM2lsVlJp?= =?utf-8?B?akE4WTk4Vlo3Uk5zUE12VHZuVTRzbU9ZSk9hZ1NaaWJwYU4rWmxiNTQvMmpr?= =?utf-8?B?NDRKRGt5TkVlSHU5MVRWbGJzNktvZ3JpTVBNSVZ6K3IvNjBWR1BCRjdlUDFH?= =?utf-8?B?MEFvemJhLzRDcTAwYjlPWWZRMzdVUHd5N1dONXlGenRiMXg1Zm42ZGF0ck5W?= =?utf-8?B?Wnl2UjFkYTJhRVlQelAxSk5vQlp5akxJRTV0cmlXNGNVdWhHMFNCOWpFby9Z?= =?utf-8?B?VlQyWk0rbXd6bjFzbWZBZ1AxTmJGYllkQ0NPK2xrTUYwUmxHMVcyNVBJaVpO?= =?utf-8?B?b2RrTE42Q0pEL3VjNUtVTnBXZW9XOHFIekhGckVHY0JLdFZRWTFBQlRCdUl4?= =?utf-8?B?OW4yc1FVTENNek5MWlYwWXFDWjlvZTRDeFg1enlPa0Y0L0FaaHkwR296aE9z?= =?utf-8?B?NkozWHpLQU5ZSW1TZzVBVitPY1BJTC84RlhyRzZJU0wzcHZRVUxJcWw3T1ky?= =?utf-8?B?ckQ4OUdIRXV5QUI0QkNpRmp5UDZLcXNCVDFweU9OZWxxTFB1a2JwRGdNWHpp?= =?utf-8?B?Q3pQejlMV2dWcFVXTXZwZVFzeFBpWDdCVzVSRmVVUUg5VWtNWFg2TllTVVQr?= =?utf-8?B?WlBiSnFoUHZMV0ZhRjlXbjB2dVNJVW9ZWXd4Mjcvbmw0M0M3T2x6Q1U1Z0pq?= =?utf-8?B?RXhjOEVETHFCQkNRYy9iRjRQR0RZaGtTMDgwWlVvY2dvWDB5S3NBODlhZ01I?= =?utf-8?Q?sDgDXnx5P/+Ij20uXgroYzqOZ?= 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; } =20 -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 =3D 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; } =20 - ret =3D dw_pcie_prog_ep_outbound_atu(pci, func_no, free_win, PCIE_ATU_TYP= E_MEM, - phys_addr, pci_addr, size); + atu->index =3D free_win; + ret =3D dw_pcie_prog_outbound_atu(pci, atu); if (ret) return ret; =20 set_bit(free_win, ep->ob_window_map); - ep->outbound_addr[free_win] =3D phys_addr; + ep->outbound_addr[free_win] =3D atu->cpu_addr; =20 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 =3D epc_get_drvdata(epc); struct dw_pcie *pci =3D to_dw_pcie_from_ep(ep); - - ret =3D dw_pcie_ep_outbound_atu(ep, func_no, addr, pci_addr, size); + struct dw_pcie_ob_atu_cfg atu =3D { 0 }; + + atu.func_no =3D func_no; + atu.type =3D PCIE_ATU_TYPE_MEM; + atu.cpu_addr =3D addr; + atu.pci_addr =3D pci_addr; + atu.size =3D size; + ret =3D 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/pc= i/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 =3D bus->sysdata; struct dw_pcie *pci =3D to_dw_pcie_from_pp(pp); + struct dw_pcie_ob_atu_cfg atu =3D { 0 }; int type, ret; u32 busdev; =20 @@ -571,8 +572,12 @@ static void __iomem *dw_pcie_other_conf_map_bus(struct= pci_bus *bus, else type =3D PCIE_ATU_TYPE_CFG1; =20 - ret =3D dw_pcie_prog_outbound_atu(pci, 0, type, pp->cfg0_base, busdev, - pp->cfg0_size); + atu.type =3D type; + atu.cpu_addr =3D pp->cfg0_base; + atu.pci_addr =3D busdev; + atu.size =3D pp->cfg0_size; + + ret =3D dw_pcie_prog_outbound_atu(pci, &atu); if (ret) return NULL; =20 @@ -584,6 +589,7 @@ static int dw_pcie_rd_other_conf(struct pci_bus *bus, u= nsigned int devfn, { struct dw_pcie_rp *pp =3D bus->sysdata; struct dw_pcie *pci =3D to_dw_pcie_from_pp(pp); + struct dw_pcie_ob_atu_cfg atu =3D { 0 }; int ret; =20 ret =3D 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; =20 if (pp->cfg0_io_shared) { - ret =3D dw_pcie_prog_outbound_atu(pci, 0, PCIE_ATU_TYPE_IO, - pp->io_base, pp->io_bus_addr, - pp->io_size); + atu.type =3D PCIE_ATU_TYPE_IO; + atu.cpu_addr =3D pp->io_base; + atu.pci_addr =3D pp->io_bus_addr; + atu.size =3D pp->io_size; + + ret =3D 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, u= nsigned int devfn, { struct dw_pcie_rp *pp =3D bus->sysdata; struct dw_pcie *pci =3D to_dw_pcie_from_pp(pp); + struct dw_pcie_ob_atu_cfg atu =3D { 0 }; int ret; =20 ret =3D 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; =20 if (pp->cfg0_io_shared) { - ret =3D dw_pcie_prog_outbound_atu(pci, 0, PCIE_ATU_TYPE_IO, - pp->io_base, pp->io_bus_addr, - pp->io_size); + atu.type =3D PCIE_ATU_TYPE_IO; + atu.cpu_addr =3D pp->io_base; + atu.pci_addr =3D pp->io_bus_addr; + atu.size =3D pp->io_size; + + ret =3D dw_pcie_prog_outbound_atu(pci, &atu); if (ret) return PCIBIOS_SET_FAILED; } @@ -650,6 +663,7 @@ static struct pci_ops dw_pcie_ops =3D { static int dw_pcie_iatu_setup(struct dw_pcie_rp *pp) { struct dw_pcie *pci =3D to_dw_pcie_from_pp(pp); + struct dw_pcie_ob_atu_cfg atu =3D { 0 }; struct resource_entry *entry; int i, ret; =20 @@ -677,10 +691,13 @@ static int dw_pcie_iatu_setup(struct dw_pcie_rp *pp) if (pci->num_ob_windows <=3D ++i) break; =20 - ret =3D 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 =3D i; + atu.type =3D PCIE_ATU_TYPE_MEM; + atu.cpu_addr =3D entry->res->start; + atu.pci_addr =3D entry->res->start - entry->offset; + atu.size =3D resource_size(entry->res); + + ret =3D 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) =20 if (pp->io_size) { if (pci->num_ob_windows > ++i) { - ret =3D dw_pcie_prog_outbound_atu(pci, i, PCIE_ATU_TYPE_IO, - pp->io_base, - pp->io_bus_addr, - pp->io_size); + atu.index =3D i; + atu.type =3D PCIE_ATU_TYPE_IO; + atu.cpu_addr =3D pp->io_base; + atu.pci_addr =3D pp->io_bus_addr; + atu.size =3D pp->io_size; + + ret =3D 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/con= troller/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; } =20 -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 =3D atu->cpu_addr; u32 retries, val; u64 limit_addr; =20 if (pci->ops && pci->ops->cpu_addr_fixup) cpu_addr =3D pci->ops->cpu_addr_fixup(pci, cpu_addr); =20 - limit_addr =3D cpu_addr + size - 1; + limit_addr =3D cpu_addr + atu->size - 1; =20 if ((limit_addr & ~pci->region_limit) !=3D (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; } =20 - 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)); =20 - 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)); =20 - 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)); =20 - val =3D type | PCIE_ATU_FUNC_NUM(func_no); + val =3D 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 |=3D PCIE_ATU_INCREASE_REGION_SIZE; if (dw_pcie_ver_is(pci, 490A)) val =3D 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); =20 - 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_EN= ABLE); =20 /* * Make sure ATU enable takes effect before any subsequent config * and I/O accesses. */ for (retries =3D 0; retries < LINK_WAIT_MAX_IATU_RETRIES; retries++) { - val =3D dw_pcie_readl_atu_ob(pci, index, PCIE_ATU_REGION_CTRL2); + val =3D dw_pcie_readl_atu_ob(pci, atu->index, PCIE_ATU_REGION_CTRL2); if (val & PCIE_ATU_ENABLE) return 0; =20 @@ -526,21 +526,6 @@ static int __dw_pcie_prog_outbound_atu(struct dw_pcie = *pci, u8 func_no, return -ETIMEDOUT; } =20 -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 inde= x, - 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/con= troller/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 =3D 0xFFFFFFFF, }; =20 +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 inde= x, - 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, --=20 2.34.1 From nobody Tue Dec 23 21:59:05 2025 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="I1Qn22H5" 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 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=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-kernel@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?B?OW8yYUFxTlg2S2hwSlFhVWZZOUR5SUxQWTZyUFY1aWlRQUxwbUlqUndlc3g4?= =?utf-8?B?V2tmUHlvM0RZdFdwcHg0cEh3a1p4Wnh5bWtIaS90WU1wMkJLT0VTRk1FWlJs?= =?utf-8?B?dDhuaHVxYWpEY3kyRVN1S0ZsQ3RGTnBqVkhObjdnY09aV1JadnlWQW9UUEh5?= =?utf-8?B?S2VabDlRczVSZXU2WkR1VEhKUDZXdTh6K0RQWkZRK3RXMlZFSktVdUhOVVF6?= =?utf-8?B?SXpaeWFsK3VYcENrZ3dyR2I4cG5FaHl1TGJVc1dDMVlUM3lkS2ZsdkdMQkh0?= =?utf-8?B?M2tPUjhEYVNrV1hKaWZDOW9MQmVObk41Vk9NNXRnaFVnc3RuR1A2SXNkSjVr?= =?utf-8?B?ZHltZWw2NVVic3hXSVlsM280VzQvK2FweFdXcWpoWlFYTEY3OW5CZkdCdi9Y?= =?utf-8?B?S0lLYndTTDVuVm1CeElFcE1qM2wzMWh4ank2TEZUNUxCSUlYSFR6YSt6ZUY3?= =?utf-8?B?WVgyV0pMUnRLd1pTeXFudTRoRzZITnMvVWpvd3dlRngyeEF0VHlZd0ZaS0JE?= =?utf-8?B?NS9ybVFGSDRQekI1UG13UGhuRG9IbUx3QlRPWjJwN1NaZzNTUmY0V2VXbWhM?= =?utf-8?B?ck9OUDhNQktoYVBzdmw1cjlFakFVOVBrL09xdXlCbjJaWUdoSGZpUll4SG9y?= =?utf-8?B?NmZLQmNVQ3VkMmR2dzZSRFROTmpXS3V5aHdhcWRpUlhQVTU0UThRdzEvUWFm?= =?utf-8?B?MUZkRWRVdjA4V1VtYVN4V1FGaE52TkhiUEhtZm9OVkFMMnlNOVdhOGtaUEZ4?= =?utf-8?B?WUgzTUcrcGpDQ1ZuTlpPdUZXSllVWWh0czRscjhmRDVwVkkwajlqeElCd2do?= =?utf-8?B?dURXS1djcVJBK2UwWGNMR3EyL1Njek9zWkZhSzljdWVrT3pWVFNDUlhBNWdw?= =?utf-8?B?bElQSk5LU1J4d0VoeUVJTjg0bjlNVUtSQmdaZENid1kyTFBpSnBZL2dVRFRk?= =?utf-8?B?Y3k0MUZwQWdkckFzQ3hSaWlOc2d5SWpBSmVXZ0g2Um83blRlMTJ4Yk51TmNV?= =?utf-8?B?amhtWEc4ODErdThiMkxGdExBNDdpRDMrc3BLaHdwenpDVi9EaWZGN1FSTUVl?= =?utf-8?B?RTVhaHdtbUdBL0pVeGx3UGJ5eGZVUmsraTdCNmxaNjJuengwcm96R09aeFBy?= =?utf-8?B?MG5pMm1wbk9abnRaV29KLzdxSURqWjZ6RDl1WGlybXp6NFJXeldjcnR4MHZQ?= =?utf-8?B?aWtHS0pwY3ZCRXhqMzlGNGhDTEltS3JtM1Q0T2k4NVpjdEpzdWxXWGRBMXhG?= =?utf-8?B?MWk1a3BNQU1oY1podGd0UEJsS0RUa1BUWVVSZW83ZEVhYzZlbE9KR21qM0ky?= =?utf-8?B?ZGhsbkpObXV2UG1vM3dEY3ZmR2QyVVBIWFNWQ0FwZXZGMWhYTk1nYjBMNmU3?= =?utf-8?B?clU5STdXazZ0Y2NJYVpSZlBwdDcyKzlneHl4Um5LZ1BKcXRBczRsOTBXMHhs?= =?utf-8?B?VWtKY1FDQ1lnenZsU2JURTFMdER6UmYyejJ6Nkg3OUkvWnJNaFNHWW5KaW1C?= =?utf-8?B?M2VOWjlkdFdWR1U5YTF1R3ZGVC9KQ1BoSklkbi9ZN2VqZ05BL2JYMUpIYjF5?= =?utf-8?B?czYrT1RvR0NFSG9IV2QrWGRFUmNFT0w2VklTT3FFMU1reUlNZTE4RjNxZlFT?= =?utf-8?B?SW5JckUzSlpBYlcyNGtjbm5DaW1xajV2RWh6RE94b2NPQlkxMnk0K2M1ZzFu?= =?utf-8?B?NUdxNWE2bFIwRWRuL0crUUM5TGxURGQ5cDAvd3RwVW1TYm5kVjRHOVBZZHFC?= =?utf-8?B?bVRlbGhSWWRTSktGSEZZQmNDS3B1dU5lNFBSR1E0eHpSYjJiTTZEZWJHNTZY?= =?utf-8?B?WStOM0F3dXJ1TlZrUjNmKzlnTnRTR2N6b29qc25UTVhuNXIzZjdMWEFPMlNC?= =?utf-8?B?anJZNEhiaXFSbDNlYTRXVDMzNVQ4Y3E5K2w1MHp3cDdpd1dqZzZIYncySVZL?= =?utf-8?B?MS9CeXl6VktIWm5xUmp3c3VpbHU5YXRUay9lN2x5RThuWTUzbEhFWWRjQlFR?= =?utf-8?B?aWtaTWNaVkttZUJhSHdyNXBhYjMxV1o4cTFvdldUbXpQdXNFSng1VnR5YkFp?= =?utf-8?B?UkIrQjZrait4NHQzb0lGbENXR3d0YVU4VU9YRW5QWVFrNGgwK1Jxa0JQNE84?= =?utf-8?Q?LpQLoCeYFgGCntgwbrTNZcwSP?= 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/con= troller/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)); =20 - val =3D atu->type | PCIE_ATU_FUNC_NUM(atu->func_no); + val =3D 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 |=3D PCIE_ATU_INCREASE_REGION_SIZE; @@ -507,7 +507,12 @@ int dw_pcie_prog_outbound_atu(struct dw_pcie *pci, val =3D dw_pcie_enable_ecrc(val); dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_REGION_CTRL1, val); =20 - dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_REGION_CTRL2, PCIE_ATU_EN= ABLE); + val =3D PCIE_ATU_ENABLE; + if (atu->type =3D=3D PCIE_ATU_TYPE_MSG) { + /* The data-less messages only for now */ + val |=3D PCIE_ATU_INHIBIT_PAYLOAD | atu->code; + } + dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_REGION_CTRL2, val); =20 /* * Make sure ATU enable takes effect before any subsequent config diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/con= troller/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; --=20 2.34.1 From nobody Tue Dec 23 21:59:05 2025 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="W7OTadz/" 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 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=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-kernel@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?B?T1huNWhCc2xmaDI3QXVuNmFRbENGNFpKeit2UldGY0kxSC9lVEVVaVduRkZj?= =?utf-8?B?MjZmK21pUXF1TS9xdExzNi9lQjhwdGlzL295aklEdWl1blRrekR6dnFYVDV6?= =?utf-8?B?TXVCdVc4azNxR2pWKzRCdU1mN0pLQ3h2em9SVjVDaExqMkdYeGxhcmx4QkhF?= =?utf-8?B?bmpZZklZdWo2UkxwcGFKeDM2SEZ3amdvQU91cllpVDNraWtHbmU2bFVJSEhU?= =?utf-8?B?dUhkY280SzFBclkxYWU2UlNpQ1pBQjJrK0VXRkh2TVByQm9nYTJMQU8rTVBm?= =?utf-8?B?L0xoTFVKbzU2cmFDbWwySlM4WmRnVDZJUFdMUjd0RlIyaWMyOHFOV3Rsbit1?= =?utf-8?B?Tjd1NWNBd3dPVGxpVWtwUHdnby9teEt5U3FCOWVsdDd3VkhGdFQ0bjk5Mnpx?= =?utf-8?B?OU9jUDJnRGZKNWdMQ1RDcHMrMlh3TlRHT0lKOUR5MXZ3ZEJxcWh4UWMvN2l4?= =?utf-8?B?MERKNkQ0UGVlM0llTFFjRmk3Qk84ZitFcVZ0enZWZUNPZ05NRnVPZE14b3A3?= =?utf-8?B?OTM5UElKVldMOHduUnM3SGdNZEs4b0hrL0JqaFpMZnNNcU5Ec1lJbXF1Mmpq?= =?utf-8?B?dVN2aGxiMm5PRkdCVHp3NzRzNW1pVlB4MXI5NTN4UWt4eUw2MGhsbE9FaEk5?= =?utf-8?B?eU1QZ1A3aVFQU1poZkZUSnd4UG1SQ0ZEcEV1Q2RReVF6c0NWMmE4WDVrNlJE?= =?utf-8?B?WnZMb1Q2YnBtVVduT2ZYUlVXNGF1eFRqRGZ3TFlseHA2clc5YWVHWURMNVJo?= =?utf-8?B?Q2pEVnhYbHBjb1V3dng0R2Y0Yk01Z2psYTE3N3B3V3cyNlBDS0tqVXdERUIr?= =?utf-8?B?MmhZR3FSd1FQYlVvenNCc3UrUy81UEdHTzlFMUY3NE1yMEFoeUhtcitzTVNN?= =?utf-8?B?SE81dVBZVHRNMHBrNUhHUmRaSFBkeUlEa0YxQzVDVzdUQm5Id29INit6cG12?= =?utf-8?B?VUVENU9LeUUrcEpDN3RkOWU5OHhMb3VPNTVqS3htSlpCN1hCV0RCRDZWWDlj?= =?utf-8?B?UUI1WCtyNHhjeGZvNzh3cHFDbzRJUWUrT0tkZ0Y3T2s4OHZwL1NXMWVhdklt?= =?utf-8?B?YUp4SmZ6djBXR0tvdEhpdW5nZG9qRjlXcVdnUUZYbVFmVWZlUFIzRXpxNExq?= =?utf-8?B?Z1lFUUVNTTdGMjNBNUR2Wk4wbVRmZFRweW1uNEhZSVlKK1cva09yOWtYUHhD?= =?utf-8?B?K2JzcHcrRVpvN0RtUzFKTmp2WnphOUZpRWlDRVRNUUE5WDJYOXZWaDgyWHNn?= =?utf-8?B?VEIwbm1jWVY3OGp3RXNnWDlUU1k2V1l3UFpNNU9ac2hGaW8rVklrT0RBTjFU?= =?utf-8?B?K0JWb3JJUVlxZ09oMExWZDVGb2VYSW9EVzExVU1nRW5CRldUU2o0ckIrSVJN?= =?utf-8?B?SFNEaS9wdGhLMDFmamJzMFZ2amtRSWdkL0lsaUdQUUlBN0E3emVxUG5CaHZH?= =?utf-8?B?MWpQa082aUc5WklmR1pSYXpRS0FCSTJHbGNocU5JTkE3TlQ3R3RxVy9zcjZT?= =?utf-8?B?djduRTBZblNoTm5mM1RIWlZ6cDgxUVNhS0VxNlVoSW9XbVpDdjRZM1dQM0I4?= =?utf-8?B?aTQvTnlQeXBMMlRZK0FUN0ZRNmU5Q1pycGFTMXRwMmRmbnRGNmNZSjJEVXpO?= =?utf-8?B?eWZkcEkyRzdXNUl3cUdtWnZ4Wk1BODBuOFl4TDl1ZXcrd2VqSHRmbzVLY1hB?= =?utf-8?B?bnBBeUtsV1BVZHQ1aHppWnRCbnQrWTk0Y3pNN1ZORlRTRU04VDRKU1ZEdnVH?= =?utf-8?B?Q2QyeEhJakpiMTlWNFVGcVYrN1FBcktHcHJPbTBJbk1VeUc1bGc0NnVGa1U2?= =?utf-8?B?ODdjYWt2eDlGa29LUXYyWnFmbk93aTRqeDFGZTlYR0oyYTJNZmNQL21tcU1O?= =?utf-8?B?bE95WFUyR0l4SE05K2k2MHFWQnZSM2JIRmhDMlI4RjZVR1lVK2YxcW5DNGdH?= =?utf-8?B?WGFsbXNOTXZuWVNvdlNob2lISzM3czNYUnBDajQ0UDJ5TmxEZXQrUTJMdjVJ?= =?utf-8?B?bXRzOHNFM3AyNEk5WWpzMzhPd3lKblNpdUtyRUVia2FlOHZ6YnFPcngzTCs0?= =?utf-8?B?Q3Rsb2QrWThSTi95L0lKcXgxSWo1ak1wNFdQNlJyU2dyUWZMTGFHayt3c1hw?= =?utf-8?Q?lcb6GIZRT7nUntgaTjJYOhtFY?= 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 =20 +#define PCI_MSG_CODE_PME_TURN_OFF 0x19 + extern const unsigned char pcie_link_speed[]; extern bool pci_early_dump; =20 --=20 2.34.1 From nobody Tue Dec 23 21:59:05 2025 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="TGW79rl7" 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 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=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-kernel@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?B?K0dmcC95dzY5NUsvKzFXSnBrRVFoVnlhazJTL2k4amdlK29nMVFFb2JQam53?= =?utf-8?B?SktQa094TW85V1I2VTNUdWNRYlF4VUYwYUxwVUloeFl1Y2FSNExRQmd5eCtz?= =?utf-8?B?cXdvdWlBYzlMbVNnWXp5MFNZOEt2OGYzNi9kZEo1SUpiS1p2R1Bmb0VPdU80?= =?utf-8?B?ZDNvM0QxNkZlM2haY0FONTdYcmNiQkxvTCtia3UwTWhMWnZUVjh3WlVvRFM2?= =?utf-8?B?YXNsOXBKaDYxenFoYXNqMlUzMjBVTG05V0l6QzNoYTZDcUJwNDYyTmlxNThi?= =?utf-8?B?UWZldjdwNTJFdmlFSUxKTm44aUJPWndDWEZyY1ZlTDQ5RkhWdld5eCtoQzZE?= =?utf-8?B?cDZCaW8wb2NjT0dMYzNmb2w0UmEwRGFDWjZXYnRPRnFJL3lhZTlGWjJBbzNG?= =?utf-8?B?SHJTeWpueWd0UDZlaXhGRmkzNXRDOGozRE5sS3VFQnZlZnRoYjVaY3FhQ2dp?= =?utf-8?B?S3F6Ti8vblp5bVZvMU42aE9lZkNrN1grU0Q0Z2JrTTBJSEFFV1FCK3h0bHZp?= =?utf-8?B?OFA5WEZGR09xUFIzTEV4d1d3S3lPVE1XVU5yY1l0TjJYdk1jTnFHNXBPakFF?= =?utf-8?B?RFlYMUFSTUlMb1lMcjE3dWZXZXpiaDJTR0JGOCtJUFlKVElQTDlKMmFPcjZo?= =?utf-8?B?YVhMdXhFbkNFV2VnNDJzajdVS29YWnF6WHpLSHA2K3dqSWsvdlRwZ3V4aHIw?= =?utf-8?B?b1l6TXdwMFdqNGFFbVdsZmJ2VVpHQ2lZQnRyWGM1YU1wY0FPZldDQzNxZ1NX?= =?utf-8?B?S01lTzRReXlmNGN6akFEcXFNSjJIWGFCYVF6OGlpZ0hMeGsva0E2dDhkV2lr?= =?utf-8?B?UzQ0ejAvdzJzK0hyRGgzU3lxZnFNT0I4N3A0WHIyZG14Z2JaL2FSWldvQS9Z?= =?utf-8?B?Y3l1TWgyYUZ6cUxCMlM1RkZNTUtXSFNjQnZVR0wvU3pWRVN6YjdwdUtjMy9F?= =?utf-8?B?ZlRPTmxZa3Ntc2lYN0xJWXcrQ1JFRkUwd2J2YWxrZkQxWTRmcENldHlkeXF0?= =?utf-8?B?V1A4TUg1UVlGek13QXIvMUZSNmE4QThnZTA4S1FyOGEvY3lHY2ovaS81S0dC?= =?utf-8?B?b2J3V3hvZVZyQ1lqTVF3TWQ3YTAzcmdWWkI1OWJVVEd2YnJWOFk1MkJ1enM3?= =?utf-8?B?c0VUNFNoOG5nVzNnWTNUOXVPYUxDRzN1aW1GTGs1YzdXSkVjRDZLemtTMmxD?= =?utf-8?B?OHZzam9rK3JIa1JiVE4yWnFkTDVNNmtDS25YcUZRUGFMTGQ3NFRBNWtDSzho?= =?utf-8?B?YnVYbmJTZmtQZWJGUVFBVklxTEwzaHVMYm01RHFWaldrWW4rSDlWV3hoRVNa?= =?utf-8?B?ejZyTk5VRDJiS1JET0h2K1dhbm4xUk1tQVFPN1k3OCtTT2F6bWxzNk9ta1JF?= =?utf-8?B?UktNSjlrdWR2MTdycHlua1d5cDV2ZndtK3JQenFTdzFJNG1kR0lNUUZzQzlQ?= =?utf-8?B?ZzcvOElUbEJYSXBoQ3JYNmlMYXdrZXVCdHpLdFJHajM2N2dkaXA3MjlCTHpZ?= =?utf-8?B?TEhHMVBBRHNyT3pQK1NDT3MrYjk3QTVTSkZQTlBMTnR3NkxKc3ZxMG9kdGFi?= =?utf-8?B?NEhOV21pWENaOVNpTFJiMHRYRTZvcFlGcnk5Z3ZEN3J5eXJudHljRkZLbmVE?= =?utf-8?B?eEpSZlIwN09JWDdUdlowNlRzeUNaSFJLUWVrekVBd3pLWTdBM3FwblRxN1pv?= =?utf-8?B?NGF2RUNHdGVMS25oRGFjSnUwYlU0ZS9DMmltWWpHTDlLT2MvVGhHWDNnMmI3?= =?utf-8?B?VFpqTHBYdExUcFRZZkZSTGxGUE1QdW5reTUyaUp4S3lYWkVsTnJqOE9HUnZt?= =?utf-8?B?VTBWTEtlOTFHbFZaMzB1UHFjOE13QlZmZXBacU4rTCtJcXluZGtTTlZIUERE?= =?utf-8?B?VXFUSFRxVFkwdUNxSWs5cTZUNUo4WWRHZGlTZjU2VFZPeEdLTjRqNTYrN0w5?= =?utf-8?B?bjU3WlVOK1JxSmR1MkNyb3dzUWNZYmJkaStlamdoYnFpQ0lTRjVQTlEwbG10?= =?utf-8?B?TUpzUHNYc0ZHbmFRYWZWdDB4VDMrL0xpaitVYzIxN05Sdm5qVkFydG00OVh1?= =?utf-8?B?UkQ2dW45MDJheU9hYWp2Q254WkFMVS9VVE1VZS9YZ1JEeEJ5TW1GVkMwaWpn?= =?utf-8?Q?V8iyC7MRTGvpbNYYgsPCsmc0O?= 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/Docu= mentation/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 acce= ss 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 ab= ove for new bindings. --=20 2.34.1 From nobody Tue Dec 23 21:59:05 2025 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="fQufqIj6" 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 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=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-kernel@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?B?Q3J4L2V6cEZUZ1A2VlZ3M05laUkwWVBSZDhJUDhpWUh1MUhESGM5QmhKTDlu?= =?utf-8?B?cm1SQjI1S2NOVVRZMGwwdkptdkxDUWh1T2YxRWlZUTMzeUNIY3hDU0l1NlRJ?= =?utf-8?B?c3VnUmxNMHZsMW9mdzRINE1GeFRuYWhzTHhVSFJ4WWpDRC9KOGtBT0ZkSDJo?= =?utf-8?B?UGdubUpQRWN0QVRmRk5FM01qQ2d0MlRkQjZGV012SytVdG5uVE5OWHVrcDNh?= =?utf-8?B?dVhGa01TVVczQWZHdTVteDhEa2Z1NHB6OForbHZKRTEwbCtrbnJCMXR1UHhS?= =?utf-8?B?YkQxOXRLSnNWTFdjVklzQXBFUDJ3SGRxNWIwVjh6M1h2V2NuMlhaUEtNNjZm?= =?utf-8?B?am9FK1p5VUpqS0d1Z0h3QTV3RmRhSGlXWnFQVkdtQjVlbVhxdjhWcndUR2pT?= =?utf-8?B?cEZSTS9QdzdxNnA0Z2NHVG0rTEFQQmFsUndFMjF0N0YvMm5nSlFzS0JlWGhp?= =?utf-8?B?VVRSSVM3NUJRc281M2ptV2FTUUJJQWFiZUgwd0E0SnAxeXBOM2U2Z1QyaVdS?= =?utf-8?B?WkVCelVZYklSYzBSR0gxWVFRZFBFbjNpTWx4OTB2WmRSamsrVTFPQ0MvS0dq?= =?utf-8?B?L3p3VnkyK2UzS0xTdm02UE9BYXp2QmlLV2VtaGtyTHozZHBZL0FFd3p2aWtO?= =?utf-8?B?YmtxQjU4K2JoVm1KaHNRNndlMkFtdHpqakxheHVlZ09sV2RobjFVNEIzRW54?= =?utf-8?B?R1h5SjFueGdKZG5sWTFPdStLMGo4amdEMDdSMERqVFA3M1hFOVFjR29wS3NI?= =?utf-8?B?aFoyM0V2N3ZPS0hsWitlWXVPQ0dsaUVDazNoaE1UTVc5NnQ5NVU0aW4vWmhz?= =?utf-8?B?cHcxZ2xnTVRHVmRiclQxVWJaRUxKVTd6T09hc3pNNHJRUFA0MmtPS01CNWlh?= =?utf-8?B?Y2dpNllxZWJxY2hPNCtRaklJektBSjdpK3gwOWFuYXJ5QWY5U1FYTmpCM3oy?= =?utf-8?B?RkJZWHNaNEVGb1JLVjN2eHZON0hJVENEMlBNTU53cGJsY1dFTFhLUzA4ZmRU?= =?utf-8?B?eTc0Q0NicGFXUk1KK1czNlYyUFlBL0J5dVZxY094UG8rZm9jazZlcWZuc0Uz?= =?utf-8?B?Z3VHM3R1ejUyUXROcXpvWkRNc0hRa0FGN0ZoRHRsZXltN1IyN254aXFpM0RJ?= =?utf-8?B?NVRQdlNFVGlEMGg3MWcwYkVaTHV4S0lvSnJTbXZ4Y1cvZnhwSmp3RWpSTFd2?= =?utf-8?B?Q0lBZm1lRTJRKzVwa2tYZ2QyNkNJZGkyL2tUa3pyc1kzTjBVd1p2eWtJSjF3?= =?utf-8?B?SUhUMzJLTTcya2luTW5kZzFqQmZHWDg0ajQ3TFpabFMvTXIxbkthSHY5cTdL?= =?utf-8?B?OGhjMTR0RWpzZWZYM2gxbHNvdm5NeDZKWkl3dmd0Nkx3a1JpQ3RrTUNDcGtZ?= =?utf-8?B?RnViOVIrZkxQWHgwV3VjRlFiVFNrMkg5c0gvRWhFUFVPcVhNU25HbEhhKzlR?= =?utf-8?B?Y29sNUExTFdJTXVwQSttMzdiQXh1Ri9HZ2IxK3J0eUtmVDBBaThuZHVQMnp6?= =?utf-8?B?VDB2c2J5WURWYUxmQjd3OHhXUHBnQzA5R3VEajZQNTZNQXFNWkd5eUFYekhi?= =?utf-8?B?ZjJrUUxkZDkydGc4bUd4L3Q2azhTOU15L3Z1SDZraEg2MnFVK2ppRW1KMC91?= =?utf-8?B?ZTdySExEN3FmWUxZTDh6aDBmRWVibEV3TTNMaWJSQkFncTduV3BnRm1rUFRt?= =?utf-8?B?R1pvTkZHMUpFVFEwK1ZIRk83OU5lcXAzZmw3T28zN3I3anZXM3o5MEZYVTBX?= =?utf-8?B?MmV0ZW5qTEdiUE9FanJHWVZkVlNEYzR0WVYzRFNkcUFBYzFhSUNtemcvOWdU?= =?utf-8?B?MUhraitYWFhLNVN0RElTeTVFaGc0V3FEUUFnSm0rWVNsREtoK2tiNHJ4d0Ns?= =?utf-8?B?RHJSTlpjVVQ3U0Zodk9BenVOVVRZdDZYaWNHNTRsbVFKV2xpYmFibUszY3Ur?= =?utf-8?B?MU5MbzNuWFVPZG9HL0tXeGo1RWM2aEp5U3Erc0lEaDFabmpnYVRoUE5ITGVF?= =?utf-8?B?YnZuNGRGelJ1UTZVQVpnWEtXUnlIN1QvZ2Ewb2VLT0VSTmJTQ2JhcExreFBl?= =?utf-8?B?eXIvek5DSW52a2JZaFBWVHR4NWt6SVptN1lpMUh2KyttMFV6Z0dPVzJIVVMv?= =?utf-8?Q?+0UmepxrY7aaqQdlxrbn91uqo?= 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/pc= i/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); =20 + pci->msg_atu_index =3D i; + i =3D 0; resource_list_for_each_entry(entry, &pp->bridge->dma_ranges) { if (resource_type(entry->res) !=3D IORESOURCE_MEM) @@ -833,11 +835,49 @@ int dw_pcie_setup_rc(struct dw_pcie_rp *pp) } EXPORT_SYMBOL_GPL(dw_pcie_setup_rc); =20 +static int dw_pcie_send_pme_turn_off_by_atu(struct dw_pcie *pci) +{ + struct dw_pcie_ob_atu_cfg atu =3D { 0 }; + void __iomem *m; + int ret =3D 0; + + if (pci->num_ob_windows <=3D pci->msg_atu_index) + return -EINVAL; + + atu.code =3D PCI_MSG_CODE_PME_TURN_OFF; + atu.routing =3D PCI_MSG_TYPE_R_BC; + atu.type =3D PCIE_ATU_TYPE_MSG; + atu.size =3D 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 =3D pci->msg_io_base; + + ret =3D dw_pcie_prog_outbound_atu(pci, &atu); + if (ret) + return ret; + + m =3D 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 =3D dw_pcie_find_capability(pci, PCI_CAP_ID_EXP); u32 val; - int ret; + int ret =3D 0; =20 /* * 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) <=3D DW_PCIE_LTSSM_DETECT_ACT) return 0; =20 - 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 =3D dw_pcie_send_pme_turn_off_by_atu(pci); =20 - pci->pp.ops->pme_turn_off(&pci->pp); + if (ret) + return ret; =20 ret =3D read_poll_timeout(dw_pcie_get_ltssm, val, val =3D=3D DW_PCIE_LTSS= M_L2_IDLE, PCIE_PME_TO_L2_TIMEOUT_US/10, diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/con= troller/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) } } =20 + if (!pci->msg_io_base) { + res =3D platform_get_resource_byname(pdev, IORESOURCE_MEM, "msg"); + if (res) { + pci->msg_io_base =3D res->start; + pci->msg_io_size =3D 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 =3D dw_pcie_get_clocks(pci); diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/con= troller/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; }; =20 #define to_dw_pcie_from_pp(port) container_of((port), struct dw_pcie, pp) --=20 2.34.1