From nobody Sun Oct 5 07:23:44 2025 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011071.outbound.protection.outlook.com [40.107.130.71]) (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 C61A2230274; Thu, 7 Aug 2025 07:09:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.71 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754550598; cv=fail; b=VmLIW93j5UkTa9M+KB1GYLesVHfT2f7St/tVBVmEiXOlw9M+J4XYEstvEbCajIzv8aPlc+JQbfE0KGKrSOWOM0ON4H1z2RYk3hPy7iGGaNZqymes7HiWag0A0GagyVwu+YL/YZ9NpVckP88Q1gTmJ5JsO2nNYDzyWokxwZdp/Wk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754550598; c=relaxed/simple; bh=3St8Ocdj9FK7XCvRgdbfcQkR6G5/TXFSvF5r8DKstzY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=gdbJ8NWH5qiW+e3ME0uJwwTZzUB8X7PgKp5XsovteBlEkgwWUN4kFiP5n/ajN1zO2CmtJGKtB2kg8VTRruPMxlNbv1pjftJZQB4NaGTRCcSL/k7j1NCoahI+MJ+t/6WW/zuDyiAtobnpO33HvCS4HDnlu0ZD6glYWd++P9LSrSg= 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 (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=guR9cags; arc=fail smtp.client-ip=40.107.130.71 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 (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="guR9cags" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pfmTiLhK3wQGZYTBWJgh1IttqiwPB4IRa9Cj8201DC3yT+qwV6rgT7OQesEY8fAPUfnTzmQyWm56UPecWeEQEyzizIh6r5vbEhQ7cM8Jyo4pC0WAWausay6FvnUbp/0F2QcwT84x3o4Vo2tbTRFZjxc3K5cf5RZrL7UVm/uUy6psEwAFp8aF03u4EWZP8QnAhdjFt4JH2YpP1bqdXAJ2dUe+riaN8w9adgctcGu/CUjAIAgPF2eYEWCt1V4WPN2kr8d5hYNpqQuuxwphfunoPDTNOhVABLiHOE9Wkn7Psgztpsbt0pjmqxy4nSfIZZO3PM9745LlMcjbBeH5HtAjeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=Z5hlfoyIT+I5f55nCNfMrrYTGm0TlgxVvpty0tFsp3g=; b=h/QR8pCM+7yGnRSmcpYP3Jw/AR3cFf22gnfwB95icgTIi4xYwGhDmycUwIfOggnzvYaIb4A7G7fk3nUwZF619eAV8TktrpO8G+qGTdygA/oMGocjRQCRXExDKkOvqvUmpZ0utNCQv1LsEasPdDv2NxSQuhGxGdOBc+4DA8/hYkv1J0rj0yZ0XhkdwhMkgfupLzdnqIGF/h+i6UDy58ok8bo7mTIlXy+B9Lqg0Fx2JFlvuhU/a5jcwq6b2jNcstXUGDwk9y1MvIh2+CnZvvbjp6DGoTmSs330IPnCjh7/BJe3wnpyAOSn6P6agdDaZXJRerlZnfFuVYX75B1tipcQvA== 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=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z5hlfoyIT+I5f55nCNfMrrYTGm0TlgxVvpty0tFsp3g=; b=guR9cags5FqL6tz9Gn8X8mm4UzcL9WOQ5OkrlxCaIW6QC7Fy6zzJILTXAxe4a7eWeLIutvxSrORgHAMigGPE14yUDVAm+oA2iD5Eq1VKPa6KCVqE1S68wcmnUTeztGmksvqCrX2zxLmmEzjrgFpPM/Pex2zryyBsFkZzaDSplq+avwoPDx7hX6xQvZJNCuzM2gdAYK9NPA568nu1FJOLlaTSkTc63PDCvNFxgXtjQ6fI6k7/zKC4SbvQsAvFWuRGu9wU6hPPv6JSjLDbHaYS6LphiJ6dzo+KYa1tfz8cSPYI5uDD/uzLuR9jdchh9bRjZsqcMVbsrU7PaSxnVtOyEw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AS8PR04MB8833.eurprd04.prod.outlook.com (2603:10a6:20b:42c::19) by DU4PR04MB10814.eurprd04.prod.outlook.com (2603:10a6:10:58d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug 2025 07:09:55 +0000 Received: from AS8PR04MB8833.eurprd04.prod.outlook.com ([fe80::209c:44e4:a205:8e86]) by AS8PR04MB8833.eurprd04.prod.outlook.com ([fe80::209c:44e4:a205:8e86%4]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025 07:09:55 +0000 From: Richard Zhu To: frank.li@nxp.com, Zhiqiang.Hou@nxp.com, bhelgaas@google.com, ilpo.jarvinen@linux.intel.com, Jonthan.Cameron@huawei.com, lukas@wunner.de, feng.tang@linux.alibaba.com, jingoohan1@gmail.com, mani@kernel.org, lpieralisi@kernel.org, kwilczynski@kernel.org, robh@kernel.org Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, Richard Zhu Subject: [PATCH v1 1/2] PCI/portdrv: Use get_service_irqs() callback to get PME/AER irqs Date: Thu, 7 Aug 2025 15:09:16 +0800 Message-Id: <20250807070917.2245463-2-hongxing.zhu@nxp.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20250807070917.2245463-1-hongxing.zhu@nxp.com> References: <20250807070917.2245463-1-hongxing.zhu@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2P153CA0037.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c6::6) To AS8PR04MB8833.eurprd04.prod.outlook.com (2603:10a6:20b:42c::19) 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: AS8PR04MB8833:EE_|DU4PR04MB10814:EE_ X-MS-Office365-Filtering-Correlation-Id: ee48c165-4265-4f23-48bd-08ddd5816920 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|19092799006|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?fRp9EEnd0OskyJfve506cm702jvA7F4Csmrcx8QBV2HOPK3LWVfg5r62ByPa?= =?us-ascii?Q?dp+Q8QViJ6lA/sZsSL4fQLR2LEIcED+fLAahCFNQ6RrblEqd1xiekRyEJeia?= =?us-ascii?Q?FaABEGopIiXG4XuXD6CKP8enTEeSmtOcc4SgN/DReBlj4hWLK+gMP2Cxyyis?= =?us-ascii?Q?Ca166tTOSjEyuVS+CV2qeb/5rZSq69T4SDTBWmUHkBbQHd2/S0P/CL89Iqkf?= =?us-ascii?Q?jiKNtQrqQbi8St3+WURUGbsARDdX1fZ9d/PwZTNiMSdbBpuDzy959C0RBPfM?= =?us-ascii?Q?s0rjk0Gl+Bst7YiV6dsnF0YK6jLLZnhGkQfGlZuCk9gzix/MZr4YMedo50xg?= =?us-ascii?Q?U80klQdJG/o8ZPaaFKoXzYwxaij9hq4TYaKwrIYLUr4ck8gor8SCO1Q7QuY7?= =?us-ascii?Q?uwXF13gU4iCXeOvX+3oGrWdjUsAEL/P9dn7Ae2v7gEnDXcYo/vndXCBcQVoP?= =?us-ascii?Q?ZrEDUi3wfzpu72YKVUpmehUZew53m79voYFwraZBV4lcpFvxHozRfIqfWmwA?= =?us-ascii?Q?Z5XpvDKG+bxPPucqLlBLQrzJmDES/Q9qERwvXcVHD0OdMQ8zTLL7/Da5Qpjj?= =?us-ascii?Q?91KajIaGKXAgQ2DtnZCWpF6Tov0tRF0KdLFefB3RoijqbDyibtkOSf8R7EU3?= =?us-ascii?Q?NhzumucRsbVXbCineeOhEowOyTpsQTklr9P4aPWidfppc57Yzq9k00h9qpGr?= =?us-ascii?Q?SA7qstXTwpcE4EkM7htGFSZF3e0ZecUVmvLAc44GM5oBjjRgT12TCOzJoAut?= =?us-ascii?Q?/+3YB52RDiNqL/6nIxBllSRKIs5l4qJteJGseoVm8YsoA/1U+ld+L4TFwWlI?= =?us-ascii?Q?9R3OIZr38Ea0dj3f8gZwCAOHzUxrYpDW1z5E6t5DVxMN5Umeow8lXZwdYJ/z?= =?us-ascii?Q?g3AQB4hoCL75bQ1N0qVB6PTvDTotqHSoYbt0sAk/kPW52K7NfyqZa004LlXk?= =?us-ascii?Q?yuDE3Fe/r3V39BE8NvPuU9jHpMay+LNpbr8NO27bIlWU6hcOOpF9IByf9Ew/?= =?us-ascii?Q?Lm6IKrRRjDt0Mo/9sCIvXaclxtBptTvQ+tBDNYuElDFzhivOOdLnGmHzxtWz?= =?us-ascii?Q?B0bYXwAoXKZLWQxQyvifBpTcYKrpivNkD7tGTKSY14Id5XQTHgBl+AUWYtC/?= =?us-ascii?Q?LHerwyeVXiwvQ/sYtnWzm0vr/8asC1X1Ootwv+tR8SxACtZmC9ytefiECchZ?= =?us-ascii?Q?AI19wqh0bpjS/EuxYdPC+cBx0hSGBTgd81c/TVUl9ebUFzk/gSHJxzG1odqt?= =?us-ascii?Q?PZ0NJeH3tczbodTv/SpVX9VF3+5kFpH6u5u9XoaoVx/CoqRywxR9TdJ5Wa/y?= =?us-ascii?Q?Tq4+IpRscu4ZOU+LZ1i9E0T/RdABfDgWSG5zqjukXLIMGq0FPAIWF/9tsiIZ?= =?us-ascii?Q?k8V93apgCf7qz7SCd39nXAqkdHrHt8sngNHvEPM8AuF4sPndtH5xhf7Mh3mv?= =?us-ascii?Q?M4qr5C53X2ggDg99VF/sMaq+B6+SjICrOv6h2Ki1PRnDVxRsLTGDAY0jlA/+?= =?us-ascii?Q?+QG1FNPvv7W8twM=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB8833.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(19092799006)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9y1G9T3AnO1vg+vY1tJx7FlRhy5hB0Ngm1Q6VIA2HACCfHAwTwN27rmeg57t?= =?us-ascii?Q?A1JFsSWCEtL5sPeSFnQa4zKwl8XEmwivFkyd8DxJ48m638ahtgeyEVw+H9n3?= =?us-ascii?Q?/D1BmDFjpIlReDqKj2clnix6GTGCeNTS32lvohwJ0X0V1Bc7U+ogXl/ryP2v?= =?us-ascii?Q?xX99DBpoMMnOVKEaSfpcJTa+c141TpjPh0GKayan5KORs8HTnMmJsK///bHJ?= =?us-ascii?Q?1/VU8onCcWJqwxQEUYLMnNYvZFBxvB40uPf7XQ33ZTX7EUcMA6Zu8ITksT7m?= =?us-ascii?Q?HrTgD49oUX7rOU8u9MBfxhFWgSy00ktNgR7uu/2H67xJA/+xtthb1OFBvmF2?= =?us-ascii?Q?TVnoieRKIi2b/4SieCvS5oXTXhBnXuM/mEnWvfMXuI1gxSqsxkaBT0MK3fEn?= =?us-ascii?Q?ilEjB7PrXtbJRIAl9bDRrpgPZBaXwNo5BYgJorcP8zt+D6v+KlW6Wt7Lbq/N?= =?us-ascii?Q?Sy8gUzDHc+zI8oKB/7cENbHm3EqaP0N7mGH3z8YX+/lWN914hFvmqE7mJcnd?= =?us-ascii?Q?+lIeVVMt6uTcDKmUxnPge471yezQu/04ZfRG6Hk91WbQuG4OCSrELQr3XbSl?= =?us-ascii?Q?mYI6vbXVDI9ztUNUK9L6Lt+4gmD+cj5NGbS/SSGpKJdHVlDXvEqfV22ufIKt?= =?us-ascii?Q?BvdRc6o7WGVTFx32fIgFwDSBa/4HS5NQBy2OE4aE6rTY2IbwxcNtW5XgpNLN?= =?us-ascii?Q?yieUaf8YUOxEinHBekwcbswc+b4vhAZa+CFicqqtYevOG+ZfjPFYAGjCYDQQ?= =?us-ascii?Q?wnGHU3RBj8z6p4wIVacHlSSdZeveCVZJrMPruDGheeJPoSwjRhZsLpNKlIdM?= =?us-ascii?Q?zj+If1JWo6ZMx999WqdoIsm/5iygZpFN6pGb+Twt+1XvzPCMQfy5UrNlGPfD?= =?us-ascii?Q?UJcRKYcppTHzVoPmEP2c/r0C7M21/l8qZo310WUQZ4Mw4VSyw2t9L+8qh8zl?= =?us-ascii?Q?c899YY3ZhjVEn/Ym0tmX3r+lImCtU4d1ypP0On4v0C+GtQwolGgkdKEwt7i/?= =?us-ascii?Q?qIv5RntM+uX3jGkGuOoGeRE+C1Mm8qkp41yu+NAp7OCecQf4UQHqCSAHxQpN?= =?us-ascii?Q?XAM/Xv2Y0DNC5d6tRZsBvxVriY2ETl3iWWvDNiqTk7i+Wq8AZza91lNNv1zp?= =?us-ascii?Q?0omN4Z2bRTqw3e53UJFqh7VKBITgb9IYuo74BpUgU1qdqNSir0aN8+DRK9DD?= =?us-ascii?Q?oRkVB6cBv5l4eQaC++SmPnA7s1odFVprXbWcMZUxPMEbOGnM+Zh45cvhSPJ/?= =?us-ascii?Q?7Lr4sVuLSCS86TT/eiRgxhXVgsPew6t6wjkr1ht+Gap0EN7YuwMDMzaa2he2?= =?us-ascii?Q?GXQhxcK9r8wrZpAFHNZ1TYW7czC2fVvqqBhxsa8YmiLM7R22gyxtjfb1z0Tu?= =?us-ascii?Q?P6ZKDhvsX+y4I1/Ztrn4dTH4rc+6GPHx/BwKZIvpR7gZyywk0EmSdTs9pB6K?= =?us-ascii?Q?7hpWSuzpG8zTPoXk0GRe7sQzsrpqnYTbWjZfP+agCKGBjtFwzoaW+M4YwvX+?= =?us-ascii?Q?C2We7ADJTviHO9Os2tDqkfWhL5Bmh2I3VmSkPZuw69ActkRjrKm9+4/18lfd?= =?us-ascii?Q?6Xecn37U1oq5GB3S5kJvemKoBM1rCKnc+jwKFHeV?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ee48c165-4265-4f23-48bd-08ddd5816920 X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8833.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 07:09:54.9054 (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: AU+HkRuPpORqjFdg4+9BtMOFY9UHRHrWyh6lZo4x8etgEu7VrjeK50MqrEZ7Fod2x495gu7BwsBtuiaU7/dQbQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10814 Content-Type: text/plain; charset="utf-8" Some PCI host bridges have limitation that AER/PME can't work over MSI. Vendors route the AER/PME via the dedicated SPI interrupt which is only handled by the controller driver. Add the generic get_service_irqs() callback for bridge, to let portdrv can fetch the vendor specific AER/PME interrupter by it. Signed-off-by: Richard Zhu --- drivers/pci/pcie/portdrv.c | 7 +++++++ include/linux/pci.h | 1 + 2 files changed, 8 insertions(+) diff --git a/drivers/pci/pcie/portdrv.c b/drivers/pci/pcie/portdrv.c index e8318fd5f6ed5..035e6425ce034 100644 --- a/drivers/pci/pcie/portdrv.c +++ b/drivers/pci/pcie/portdrv.c @@ -176,11 +176,18 @@ static int pcie_port_enable_irq_vec(struct pci_dev *d= ev, int *irqs, int mask) */ static int pcie_init_service_irqs(struct pci_dev *dev, int *irqs, int mask) { + struct pci_host_bridge *host_bridge =3D pci_find_host_bridge(dev->bus); int ret, i; =20 for (i =3D 0; i < PCIE_PORT_DEVICE_MAXSERVICES; i++) irqs[i] =3D -1; =20 + if (host_bridge->get_service_irqs) { + ret =3D host_bridge->get_service_irqs(host_bridge, irqs, mask); + if (ret > 0) + return 0; + } + /* * If we support PME but can't use MSI/MSI-X for it, we have to * fall back to INTx or other interrupts, e.g., a system shared diff --git a/include/linux/pci.h b/include/linux/pci.h index 05e68f35f3923..e681f2e6adc17 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -597,6 +597,7 @@ struct pci_host_bridge { u8 (*swizzle_irq)(struct pci_dev *, u8 *); /* Platform IRQ swizzler */ int (*map_irq)(const struct pci_dev *, u8, u8); void (*release_fn)(struct pci_host_bridge *); + int (*get_service_irqs)(struct pci_host_bridge *bridge, int *irqs, int ma= sk); int (*enable_device)(struct pci_host_bridge *bridge, struct pci_dev *dev); void (*disable_device)(struct pci_host_bridge *bridge, struct pci_dev *de= v); void *release_data; --=20 2.37.1 From nobody Sun Oct 5 07:23:44 2025 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010067.outbound.protection.outlook.com [52.101.69.67]) (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 2451723314B; Thu, 7 Aug 2025 07:10:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754550605; cv=fail; b=dxQAJ/TDsLbWpvsf9+eMVD+6wdNzAdLW6t0Rx48Fj5YbQDVbx4re5Wy96H6STo4g8J+YD35bAPQup8QqXra+3wc4m6X5PjNvmvMjsZTEbeqQ5ZuB/hQZyjYOdiD/Jj/XI+kFuu53y+Ct5PntJbYJizQ3+/pvTngXpTrMYZioVxo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754550605; c=relaxed/simple; bh=wWAj1Hkde0KaWvpQlC6Jt7k3DfW/OXh0GW7I8FQKHmc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=DSqQTGOv9nDxNf7d3MYmvqGOWPAkAF9wpi/gG6qFESSbGjHFlP06m5CXhslVKX39zHhUb+JqqgEJiUP/fzt7TkG4U4YHTUl7/TPwNCBoYFYHSNFW4IbKgiuv5x1GB99sTCdFc25oRrM6YaWeMEOyLvBLi9qhy1AIZBOFHNJF118= 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 (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=fkpGU6gq; arc=fail smtp.client-ip=52.101.69.67 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 (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="fkpGU6gq" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=x2dze6Ko32WtDXk8cnrGDGuCfsSdrTKYyvnWduCzZlFcCZES5d57Do+S9Lyo+q3fZga73PO+8784yjMBTyfyYHU74qj+3K8k1LeipRYYyOYjyi+wB/eDFz4IEFxvHP7wDZnCsh+fTqrS8bxI/Tr3WoY3vJVHOr0rCPYsdLx/pAZWKis44iamnZ0XaNryEqwgWBwZuOmsA0lXD5w3l9DgiOpTYR4GN4LVmedfGX4xJlfZLoEu7zUaBi/F92u7WrKycAtPq0ezCATsVN7M6A7pe7tKMQRMd/Y3zknS0tVGn6JCvifpAmupffTlgmgauOPZcec458q21KVArshdlYK5oA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=l8As4sEw3EX+RablbqbcK6WuX5UDe0w21F+HICKwf/Y=; b=hhl/753Eubx6ZC8c0KCu2S+dxxTFAlzQ5Ege381VQ2dK3LqkNJ+cdKKKjh40dNFpVnuybKXfLJ77Rdd/rExxR+cobupBZsg/adU+03sEvDUtMwZF8yw92krwZtUijdiICXrLvJCtYxvGZsjGGA1enfALgygB9keyZ6mSTjKXiDF2brBwefTipbQ8vxQhFc8BR089TOVq6vXruKSCV0JXJljnb/9bPb1EOt/g6E2svCydBZYBV0q/NuT2yhB0HNe7DeHObJ45XjNKAzlRxublmHmQVOxT6u/4ccpt6tOjVNQlijRegkMIFfzcGkx9C1nXhDLJVd94TKnAUzu7keSkwA== 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=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=l8As4sEw3EX+RablbqbcK6WuX5UDe0w21F+HICKwf/Y=; b=fkpGU6gqBw0fMLMf1gf7Qg3YJ/q06Z5EijsVXyfubLuj/NsCG9yOVz1D59peVXE4gVrNmtrlAPavZKl4nPXhdAsY45ZxfHm02CBBeyqJy/pdkFKw+V4eRFNQYKkY61f8bjVE3gBIhcO3T8Wu5qgpMY+E2gOKOJCgL5b1Xo1zm6simZHXXqW07jo4z43j43PUWGROuw2DV+OnZu8zKX1rsr1cX28no5T8BsLRY+TWM+jk4x+dVeViDFeoZXVfP06SdSicshe3/k5jXHfV3vmwG/79Tyj2Ly6ibOqOe+b6mNpFBg2+rjvM7tVj+7Wu+86VIml6ii21u4M/7GJDAa9ISg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AS8PR04MB8833.eurprd04.prod.outlook.com (2603:10a6:20b:42c::19) by DU4PR04MB10814.eurprd04.prod.outlook.com (2603:10a6:10:58d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug 2025 07:10:00 +0000 Received: from AS8PR04MB8833.eurprd04.prod.outlook.com ([fe80::209c:44e4:a205:8e86]) by AS8PR04MB8833.eurprd04.prod.outlook.com ([fe80::209c:44e4:a205:8e86%4]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025 07:10:00 +0000 From: Richard Zhu To: frank.li@nxp.com, Zhiqiang.Hou@nxp.com, bhelgaas@google.com, ilpo.jarvinen@linux.intel.com, Jonthan.Cameron@huawei.com, lukas@wunner.de, feng.tang@linux.alibaba.com, jingoohan1@gmail.com, mani@kernel.org, lpieralisi@kernel.org, kwilczynski@kernel.org, robh@kernel.org Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, Richard Zhu Subject: [PATCH v1 2/2] PCI: dwc: Fetch dedicated AER/PME interrupters Date: Thu, 7 Aug 2025 15:09:17 +0800 Message-Id: <20250807070917.2245463-3-hongxing.zhu@nxp.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20250807070917.2245463-1-hongxing.zhu@nxp.com> References: <20250807070917.2245463-1-hongxing.zhu@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2P153CA0037.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c6::6) To AS8PR04MB8833.eurprd04.prod.outlook.com (2603:10a6:20b:42c::19) 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: AS8PR04MB8833:EE_|DU4PR04MB10814:EE_ X-MS-Office365-Filtering-Correlation-Id: 920e9cb3-16a5-4777-621e-08ddd5816c73 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|19092799006|376014|52116014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?8dUE/tZTr3oA7FL9KwiBIguhLHSg0eqmYupq0YnrzM0WSpelOy6JtpdSp43S?= =?us-ascii?Q?GqW7R8hsb2r7nmT1o7TKNanwWJ1wZtgwlQ8mZNbjzwTA38AonsLfY3dNaFiN?= =?us-ascii?Q?o0GjGvTIoQLdjKBjP3F9+QrciqOIeDBTb/2MHPxIt2vO1VpzWbdZ9vb/gcsX?= =?us-ascii?Q?tniI2SXsRjaKN6CKNU49nWt5oXyhLgOEbX50+f+BsLDK/FEBLqmtcrl/byh9?= =?us-ascii?Q?hAbilo0tWKQzvqVcmWrXTo4dTF2Z6lDlpgbGpLRe8hlDG260JyCP5aDlv2Jk?= =?us-ascii?Q?jDqzflM1bISqIPw/DrRLFjfD0cXt3VSDkSzs8N9oCSFn34DXArJg5iJ9H8if?= =?us-ascii?Q?rR/jLa7pNLoDHKXuCVwnaWZMEf2DDDBq+JHgc9uwZ9iOKBiO9jOy6T2KSuyX?= =?us-ascii?Q?NK0y72iAWHSJlv66CjkWQHOce3waEo7VfqCQPYQNv2lGSY2PKxR4Faf2v5MF?= =?us-ascii?Q?VAe15gUmi+MuuuMhBfnfbrG2BFCsk3VnaFh2xBghow0yCuaM7SLO3TKecSuH?= =?us-ascii?Q?sOBohhxE4b6EVgNyeToQcbUJT9WsG6UFY7ifOqEzYX7zm0MeXGGY1q4RcT/M?= =?us-ascii?Q?8gf2qfQnCYibThMmyWMkQhX/YbJe78bh60M73WRTztNV7aYCwiuGqiTgHJzE?= =?us-ascii?Q?rVcd9RamotDYOeuQdROffZ2AerRM04U1TRDgi9REUo8/3J+XfhMxolLXWY5M?= =?us-ascii?Q?mxLO7L+pInWUJ8Y+U/e9brE1cLsoOny+MGPbS3eEOK2qJYtTVpyLvUx0cs5n?= =?us-ascii?Q?5RpOoTMp+1RYSPxfMkPz6DgX3trDYYMAxbSvTsrGE3/H3uY9GnF4JovVCni9?= =?us-ascii?Q?wUtCctPPa9HRXCH/vpAKodO42BplgmvAvW5/SSKv3N6+k0WShYE19O7ftRHw?= =?us-ascii?Q?fR1JHRoyhiixZuXzVpYZqrFuwiPqUUvWBkyvk5mhF8JKorKHY+qYBBl2OY9I?= =?us-ascii?Q?S+eIAI4J60psEVhHYCBmZjBMkt0wjU5qRKhZL1NJtG0cTuelQh0aRR97gUTQ?= =?us-ascii?Q?d3qSsP3lNgph31npqgmxQgmJwwL85VD2L5K9Wxo/RwEOTIqoMyYzB3wX4RE9?= =?us-ascii?Q?ygdDNJlo8eMmQ5C+hRfMVzfXHBSd78Fhg5Kp7M+MOOlKsfDqyoj30cMlZmel?= =?us-ascii?Q?mEBay9aNZE8qOa4PGN6teIfiXHfg0M26eUeGhSqpfUxhg8g7Q6SY0E3DDZ3i?= =?us-ascii?Q?UZ7Yr7WleTa4DUNOnBJXkXIEvbmqVBVH0f+lHJOrne52xSyhDQLlcdubZkAo?= =?us-ascii?Q?7R+Xtk5g4y2bceT1JCxmpjHw/dLil2VqJfYMVZ7ascXjnadEOkmWQKFXYXR0?= =?us-ascii?Q?UnUXWeDsorRinIfl49kPq+cTsW7ZNhcEKcQeldlP2zc0WN1NffWj0VYKxSoz?= =?us-ascii?Q?eRo1oYzu7EnwXxuTa6NPFro799NpJwq+eW7cHoxU+kMCKxM42WGWMnZAshs6?= =?us-ascii?Q?LlAxw09VF4fsaKQ9HjGJukAptovFZkUHWlPkJwYaC2WMUJmd5eMFacbTen20?= =?us-ascii?Q?PvMSpQ1kBeSAZ+Y=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB8833.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(19092799006)(376014)(52116014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2KfJf8Rz4BmUvFkfbwCBuzWM5LO+qZvQ8YW589I/7Vn+7Y7Xor0Hv8OPJA/p?= =?us-ascii?Q?qP9Vi8oi3AhOhzw8LOl1WSZcRk9QBn8XV/84nFuVQCkF8x1Gxmpnw6ta9nfb?= =?us-ascii?Q?6nrJlIBB16pPeGEeph+GbDHpJRpQhMPb5aO0n33/GXalUwF8Yw3gYy43brxB?= =?us-ascii?Q?+ypUzJQjVEqoOIQu7st57poHnUq/Sw5xiYJr1+RvQxj1xtD3UDYY+TImPSZt?= =?us-ascii?Q?jxkPdjMIKXS+gQS4CE/iWfUh6fX6/grhxNBOe27jcFLnAZC2sM3tgDlWKmcl?= =?us-ascii?Q?inLraKiM1Jkwtq9QGzvP5V1ENIu7SJaJ8c0b0ugmJnQc0il7TdhQQBt1lX5M?= =?us-ascii?Q?FU68L/NS1SoUmd9ZE334ayxooR4Jujio2UdwXPrJBxtEua6e0PN7jjwNkrIK?= =?us-ascii?Q?FN/BRUi3m08tir4atjr2HyRzG2lBzKo3FdKgpVtn/Atwc4IYtg5tBAuU2z2/?= =?us-ascii?Q?Lp+VpL3sN2Io06/ywVm5qjVuQQNiM8a9MaC2lz6p0vEWKu3v+5RFA1ATgPHr?= =?us-ascii?Q?eEBSw4f2xg0u1fJ+5X8V3MSA83dqr+owULK2nrKM/+O+P1du16pKnG6AQ2KF?= =?us-ascii?Q?QYpADjJbcmU6DyG0j0Dmkrc/8tCWO26c6/SGR9gnvsnUKeK/woSkzlgf739O?= =?us-ascii?Q?/tFx3T1s2nV/8Ix89B24VUemRHobEpym2YhdylIxNdMJA75Ut+z3ZkbVk5cO?= =?us-ascii?Q?8mNBIhcx3gEdVAnOBgJPpMTC22Z9LCYhlgFQQ4PeuPdhBe4jvT3IR/DCAueG?= =?us-ascii?Q?0jhLTwOkHIPzpMNlc0lTYWYahD0XkUEJX3kFNDr2NaDyn+ZmuTxlceZwlGvC?= =?us-ascii?Q?gRPbdotatiPxoq3QpZ11P2htsOROfx+/G6uE+jrvyc/meDfPxorHU4VlBD2Q?= =?us-ascii?Q?j3KPuaYWa719I27CxqQ01j/MO9NEXy8i/cgb02PZg096K7/5ISTCq3uK7uGQ?= =?us-ascii?Q?xSdS9pai3RHKtJVMmMDAkEIiXtVjxWaqVrq+cN9eRioxZYNsOPQ3e5Tkljcz?= =?us-ascii?Q?Ee234K0uuEhHRud+DMtf3Vormk/Kavoc3c1k9m11U8gEv6ta5y3k48xh+w8Z?= =?us-ascii?Q?PHlGnNptANvXhwS/a/iYIogxeJFKYAdofqxTs3C/uGeFYGYAVeN85pSuEq5J?= =?us-ascii?Q?HZdlbMbjPB9wyDgBCEoU1GyZGBLirdWkK6khya8K3g4eesI1YHPJgQjRvY61?= =?us-ascii?Q?9ngHKSs2BFymhDMTPvME0XMZO0ZkwW692qACTLjYsjshnEOPSdIUAi3XVuu7?= =?us-ascii?Q?S6KfpcWF9Y38tB1qlxwxRdfIZt4ZG07Cp42gWuRo/NUP2jLspClWzhUBRji4?= =?us-ascii?Q?+UZAXF/BMy7wr+l2Wp7SomQG56lUq3cgWSYq64cAbkjEzISvlsBBjR5Sfel7?= =?us-ascii?Q?sLjlUxUGocTAz5lWppsOON3R8VKdfVRGY6clSVAhToPMu1CO2rmZko3sYIjc?= =?us-ascii?Q?/5OWU84UCExw4jUFxpxQYNudWM27zujSFVfEiq6NfnPop+T7JrM4fLOh3cA+?= =?us-ascii?Q?3dy0370bo5GWFxNEEXrJkW6Thr9itJqXlGReOvxpJqCABiet4j9/FxawRSTl?= =?us-ascii?Q?1b4DcSXHW4IAhsalNWPfBCFDtctoxnEIvBso3bxB?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 920e9cb3-16a5-4777-621e-08ddd5816c73 X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8833.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 07:10:00.5615 (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: VNi3jMs+iw7ZB2iWYN485t0xlKLW5jIq3rWozVaq+LdNYYyB2uVAEuyNfJDhFvWAgP5nxu02hxk4SIWdZIp6sA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10814 Content-Type: text/plain; charset="utf-8" Some PCI host bridges have limitation that AER/PME can't work over MSI. Vendors route the AER/PME via the dedicated SPI interrupter which is only handled by the controller driver. Because that aer and pme had been defined in the snps,dw-pcie.yaml document. Fetch the vendor specific AER/PME interrupters if they are defined in the fdt file by generic bridge->get_service_irqs hook. Signed-off-by: Richard Zhu --- .../pci/controller/dwc/pcie-designware-host.c | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pc= i/controller/dwc/pcie-designware-host.c index 906277f9ffaf7..9393dc99df81f 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -13,11 +13,13 @@ #include #include #include +#include #include #include #include =20 #include "../../pci.h" +#include "../../pcie/portdrv.h" #include "pcie-designware.h" =20 static struct pci_ops dw_pcie_ops; @@ -461,6 +463,35 @@ static int dw_pcie_host_get_resources(struct dw_pcie_r= p *pp) return 0; } =20 +static int dw_pcie_get_service_irqs(struct pci_host_bridge *bridge, + int *irqs, int mask) +{ + struct device *dev =3D bridge->dev.parent; + struct device_node *np =3D dev->of_node; + int ret, count =3D 0; + + if (!np) + return 0; + + if (mask & PCIE_PORT_SERVICE_AER) { + ret =3D of_irq_get_byname(np, "aer"); + if (ret > 0) { + irqs[PCIE_PORT_SERVICE_AER_SHIFT] =3D ret; + count++; + } + } + + if (mask & PCIE_PORT_SERVICE_PME) { + ret =3D of_irq_get_byname(np, "pme"); + if (ret > 0) { + irqs[PCIE_PORT_SERVICE_PME_SHIFT] =3D ret; + count++; + } + } + + return count; +} + int dw_pcie_host_init(struct dw_pcie_rp *pp) { struct dw_pcie *pci =3D to_dw_pcie_from_pp(pp); @@ -476,6 +507,7 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp) return -ENOMEM; =20 pp->bridge =3D bridge; + pp->bridge->get_service_irqs =3D dw_pcie_get_service_irqs; =20 ret =3D dw_pcie_host_get_resources(pp); if (ret) --=20 2.37.1