From nobody Mon Feb 9 05:15:58 2026 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2059.outbound.protection.outlook.com [40.107.20.59]) (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 3329C25FA1F; Tue, 8 Apr 2025 06:54:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.20.59 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744095248; cv=fail; b=HvgtbsGzqntoUPgB4hMKG6085K0pdS4AzzsBilotiBoczQgYjRnaR17c5iDTwbXCYdcatiVEG4CQD8W81yNTUIHDbqIepCKkCKnxSt1Et9QRXIl++OSfWnf42o3JmmpHHSdEDormDrdGaZ2Z61zrwE6PvY+nPDRFL2UbXpj98fY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744095248; c=relaxed/simple; bh=yNJ4lQmpsaPwLdfaFQqCC9/uQq1ieJmnY2c0pW5v6iI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=MPgIYaS5ADuxESe7v+BRHTkWy9CLnU3o1z/Q1eRYkS+UtdIYEeC9SedYRQGalJtTfKUreX6ttOJ8DAObPpNuwIRovaLleedT6TWCOSJGcuEQDmh7iSJ6w/7ZG7dO0Efc9AOmVoT59pQoyWOOVJYwQAINv/Ecc9tVJDfkST0FSHc= 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=TVT9JYoR; arc=fail smtp.client-ip=40.107.20.59 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="TVT9JYoR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jcvMmcYB4kpBXvx1VGtLdsNglsOSZePEaZsctFmZ/HiA6AcKLKdmNCgBSGHxcNwWyT1Lrjgke4bGkvAHCbFc7Kf8in0RI0pSLZ3ymuINGiP6CHxEMciXme91ehbYCLqmSW23CwUyhxT2V0ucqEe635YPaWLNIZMKFbN+lLT23ns4VOi37EJ+3irkXery8t0uVJOQaEEKzggnoeENdiTVUf+cj3EjqiDSLkZ2zTPlZPEdF2aUsGt0wRg38lWLWEV3dTnA578mq4/crXKdBX7iWfKi41TNXlU9ROsgsM33bl0k0LPg6juIP3ox4TvQah+p4zKJjyFTVXGsNguBhHAXPg== 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=LwBzwADTuI+Olw5Y2HdB2HKD14Pf3MTlzMEhGDwYaYQ=; b=lLTetPWrpY6hT85wkDuDdRkpzSfLjg9qYhNcqbCX7mSP9DwoD/45Pqh8Uod4qACZ9PZ7QecFn6hZ3N6zb8grcBV+FVedyxJea6e9uslDX6+/7qQROM7zA8fxf/XL3OWJJJ1nT2Og+LjvuEVgvRI/AVOMbxCA4WgSdBkhT4pHK4oIplzrcqDNlKe04KlOkaYTSb1yUOvYd6+0sgjv565+Q7Lm8Pg4WOfpu660P/Yk6zRC6I6VPDR26DT9J/wIMfSyeXRbluo0y4KvKs7pRVGmdHDgHTsmEXvwrL+Wt2pJpsHwj9umB5AL49XIKILeJAzKk+qCaCoPIbJTLMtM78iPnw== 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=LwBzwADTuI+Olw5Y2HdB2HKD14Pf3MTlzMEhGDwYaYQ=; b=TVT9JYoRkB+j4/x7ZwN61IspBlb5Grn73iRt2LSypJb3nhRe1eW9rC6wJ3S/OxwdW122sa0t4eBDMAS8o0YkifLmVG7Z3ca+xQi7+sFgz9LfSyrksiBYpkgF2AvOuaJdMVwt261qpLWouag/mlVgx/93kNUNvgROuZkR4IFh3jUriLiyjRlR3XyCwi780wR671BBkMqQeIi3PVihDuu8twdMF1nEmnCoPQtscZwCGydYvfcz0DpffH8o/lwhfOoQXSD1pcevarSnstfokbo0qnczYoplx98tRe9CZETlk6wljp6bRaP8PxIEzeNptkP8Ea8O9g52CBDZjp7oMH1SVg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AS8PR04MB8676.eurprd04.prod.outlook.com (2603:10a6:20b:42b::10) by AS8PR04MB8309.eurprd04.prod.outlook.com (2603:10a6:20b:3fe::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Tue, 8 Apr 2025 06:54:02 +0000 Received: from AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::28b2:de72:ad25:5d93]) by AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::28b2:de72:ad25:5d93%4]) with mapi id 15.20.8606.033; Tue, 8 Apr 2025 06:54:02 +0000 From: Richard Zhu To: jingoohan1@gmail.com, frank.li@nxp.com, l.stach@pengutronix.de, lpieralisi@kernel.org, kw@linux.com, manivannan.sadhasivam@linaro.org, robh@kernel.org, bhelgaas@google.com, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com Cc: linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, Richard Zhu Subject: [PATCH v1 1/4] PCI: dwc: Add quirk to fix hang issue in L2 poll of suspend Date: Tue, 8 Apr 2025 14:52:18 +0800 Message-Id: <20250408065221.1941928-2-hongxing.zhu@nxp.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20250408065221.1941928-1-hongxing.zhu@nxp.com> References: <20250408065221.1941928-1-hongxing.zhu@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR02CA0001.apcprd02.prod.outlook.com (2603:1096:4:194::10) To AS8PR04MB8676.eurprd04.prod.outlook.com (2603:10a6:20b:42b::10) 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: AS8PR04MB8676:EE_|AS8PR04MB8309:EE_ X-MS-Office365-Filtering-Correlation-Id: 977d658a-922c-4262-ea82-08dd766a2571 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|52116014|366016|1800799024|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?2Jks64jvv/vs5RWlb14ieHTVH7dXap4GfybKe2R7X1+LNU36GJpCN/RQ2XZC?= =?us-ascii?Q?dpIi6joMxUFGUQYibhS4zdXGja371O1GJRaXY6PSMoofru3HPHFCwVHi6O0t?= =?us-ascii?Q?QDyZj0aLaEd6u9tZsNhO4FaEQFGdFQgSam9ZwXRIY4Gd9btpkbdFoLibKXnR?= =?us-ascii?Q?nsFAtiCghsxGPNwn+m5dwQJlPmckz7gk4Mi71qkmMgWeFhY5aIR1mLK6uEL6?= =?us-ascii?Q?d46IeH+N+dYLlqHpni/hEpBVBN+jCmuen61wnpeTitsVwUQ4k/WlIvMRnVBq?= =?us-ascii?Q?8DMz7Gnc26VUJYEQr0NkbDnp2YGsGvMrHX34zNThNAsPDtMGLbfz1jl2gsH0?= =?us-ascii?Q?EUYDe1VFZzaizkPcnhR0ZceK1ERPadCRKuMb+ayhyho5P6ALad3UvBfIqpmE?= =?us-ascii?Q?7yv/lxF2q/4LkP5zpAPQUDOGzAs8Td1cLvDn1Fbpqq1+8cIgKZqxcV+mFVqa?= =?us-ascii?Q?DFSTmV6MzFkzz6AJQD46lbPu6gCQH1WDy8j4NsxlSLkL0bMzjJ+EZNzLfwH2?= =?us-ascii?Q?B5J65j5N2crnPR/bO11kM862EQ8zpXqOCVweAkcNyaQ/wNKE0DuBbHzax/WK?= =?us-ascii?Q?IsGuBvBTUd26gsh3LglFdz4N/2NiObdvuMh+Zw4TLointHQ7CWfQlJRGIw5G?= =?us-ascii?Q?/jiZlpKRVS6M9KheT0iqoSoRZkkSQi/f9LTM7iSQbzlWtgIMEAZlHuXY4FXu?= =?us-ascii?Q?OULm8E2mh9MbtY+YjG0BRJFgjAAsPd4+uFDK5Nn7C9q4YhpDerHjOmmYpRsi?= =?us-ascii?Q?ddfg8HaWKS2OjqeTamWXdGuURvTTFB6wCaBfZVJB/ttqLe/QYrTpHij6oMP6?= =?us-ascii?Q?GIC9Vr+zzU4okE5KzlctO7tH6LwvKtCITzkyGOp7IMrhuQG72F35I+OgiPaP?= =?us-ascii?Q?CDx+3S+hwheJGeiySyzn8ap46xPdPlkRw9VNoxvHehAtbnIwtx9fqiz5PlUW?= =?us-ascii?Q?HbNlijMAymb242V12KKCmVTRwdV2zvOv76G7KVfqk30OPldlhO6dpUuwvG50?= =?us-ascii?Q?XiC8WFdSKHXDJjxVqFO/ZO7q8y42/ssLwN20qjuSe6Hi1NumgvFadTQ/vW3q?= =?us-ascii?Q?BuF3UjS0vBOKm76dk/5DINO0W+zUrurSHrrVuT0N0FgY8mF0MC3mOuythxLg?= =?us-ascii?Q?DeUS8jjmVPrtYaVz28tgEFKBkHKuImE4Caelo/X7DTxDzHtetY3zNgbF3f7Q?= =?us-ascii?Q?0q11orGjigz7kwORKDh393nrbvihbQV+G6mSyKSAgzjXJ6gi/9Z4PofHroBn?= =?us-ascii?Q?myOncndp1Y343XppwhJ2B2gDfDiejeN1H+oQs61Eevv9DjljXev/MB9wQAUS?= =?us-ascii?Q?EopgiljnHAr9rDRLw2wY3TXDjN4rtlkDboH7mbgzoG9V3QnEGeTtyNkgJoJR?= =?us-ascii?Q?Xi8V+6FJyufOU8XOk+4GYVqgrWocGWJc30lZ2rgOnR4gm1+7LVKYzIrHkJa8?= =?us-ascii?Q?Fo4oBUjBuLyR8PB7+WuusCrdakwUM5OAY+av2dDQcOtFLR2/if6A8Q=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB8676.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(52116014)(366016)(1800799024)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?t+mqnFuRk9bUWTXPk4FlQThhZIqbisTeEz01HUWoUuHn2QR8PsgiIT9XowaB?= =?us-ascii?Q?rlk4m1ErU7YlK9GQs7xQxVAfCKFQkjkhhRRWQAno6MqFTPD9jOFgL+Pqcbko?= =?us-ascii?Q?Cj4lnfDPHI6+yGkQeezY2af/GHjxuG6ziuZ0nFRfY4nKtY2U8njaM6Rqq3is?= =?us-ascii?Q?9mnJgHwJEnxybpTh3M+jYqsAYs3JwxzG3clm7k0LzfpYgK4RZm3Ag/6Vtnnf?= =?us-ascii?Q?xlTTITR8uUxAqR2Tyv60uuZz+xSyEkZV2r6TaSUJjI+IppalL38yXt55tHNs?= =?us-ascii?Q?DyKQqiriPh3lfRPlMUwCPznxWfJvp4mjvL7kQP72xyfx+GssjB7H4a7HJOiM?= =?us-ascii?Q?pi3StmUxCp4tj4U1xWn/ybusTSZfQcNcPixxBUmooPY7n+Enpq/5nDCbMDz7?= =?us-ascii?Q?cgAy1KXFkX3aP7CAR0H0TSCq7hOIe/B0L8okl6tK9y6jbkDH/cy9N76kbHsx?= =?us-ascii?Q?7vNgnbBKHfefOqHcuLr8wcyvZPKa+UGh4LgX0g6RsXLB52E2Ty1NNqbCfApK?= =?us-ascii?Q?TeZBiWiITZSo1nOmmYkb4G6UxXaUoEhaDagMFl+X3l0Bua3PBlgrl0yT4zJl?= =?us-ascii?Q?bfqWHQGuyLz6/tmkn1VGaw2kSwcuN45LALsjeHfVjuiNMJArjJy3mQ/Q34C/?= =?us-ascii?Q?k5i2PS+/IvgDpIJr/g7JbyJ5It6uIprDqSBnD39Ghqmg6tZbPvdgmi+lgBQ1?= =?us-ascii?Q?rk+iAyHz9y8knvJx8TSQ8wBSSrabcGJ/d/ZrvbtRcAeNwZAU/BU0/3tsY5Cc?= =?us-ascii?Q?0FgaLL19SK8eihlbrpYI9MdLu9xlcSwfqRs15Kq6eG2V64ZNC0f0MEZVG/EQ?= =?us-ascii?Q?iXvRHt12H/nIudqiNj/cJ5cNoqxE/q8v1ZjRZIqshzXJJTaEhr8bJU3kfDhm?= =?us-ascii?Q?AuQ7luK9K7cKf9QxHZDDikM1FI2iCQytRcjXIOlpAtTBbd4h9B599vlpAzRu?= =?us-ascii?Q?Fi7Cqh5k7BsJvl8z2kRXcdPDZOCZ+6KVVTNjHn9D5Sx4rnhESRiVjeY3G1f8?= =?us-ascii?Q?zoK2k8j88wPHKSRUuY3aGmcLu9HKqDFBdbrNG5c1R4sjJuuUP6Y6IqJ8fPFR?= =?us-ascii?Q?WZAQqF3Ng5WmxcVayaof+1Nh+AxgYOds7uYbdfx7pAUCUCSxnb/BOLjVw2B5?= =?us-ascii?Q?wrB+BsP8A9/TPMdRoTEszRgJfvXT8Rjd0IfbA061K55+jje3OZr2AxZS5eAf?= =?us-ascii?Q?/REv+ntsjchXzojx3NPBSW51osdaqSo4HYz0g8+Ui9c9Jf2loxw0HXhf4lTY?= =?us-ascii?Q?SbJv4tcJSuDAFQNIZN395Ztl+rNWdqiEA7+RU6LPxW147grukvb49avfISkR?= =?us-ascii?Q?u+M1dnI1up6tQMidZZL08bBp+AHnnuFQEnhuSq8T6WgVIYLQR5TiCsO57Ilt?= =?us-ascii?Q?CpBunTpELSyjM5HWPi5UK8k/wcZ3rwIh7nRiMwKRPTXvu/+iW6Fs2Vj8umuR?= =?us-ascii?Q?JOzI55SmbmOGzS4tubQh1AY1RrA9f519mMmMH66UQiakJvKE71b+75fcDvCZ?= =?us-ascii?Q?Q9de0HmrncpBmMhhIQJtFGpbzqzrtijQWEAFUridheveI6Zs94EF5EwAHd27?= =?us-ascii?Q?jKSIaetU1LHzdJA2kzHnupltUPsBUac8v18ZvMjA?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 977d658a-922c-4262-ea82-08dd766a2571 X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8676.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 06:54:02.6116 (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: zzDsKHZDzPK3trymnieXkoeCmxxojwbYN+nLvsqZJbUvCYc6lKnd3p34ynfIUZwTXtt4LimqJ+3Jjlkp6dkwQQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8309 Content-Type: text/plain; charset="utf-8" i.MX6QP PCIe is hang in L2 poll during suspend when one endpoint device is connected, for example the Intel e1000e network card. Refer to Figure5-1 Link Power Management State Flow Diagram of PCI Express Base Spec Rev6.0. L0 can be transferred to LDn directly. It's harmless to let dw_pcie_suspend_noirq() proceed suspend after the PME_Turn_Off is sent out, whatever the ltssm state is in L2 or L3 on some PME_Turn_Off handshake broken platforms. To fix this issue, add one quirk to remove the L2 entry poll and let dw_pcie_suspend_noirq() proceed directly after PME_Turn_Off is sent out. Signed-off-by: Richard Zhu --- .../pci/controller/dwc/pcie-designware-host.c | 22 ++++++++++--------- drivers/pci/controller/dwc/pcie-designware.h | 4 ++++ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pc= i/controller/dwc/pcie-designware-host.c index ecc33f6789e3..0817df5b8a59 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -947,7 +947,7 @@ 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 @@ -964,15 +964,17 @@ int dw_pcie_suspend_noirq(struct dw_pcie *pci) return ret; } =20 - ret =3D read_poll_timeout(dw_pcie_get_ltssm, val, - val =3D=3D DW_PCIE_LTSSM_L2_IDLE || - val <=3D DW_PCIE_LTSSM_DETECT_WAIT, - PCIE_PME_TO_L2_TIMEOUT_US/10, - PCIE_PME_TO_L2_TIMEOUT_US, false, pci); - if (ret) { - /* Only log message when LTSSM isn't in DETECT or POLL */ - dev_err(pci->dev, "Timeout waiting for L2 entry! LTSSM: 0x%x\n", val); - return ret; + if (!dwc_check_quirk(pci, QUIRK_NOL2POLL_IN_PM)) { + ret =3D read_poll_timeout(dw_pcie_get_ltssm, val, + val =3D=3D DW_PCIE_LTSSM_L2_IDLE || + val <=3D DW_PCIE_LTSSM_DETECT_WAIT, + PCIE_PME_TO_L2_TIMEOUT_US/10, + PCIE_PME_TO_L2_TIMEOUT_US, false, pci); + if (ret) { + /* Only log message when LTSSM isn't in DETECT or POLL */ + dev_err(pci->dev, "Timeout waiting for L2 entry! LTSSM: 0x%x\n", val); + return ret; + } } =20 /* diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/con= troller/dwc/pcie-designware.h index 56aafdbcdaca..05fe654d7761 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -282,6 +282,9 @@ /* Default eDMA LLP memory size */ #define DMA_LLP_MEM_SIZE PAGE_SIZE =20 +#define QUIRK_NOL2POLL_IN_PM BIT(0) +#define dwc_check_quirk(pci, val) (pci->quirk_flag & val) + struct dw_pcie; struct dw_pcie_rp; struct dw_pcie_ep; @@ -491,6 +494,7 @@ struct dw_pcie { const struct dw_pcie_ops *ops; u32 version; u32 type; + u32 quirk_flag; unsigned long caps; int num_lanes; int max_link_speed; --=20 2.37.1 From nobody Mon Feb 9 05:15:58 2026 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2051.outbound.protection.outlook.com [40.107.22.51]) (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 F1AF925FA0C; Tue, 8 Apr 2025 06:54:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.22.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744095252; cv=fail; b=ti4mfTT0g7d926W0de2HyCHgbChCGvEFNAc17hxseVOn2gYvmVezkGKLE8ZNn2YPYU79wsyXbNMLfQ7B6sHNuwAwBPW3bD68XLuH8f6pOVv7APvwHIpEip64iLMzvY/2AWmSAKqwEOior72P3N8ro8wAp587phfSqlkH+fTYBpQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744095252; c=relaxed/simple; bh=SHAr4bIwn+J23k9fat11TBH6bHpoHxVyszgcPPG3QAo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=CEkybFQDCydlzVkHI1yp6DleTmeP52EfthMcc8TGB/sDUdHJDEvhxU8Ryg5i4HgGT/+cH9LbkBLmdfynJwlDLJlCujbG7i7q3709yifcJGMU6Kkay78hMBOvh2rjqa08b0LWSt8ojgWEGcgiXkZ/uMJ551v+WISa+eYyPsLNwe8= 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=kEgeRYAt; arc=fail smtp.client-ip=40.107.22.51 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="kEgeRYAt" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bLnpQuKqkm0WS7VS0xbC6IY284cjFSLmz8xYfpEZSW22IJvMdWM/9qIy4HXatsc8d5DnGtb594Loi4SLJIVSGVgSdiaqBW14o9DFlLjLwsVoHC/DjJKmazA5RqbSv2RL5e4i3BdDsIqOV7jX4/X40kCLAtE7bOCwWg/Uj7dhclKDmNrzgLVLrFRuoJG7JuW7SpAFLsIjpXT38NwXqbwa4LtqPXiSUGFBVD36WpXR3y7rBCIx/VmaX2zo+hY1Nx4MsJL+0hubuafWw+6rnoziPWYwfXPe37JphrYYc8Erdsj7mxPc6Y2//5AMpBdEFlhKohBybTicf/oQYZVuI+uvsA== 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=ByoIsS0Y9gejDZtYsfbxMCXFnVvtOHb7zUuz/KDdnBU=; b=pNqhRxP3+FSDzdDfH5+Wu33un5CzrUB4Qnn0EV9JKpIFNxJJT6lmBmRV3Ybzxg10JDXSdskEjynjUG7LjNAWOJg5vmJksJftAGo42MBr+5wsLSw7Ufp4uGboDx98kd6hDQkLkC2be2FehBatkFGmX/grNalqFPZ09bC0Bsuq0bhb044s5lsbIyc5N92iSQUxWoY6wK/X5vaME9FgAQrg4q3ceBRSYOS00ZwmCDGM4YxEIPynk9VfUZgurhSrdgCYA9XRzAerMf7ecGD6Hr1OvzCMUnwJoGO1KG0r+N2ajIXVKeLnjs24R9EFKvCMJkXAsggCUF2LNWTaqOAR50+wyA== 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=ByoIsS0Y9gejDZtYsfbxMCXFnVvtOHb7zUuz/KDdnBU=; b=kEgeRYAt4ocvccUXgxku0lZb6cPof49UKN1Vg3P4Tmpdo2+zfeH1mB/h7wCg3AJqYfRxOJc7/mQrN3ybNEZI4bg4wpcMFzExLLVBMdap/B3PomUrTtnwdakZReAngCoPGT907IErRhNJwrfEBjV/poS66ayyUZCTJ6z8IKQzoO9xoawv8Kw1v8Gkjv+WPapsUI0vtoltEMswr9vlQ+fVDJDeWKZ8dmWn3h1RxCYXOtqviIP7rpzqXbNz0tI9ojmVOSDpB0R2UvAbr5oI5Jf+9wTORzLcopDfWmSUANTrqPjQxicOWSZySJXMUbPAAc7Nsz5pnFQeSUJpQWZ7qwwSuA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AS8PR04MB8676.eurprd04.prod.outlook.com (2603:10a6:20b:42b::10) by AS4PR04MB9458.eurprd04.prod.outlook.com (2603:10a6:20b:4ea::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Tue, 8 Apr 2025 06:54:08 +0000 Received: from AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::28b2:de72:ad25:5d93]) by AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::28b2:de72:ad25:5d93%4]) with mapi id 15.20.8606.033; Tue, 8 Apr 2025 06:54:07 +0000 From: Richard Zhu To: jingoohan1@gmail.com, frank.li@nxp.com, l.stach@pengutronix.de, lpieralisi@kernel.org, kw@linux.com, manivannan.sadhasivam@linaro.org, robh@kernel.org, bhelgaas@google.com, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com Cc: linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, Richard Zhu Subject: [PATCH v1 2/4] PCI: dwc: Add quirk to fix hang issue when send out PME_Turn_Off Msg TLP Date: Tue, 8 Apr 2025 14:52:19 +0800 Message-Id: <20250408065221.1941928-3-hongxing.zhu@nxp.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20250408065221.1941928-1-hongxing.zhu@nxp.com> References: <20250408065221.1941928-1-hongxing.zhu@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR02CA0001.apcprd02.prod.outlook.com (2603:1096:4:194::10) To AS8PR04MB8676.eurprd04.prod.outlook.com (2603:10a6:20b:42b::10) 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: AS8PR04MB8676:EE_|AS4PR04MB9458:EE_ X-MS-Office365-Filtering-Correlation-Id: 644a54d4-cb5f-4a64-52f6-08dd766a2878 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|52116014|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?SV6AeXgHjafYcRr4cIfQd3yWQyHe+Z6Lkg2L4LkGc8+EpPL2WNxk4LMo+npp?= =?us-ascii?Q?lw41/jFrCqkYwEOruGBnx3qZoH2b+bcelvbnJEtkrXq79eAjgp1wxCaK80NJ?= =?us-ascii?Q?IhnVlJGSARqG4taosC7sM5c5qPt+McQrWYd1/gyCgR/DTBqY6XekYa2RmW4A?= =?us-ascii?Q?tvm+AmvrI5ESyZDFTsEjU1FzCmJ1YnCCnbva8ZPlkscU19glA8PG4gN5CXZp?= =?us-ascii?Q?P5qp96Mzu6l9mhdU9pymY9LMS/s2NsL69/gg5SkCh6PKb4pA34clcJgG5Qoa?= =?us-ascii?Q?+JwS9f8DSaD100TRWa2k8yLPGdIqHjE8LXSWEVpyh/ZXPSWwQ+M/XoPmymq/?= =?us-ascii?Q?rJVefiMaDu/ZF93itfbumE4v4HIRt4e+GlezZR8fmLUSB+Mk7rYIr56/rUqL?= =?us-ascii?Q?I9VmP+5sAJS4zK0BgtGeEGFXCopTIegUCGsSapJ4BMyQ3fmy4j8Mev22kFA7?= =?us-ascii?Q?Fmv9snmg+UDIJMZk8l8w5S46kKRH73gf2qgPc7592m6xJ6/i1k2vD+YOGD/f?= =?us-ascii?Q?IqUpIkpYEFkwa0HsKdn3lP5hgRu/MyFAobe+AAKBLZeB+zzSfFtwlSGs0G/s?= =?us-ascii?Q?0OuqBWPWeknP/WnI3IY7rVUd10uBzn88Vlx1s7yTt0H49xR/OH6b4MUkf3sT?= =?us-ascii?Q?xgsFqaPFDnwFFIThyOUBVKO04XFu2d+7hKOgxmuweCiyUnVQsNnhUoWloxgo?= =?us-ascii?Q?5vH+D24aCHLpUJT9cFicg6ZiIfE9hQ/70fP/K5pP2+Ckg2OlXmi0o5EsaTny?= =?us-ascii?Q?BEb04xbKyqWdHD59kq0WYpJChYHpb9Gxj67ARSK+psYlra8OauCJn+V+wnJN?= =?us-ascii?Q?pq9+M7Yr+Uhz3xJIt76sYTZt+0+2Ex8kQZG/5J4vg2Z43bpJdEcPmOZyQadG?= =?us-ascii?Q?zTwJzh7RB5+CHarozITuBZyKrYvTFlDAMfK4dpGS5RjCFAm6lLyms+tY89LI?= =?us-ascii?Q?6YJxJtAr/3zgoDyRRyxLyXIMLBnplUJcRVWJV4o1IrOlWRywDpFf869HQHBx?= =?us-ascii?Q?1y/f7DZMN5vI/u7cyAiV+4KIj3vnBv6nJTxerWvY4wOCCZA8NbIkmZ+/A1w1?= =?us-ascii?Q?uQUKKD/kPuDhIQNffA/UMr2+NVLzwPPiNHMRjZKf/fJizNS14G3/HiRwl8Ut?= =?us-ascii?Q?jJ62Rn3JegO2yMa3xkLducdcAE/nJHgv9CRlVwiLPV9I85k4gITwPf2MMKzk?= =?us-ascii?Q?GQmjOpj7YBMrytTFcTUH5+m883WV69HwL2sxEgyFd5JmQzBZv62jzUMxPKcJ?= =?us-ascii?Q?B0Om1nnHc9mZRLfa3OhJBmI9Ha2quURad/drUQXs+44nSHeZiYG5UPjNPVCr?= =?us-ascii?Q?rSe9zZKXK6NCcyhFxLooDYmiDLUzwvobQhLz1t2jVcn1PhVHoH9IcTMIDBlt?= =?us-ascii?Q?O9E7ICmuM8XFTcERmjigxriU9D3j9Bds9NftmomcEYIizQa5yVNswrTzN2+P?= =?us-ascii?Q?RjnheKZfI3fQBkNfg4qq30jOgWnZ7Gt0Gd0XlneRd/WJU/sAqOrufw=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB8676.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(52116014)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?RjjZyw8YxxyzVpWhSKKSELLpTFWEWbTg7CNJB1VdHjZBKSEgMQGYvNWWDmAi?= =?us-ascii?Q?TK4P8/asVqbqT8Mof7bnOF8hsYSfcYpdQKDT17eLCLEXBxr/yF0TAnR/39Uz?= =?us-ascii?Q?0H+1ERRccKzuzJUZmJVCvDibuggS6YFIRtUk0M3nzjcNJFzc2EvQ/QqH6W+B?= =?us-ascii?Q?H0R01Ko9wuxn1gIov1WH1Z2RQVq1SCYxBVWOi0UQfCt3/Rq7NKg/nc9PrK73?= =?us-ascii?Q?ccXDHdg/+CYIsNfZOQMDSXgK58gPiu109NbW7pSWyPnVa7tVC2SIL+xtpzNm?= =?us-ascii?Q?C3a7L2xPXO2UKz1fu2TGT9tYyy8F893OLQFpOwU97A3gP8+1WXvbmJ20c/Z8?= =?us-ascii?Q?wFQuis+4Nsw3TCHpSUH5zUdmNoGYTmAD8ojrMmstlvWXa5p/mgZYrxT24N9d?= =?us-ascii?Q?BaYROGWvYd/iGbCxzNAsXSR9ggqmlBQnVzuPgIa4rOBKHhqDZndbAhW92QqY?= =?us-ascii?Q?ahayg42DhVm1WDLbiuWOakGsI2Yq2ezhqzYEN7nk0yr0A2RaBhDCF0ECq+6k?= =?us-ascii?Q?ZjIXBBsl0mDOJVFFMjI1XBLhncnkgmgKPoiM1xbBA1jA6aXC5pWftr77Nbug?= =?us-ascii?Q?rYt4iRcABZYwIdzzX4WyrEaTPstOfV19ie6uccjRGuRqb3lzP+IGSDsRDm1O?= =?us-ascii?Q?+Xaz9c8eraHqrHKYqPp2wZAolm4X3gWC1QjU+4qQYw16Jb8o3bszixYRhvRS?= =?us-ascii?Q?0Mlz25KdOJEQ8vr4nNR/TRQIo3yBXkX2JwObmj1Na6yyxnKH+1SC6XYaK0+y?= =?us-ascii?Q?0gUqCuXCyLbM8yM+inxdcNqK3oixblFsz3wckSZ282F+j6bccwkiinRqGAVR?= =?us-ascii?Q?jvF4mva05Gv58AvAnwv69OlSwwhkhiNmkkVNtp2Uw0uL9d1Ji9AGdnBSqCL/?= =?us-ascii?Q?MMEh8numX8J403DpCOvm+lI16Tx63uNWAlmRRVq4N2gCFfGchiGTYmKVtyo+?= =?us-ascii?Q?F0SHg+Ms7xjOWnaRJb4kCj2Jn4iKhJIunR3pkp0hrXGbt5b1AdBoP7ctsprG?= =?us-ascii?Q?53arlPigT1o09r5MhAV31JYr9JOPhPyArlXdkX+D4usHVc2PZwW1XQniS4YF?= =?us-ascii?Q?df42PA+QmD0cadnsYZffNR/od67V/fDs8geWDMJcKbfqx6EsM4uvQN1GKGIq?= =?us-ascii?Q?d7pZ5dnbV2Euk1dCEkIMWOCxcKEQUPg47kAXiskycYoqWq8IVxFHPlpcIvJ4?= =?us-ascii?Q?s9pU7/5NNlyNAJkL3+1ALCDg2Q3KebaxL3g8GbEQdQDpbs0A+Bj5TimyTJar?= =?us-ascii?Q?34pv7WlTtdOOT/8X2D/glb0hlq0BycmvQU2s/NCW2kUmbIwhvcoDOuqZWJk3?= =?us-ascii?Q?/METnc1JdM2ofvdRfHVlmntNLDaiKfkN6sWgO1Fu/xI1VnrE2YqGBYxJNk82?= =?us-ascii?Q?pwi2zJQOf/kcTO8gTosb4KDCJ6l85Zg3mYUaFfw6ZJXQCqU5TgI51i3w16b2?= =?us-ascii?Q?CYwg0ty2kmVG3JMDyrOqTucYFXHTuJsm3TuplUO4bWxpr+6EHI7/mMcL1xZm?= =?us-ascii?Q?Mwa7rtF5CmJ/+sHpA/zjygBPy41fLqjLSOVRN4pis1n//Fp/ZR4UXr0+ThKs?= =?us-ascii?Q?as7ICWVVOu0XG/Oq59W3KcAAxjhd9N53QHdkMEBd?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 644a54d4-cb5f-4a64-52f6-08dd766a2878 X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8676.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 06:54:07.6319 (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: VpOyPiNlLPyzouwlN7aHaL7u33fRawvqWEfN/n0443HEPITOWicHHAaqxduX7LCZDcyzhH6ygeinjjuVHoCwmA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR04MB9458 Content-Type: text/plain; charset="utf-8" When no endpoint is connected on i.MX7D PCIe, chip would be freeze when do the dummy write in dw_pcie_pme_turn_off() to issue a PME_Turn_Off Msg TLP. Add one quirk to issue the PME_Turn_Off only when link is up to avoid this problem on the PME_Turn_Off handshake broken platform, for example the i.MX7D. Signed-off-by: Richard Zhu --- .../pci/controller/dwc/pcie-designware-host.c | 16 +++++++++++----- drivers/pci/controller/dwc/pcie-designware.h | 1 + 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pc= i/controller/dwc/pcie-designware-host.c index 0817df5b8a59..a62bf7e0ade8 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -956,12 +956,18 @@ int dw_pcie_suspend_noirq(struct dw_pcie *pci) if (dw_pcie_readw_dbi(pci, offset + PCI_EXP_LNKCTL) & PCI_EXP_LNKCTL_ASPM= _L1) return 0; =20 - if (pci->pp.ops->pme_turn_off) { - pci->pp.ops->pme_turn_off(&pci->pp); + if (dw_pcie_get_ltssm(pci) <=3D DW_PCIE_LTSSM_DETECT_WAIT && + dwc_check_quirk(pci, QUIRK_NOLINK_NOPME)) { + /* Don't send the PME_TURN_OFF when link is down. */ + ; } else { - ret =3D dw_pcie_pme_turn_off(pci); - if (ret) - return ret; + if (pci->pp.ops->pme_turn_off) { + pci->pp.ops->pme_turn_off(&pci->pp); + } else { + ret =3D dw_pcie_pme_turn_off(pci); + if (ret) + return ret; + } } =20 if (!dwc_check_quirk(pci, QUIRK_NOL2POLL_IN_PM)) { diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/con= troller/dwc/pcie-designware.h index 05fe654d7761..d752af660e95 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -283,6 +283,7 @@ #define DMA_LLP_MEM_SIZE PAGE_SIZE =20 #define QUIRK_NOL2POLL_IN_PM BIT(0) +#define QUIRK_NOLINK_NOPME BIT(1) #define dwc_check_quirk(pci, val) (pci->quirk_flag & val) =20 struct dw_pcie; --=20 2.37.1 From nobody Mon Feb 9 05:15:58 2026 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2054.outbound.protection.outlook.com [40.107.20.54]) (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 BD49825FA0C; Tue, 8 Apr 2025 06:54:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.20.54 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744095259; cv=fail; b=LtPv+bwk6zMFZwTz7rG/95hPS1D/b3eHt+lUJOR1is0tn5c3zIJr2+26FYyATfpT4oVPjezNPQfzIlPPVuefThlfnq0lrVmzZHRgN/GQum1nuDd1yps6kXPcYXAqkhvL1QJ0ZFi/e1itlmxhsvz00P3rNgRYduWnKI3HI/fgGDE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744095259; c=relaxed/simple; bh=Gy9o+TACRQvME3z1V5ras3GIisTDjqTeP/vd3XJEYlQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=jwqe+CvuloA+BycghJT5MWG+nxnpqT5QNQ8JSWOAL4CejpqnqmvoRCjO2mMWZ5b/h/eARAKZhLTwG8lsgK3ERv6LctyJsixkSPJQDQWnA3/ywvay/pmOOQbah52eUQIratSBPrq/ADcq/FJvNOyFYyfYCETWoQ5cpr+jPPhsu/I= 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=VhnqtQ72; arc=fail smtp.client-ip=40.107.20.54 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="VhnqtQ72" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GLBj0TM1LoFvbxB+vNr/NMBfanZUo8NSbGI67JT5NOjDxoCecYHD8FbZcMxHLvghH6vhshK9fjvdguhr7aMkZrpb/qN8Z4maR/i78fHofjv3IfiRtAL31g73insbaudo4Xi+RQJzd8bkJgZM8XNe0CaoT+yr5Xyt6fQJD3hi8RL/gi3Mk4/fAxKuzO/CrO8ZWj4v2q+MRgfta7RESsMEGfhEg2KBo3gawAjmBBH/moUYXC6Y2See46i35py1s0XE/nChFgduVRNIKcqk/gtd4ERcE59Vf4JGpfbi3HZ3RxBDJQELxak7yKg1F8CNbL7HU8pCSYoN9Ld6mxFoKkDn4A== 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=fywXyYEIM5L+hIDdAWDaCAlTIKnFSd4a2XH9qp7crKI=; b=PqWVrkC0nvSbBrIkJTHmZHmWok0kUjamSvBkaSm3nZ19fZbSPUpMTXFl8Lnqxp0tbe9t4PoByhAKKFD7raijPKTa6VFk5jkHikwqKpcROrWOgrV44LzmI/tXj61BRLw2f3WccuxemjY2q40rgdkoNWa+K6gvgwSXsjWhSi5+265qvgDpeQ5xuZBs47F3Bu3/bIdQ8jdgEBx7xLzg5Z/hjuwOroX3vDPZcHdK3jIBDS53QxKm3sXuJHpGFL+IoQtIvyR7VHPW2/T/sEMBYfoCAW2ysEw8FOFG95wLD0FlVg1tQwwAQZyHawYSnAUTQHnw/f+3PiR/Cx2cVs2EvMHM8Q== 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=fywXyYEIM5L+hIDdAWDaCAlTIKnFSd4a2XH9qp7crKI=; b=VhnqtQ72lXVeHi4G7dZNwFPrvOFkU5mNUDB0+nDOaNDlmEW3hut9kpcqIq2RNZMvrDnF2iK4rHK6zzjaZnOlbLrh3ezf5/WQZnWDF+iZP4VkvGTDqSzrSLgZHx7TzLK1lJCi8kfRW8C7whoRSxh2Zj3tQa0tS57wmH5xN8siAyfQVgWSfEFDP8N5jLo2D1WAVC8iROK2CJwHXJmadpes7H9HFlxh5HXcF3B7bg8Sls9rXwgrXGE5HuKRZ0DftZskD8weYeQrUbMHbY+ch3Zwj+vxAIeDDbbUeLNHjl6M8auhh5G+wBZC9cdEBSYmmhgTerLliaJ0DwL9Y4bPIPgejQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AS8PR04MB8676.eurprd04.prod.outlook.com (2603:10a6:20b:42b::10) by AS4PR04MB9458.eurprd04.prod.outlook.com (2603:10a6:20b:4ea::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Tue, 8 Apr 2025 06:54:13 +0000 Received: from AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::28b2:de72:ad25:5d93]) by AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::28b2:de72:ad25:5d93%4]) with mapi id 15.20.8606.033; Tue, 8 Apr 2025 06:54:13 +0000 From: Richard Zhu To: jingoohan1@gmail.com, frank.li@nxp.com, l.stach@pengutronix.de, lpieralisi@kernel.org, kw@linux.com, manivannan.sadhasivam@linaro.org, robh@kernel.org, bhelgaas@google.com, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com Cc: linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, Richard Zhu Subject: [PATCH v1 3/4] PCI: imx6: Fix i.MX6QP PCIe hang issue in L2 poll of suspend Date: Tue, 8 Apr 2025 14:52:20 +0800 Message-Id: <20250408065221.1941928-4-hongxing.zhu@nxp.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20250408065221.1941928-1-hongxing.zhu@nxp.com> References: <20250408065221.1941928-1-hongxing.zhu@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR02CA0001.apcprd02.prod.outlook.com (2603:1096:4:194::10) To AS8PR04MB8676.eurprd04.prod.outlook.com (2603:10a6:20b:42b::10) 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: AS8PR04MB8676:EE_|AS4PR04MB9458:EE_ X-MS-Office365-Filtering-Correlation-Id: 7f8255b9-2d39-4fbe-9686-08dd766a2ba6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|52116014|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?sCXiC0MDUIyDslAgpOA0CpACWRRh8xa3Hw07SFA+F6SpKBgdX2USokly/GaL?= =?us-ascii?Q?QL62oX53yv4U9N7WTOJZ2QQroD40ZxXTVXUv1VUuu81IyBS8U0XcoEuDd5k2?= =?us-ascii?Q?Ptr9sixBM3L8L89hEc+jlkIT8MR43cS2xA2pMvJpCM71TkP0Ou/NqlsDEpHp?= =?us-ascii?Q?bfGq9kX/enqpL0kfrNCmVMlZvvNfvMQIE9ULQpwuBw/khY5Lw1WswNsAOSlB?= =?us-ascii?Q?qlTWURta+gFDR/OpKsqINjOHqVWQue0+jgK8w576ryghINyu9K6+XmL6tFJz?= =?us-ascii?Q?e6Ic2DW5cS2StFjr3DtQ7j7Y5IeafNROlzY7Un1zVqVCi1Jse66TsFkWqUlW?= =?us-ascii?Q?FjfI+0T/C6TP4HgHFlERJaOBs4+fD0Osj+mYBEX2gQz99qsRkQCV4b+4oBwF?= =?us-ascii?Q?YfBPsc6yONyl2f4zG95PPJWPkKJbjeL3D1JORzxYKGVZKHBXwBQ5zbkSfZ7r?= =?us-ascii?Q?sz9rfoBE8ng08I1wW4id5ChqWwkIafMprzMqpyp5019bnPVEvpqHoFblq3TN?= =?us-ascii?Q?0AuPS/wJEV6o1LphgIp7mIMCfL8wUQuQ6QslczbwOJHejJuHM+6RsBfdD70p?= =?us-ascii?Q?T00T4Avo7aq2tPDt5QoG8eslgSKL2usMd2FjZjjGmUjcwnzOi791kVYAzRhW?= =?us-ascii?Q?2Ydg7jeNpdhlB8JWB63t1lKuoRmEtaEHtHEgKw1a8TapSmTQ21kpHG5zwOd/?= =?us-ascii?Q?XC6deNY/c3FyGrR0mGcumkoO13mb/NjbXDrhRDWhrubvpkaE2BFlBBDTFqOG?= =?us-ascii?Q?Swz/KUHyCAi8O+epP9U6Z2hrQhsBgZFvxUkleoekBLHojIzSIe2YYHzokg9/?= =?us-ascii?Q?I0D6vMpHUu7pCqYQqX6gfZGUQNgm3fy2NqgiznJ1sSpCJmDc0KCMV3VAPxq6?= =?us-ascii?Q?nvgZ4h3ldzMC4+IEmze7DhSTDlDNTJQhU7iU2cm9a8U3Wm5AmkpFanAktp5o?= =?us-ascii?Q?9TeLJW7gFnM94FV+NpC3+4T7o3jMrP9H/Mx4W8wIcCuMUy0HwM9MI1F7H1A1?= =?us-ascii?Q?0V2NRHqKpc9B0XLfuJqR8cn9/mcGCVNb6poU9eBj4aCWRCyxruF0SaYiJa98?= =?us-ascii?Q?E47ozXns+VICqbsyZeavcienmKn8/+Swnr5/LJo0HStBcR3o8gZXzWOGU4uc?= =?us-ascii?Q?ChdndpIVbwDEqNehIS1LvUhzlSClS5kG5l4FdLA3sE5ajVtW1qoXNf/tNT3R?= =?us-ascii?Q?aqSNrKmNYBJZcV77sQ5lyQJivVprEexxFZTuogKGUJTSST7SVFl2ERjpOx6v?= =?us-ascii?Q?ZWrDRTyCRhHh41UX5JPmfHOjEd4A5+29J+r2ZdDhVGdpVC6JddZbxydS5/Uy?= =?us-ascii?Q?+9+y/qAFBcgzz7dcXxXNREUyY23kdk2tglJJB62P4nD6Ow7qOT+8bJ8LinM5?= =?us-ascii?Q?lAU4vOaspHAFnx+0Ul95ABPMf8zx37f2griHrLr7LSHGI0x0hhiYXlPDWHMU?= =?us-ascii?Q?77Mg32XzmHbYNfAfA/6NcBwrXMnzkHyE3sGyXKjJ6k6KSgJoV2gjXw=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB8676.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(52116014)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QpyiK9gOkH/s3CFRDsci0Q1P7fP2cj+EgBQEbygZgU3druauntEree8UmAhz?= =?us-ascii?Q?deHWjOE2Sv45w5fIzZYQjmwVbHWkMRIAJ/+SbtEssz32dfjWsE9yDyMn03gI?= =?us-ascii?Q?f1Lb///jj+PUy+M3DqTK5c4HGiB1YrJb1op4Bvo9BikcM/WM1n0sTLTaW/AL?= =?us-ascii?Q?UL4KF8klXoXbPPeoF4juKX6NAk/0fXdib9khkdvV42o9djNvpzmGmQrYqZye?= =?us-ascii?Q?QctMr6qv8sQNUfpdXSawdDNgWNGSoJSuOBI6JvRNtVsHpoKsNOCML8XAxDsa?= =?us-ascii?Q?JDSx3rJt82UYxete0SeWyTSPH3gaih2LMHLT+PLgmYaGf2dNq19KnXh5IY4O?= =?us-ascii?Q?x0YIggOdhKLRREdMeT0Ni9ks+hL/k5PVxhTS9ewOHeDPlRxyAMa3UJ7eHA5j?= =?us-ascii?Q?Rgf0ZozMwtSoYOnHH6UP04/fl8qcgEMN3c7aHaXxsrelmD63TrwTdR+GtF0i?= =?us-ascii?Q?S7cT2LEaOxnGvef7+L1h/lpbWaDk+6HKkx0d3uzOLHvztqVrBFHjF1WB7pMu?= =?us-ascii?Q?M+pd8Fcfvr3Ho/C7gFdBujenlCXMCmVtHE4Ljzsnz8UmjtforS0gmaLKs8QQ?= =?us-ascii?Q?9uQ7334VX0U4FstU46nAxmISNXmBX3Jtl7ZNB5hKZeh5BlqPKA/W+WoFi07d?= =?us-ascii?Q?7hmYiWF3Co06dP5aIacg/81yhpEugRCrUu5g12RttBq9g4vJqwwGGPwMJQSz?= =?us-ascii?Q?ymoYKI2Gch7payPWWZ7mdZyHUmpDMauI4Kzaw/PdY9/aBw0kANsZO5eIrV9Z?= =?us-ascii?Q?TZOEqZo9gmDJkjwcZeVaMzySF39as5CdDezNqdQmPYtPrnJngIZ5Oie3W+Hs?= =?us-ascii?Q?LGGHw48sJa8MlMnv7N7eNMY1gfN7PfnFxraakfWYj+GtyIkrtZu9pqTUfu9G?= =?us-ascii?Q?oVLOq88y+rEuh7tVClsi1hZl/PB+4lPUdv2CjCATiExKGYCfmgc14U6r7LIY?= =?us-ascii?Q?I9hM/BM6Y3dA+PANvL+08l3KcUH6nST6v6p5JLyRlrF4hz4fAZ6EPszbQb0g?= =?us-ascii?Q?E/MnePJIdv5Fkt+euhLfD1MPcxte+5DDKJ6RkatmSTB8fV2Psyz94BRJ4F3Q?= =?us-ascii?Q?JBY+S41yngvfRmYR9/sRqjpp/8nWMt+FL7MozgqLcgvj2NNWcFk8dIN/GQf0?= =?us-ascii?Q?ORzQaJMoYzGRD/sBgumLOqMs+PubNhd3YC0BWmoCFXn6PFD59krEqepr0eux?= =?us-ascii?Q?M8XgSU7fowbxQIMX5AfWD5U/kx/cZmg354flCZV0Twfp1iUTwlWP1CZf0thk?= =?us-ascii?Q?jrv/52C86Qx1KLRzF5ZktGZXnNn6ItMJG0clOtRXQBSIfuULMJ9173zQ6YZ4?= =?us-ascii?Q?NMVLIN3DRA1/fahLxtn2vDAW3wg6r69q6qliWgMQ+RC/hTqcD2twxlOBiabx?= =?us-ascii?Q?cVvtgJ59FpURx44ZRKKpFOGOcp2ozmXOqjd4SMeLHPOjwR1xgmZjd7hYwFp/?= =?us-ascii?Q?Q2eslDu0LZAu2qkp88Gp/ltr0HuIki5TMp4si5j9soKwebn9FnCSFfkp/PMV?= =?us-ascii?Q?8AxwPoRYkwbefFiTcgzivBxkVPQ0ew07P37EZwQH0wn65MvEH36/fEe9XXha?= =?us-ascii?Q?2+7C2oNh9fyfD4gApTU4QPzyBidqGo4vE56wLjQy?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7f8255b9-2d39-4fbe-9686-08dd766a2ba6 X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8676.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 06:54:13.0307 (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: k9nq7aJuWE+uOafjFWD53xonx8Q1WIJxfZGUvsEGjMCnjUtcYd3QHif5XnLBA1tNE/tKqbc78ez9WE6tEup8hg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR04MB9458 Content-Type: text/plain; charset="utf-8" During suspend/resume, i.MX6QP PCIe is hang in L2 poll when one endpoint device is connected, for example the Intel e1000e network card. Refer to Figure5-1 Link Power Management State Flow Diagram of PCI Express Base Spec Rev6.0. L0 can be transferred to LDn directly. It's harmless to let dw_pcie_suspend_noirq() proceed suspend after the PME_Turn_Off is sent out, whateve the ltssm state is in L2 or L3 on some PME_Turn_Off handshake broken platforms. To fix this issue, add one quirk to remove the L2 entry poll and let dw_pcie_suspend_noirq() proceed directly after PME_Turn_Off is sent out. Signed-off-by: Richard Zhu --- drivers/pci/controller/dwc/pci-imx6.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller= /dwc/pci-imx6.c index 5f267dd261b5..aade80010cbe 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -116,6 +116,7 @@ struct imx_pcie_drvdata { enum imx_pcie_variants variant; enum dw_pcie_device_mode mode; u32 flags; + u32 quirk; int dbi_length; const char *gpr; const u32 ltssm_off; @@ -1614,6 +1615,7 @@ static int imx_pcie_probe(struct platform_device *pde= v) if (ret) return ret; =20 + pci->quirk_flag =3D imx_pcie->drvdata->quirk; pci->use_parent_dt_ranges =3D true; if (imx_pcie->drvdata->mode =3D=3D DW_PCIE_EP_TYPE) { ret =3D imx_add_pcie_ep(imx_pcie, pdev); @@ -1692,6 +1694,7 @@ static const struct imx_pcie_drvdata drvdata[] =3D { .enable_ref_clk =3D imx6q_pcie_enable_ref_clk, .core_reset =3D imx6qp_pcie_core_reset, .ops =3D &imx_pcie_host_ops, + .quirk =3D QUIRK_NOL2POLL_IN_PM, }, [IMX7D] =3D { .variant =3D IMX7D, --=20 2.37.1 From nobody Mon Feb 9 05:15:58 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013053.outbound.protection.outlook.com [40.107.159.53]) (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 D7F8225FA0C; Tue, 8 Apr 2025 06:54:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744095266; cv=fail; b=HYuit+09d147AXX+MPQCioAi2sSVWviiJLw4wbp/4WyiiMkVTGO4fgWuqq67p0kPrJVLqFcR4N6GBteRHpqMnVZTVArihJeexx2/gNTyRljn49lXAuOf13hxfvVBVwEb/KJtqMSNBXcGm1OdXa0t1qeYwV6pAxtlosNiX9Ar13g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744095266; c=relaxed/simple; bh=Ra3rGt50DuQOCQL4y6N6bn7NLoFJWFNLQcSlHbh83dY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=sM1oZeI6jOWB7LyktHs/s1WM/hTk3GMYwieFHJ4xyb4M/ZUVsH3zrmkPgMlnAccgFkD2FGl33dnc4WknkUPaS6eSDvdoZx0Ka/HzFPpIMCEWOn0tx+1458AMmVGxsEy3wvjpOl/MkjWZ6BPpC7zrx+JQzzC4pQlFyJmRH33UYmk= 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=X/qcmWxx; arc=fail smtp.client-ip=40.107.159.53 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="X/qcmWxx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=O2ruj9LA6mLZ6oKPwH9mJlw4WVX+Z9WPI+uBwkr7OESuhv/wcd/aozl35lzQnPCfCH77KvYIjuy+j5CDx4tMYquQW9wcSQlxyMAveQHJLZg6yZWIUfor0GEA5CZQp3EATa7qp9W7B2rcQyKI7ygYiC/5BiUWR6kPBKBuu4FA3fEKHNp36MDeYrCmLQ4qAUufnK4qyYCCABZb6w80WTItX5Co9ZYkmy1WDK+5nYI/16ZhtV9I9XanNGCHYSeWAIQm3DF6Shr+a2FbdmZ6KsqyynF5/nEZprd5zJ7+laHI+mZXBzPYdXcyxZ7sSs0cz4bcOw2L1aLeXJw/3z8Kjx5smQ== 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=iKCbWq+Itvwn7lFE69Mw2AySBmN0yvbWmmXK/6d14Ik=; b=j/UTzQFeU5rb/ZW7NqwWB5/Tnh2LndbYgmqyThvXV/9m5ohURECrElZQgOxQtHu+eMGzNFYbwBPdJdfLOQ6P6OQ/m0k5jxCz+A9cth4ciQ+ARLEqV/twQFEyAzgdfW75Ram2viC79MgdOqI9KoI+uZifb8tVcGelEOHECRollFgzQ4R9NBxpdE7t/FgJVVQvBcMhXdRdWKSXhcex//DOGZYCwAGyaqbl09T+65UrcBTt9TQ/fUEWlp0dfFleAFniIcHUs8KJPN6pek4Rh0ZbSf8SCBJrFN2nFMgmsXEPCqaLBJIJ99ULrtYmdEGqNNi8yT1IKz25CmGhYvWUrH7TVA== 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=iKCbWq+Itvwn7lFE69Mw2AySBmN0yvbWmmXK/6d14Ik=; b=X/qcmWxxkHD9hR/v+ga+HjViDq12nIPCZtfu7uxq/qgoVmOIF+x7nSOCe8bFypXmDyvLsmKmsnFYdqFdXIRfRhyvZsS1NdoF55x70wKTNaX3wEXa1vTsjmFPT0hIWAMS6vKc9jyDAlDb3H95YqHw69tc26Bh5Gloq9kspb9QGpk+yB2V9S1x3inPFcxR7Lj9o5nDa7viFyTDP6uYpYU3u4u1eMHQlsw4lTp3cnQayDYc02CnLBhkiMAyzQghd2XJQKJ/ZwylKrcIBHf6blC+3RhmDXDM87020SmeL/34q7QLMlUc98PXEiyGs06tiXadcW8Q9WrkKbprEZVGcy0q6A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AS8PR04MB8676.eurprd04.prod.outlook.com (2603:10a6:20b:42b::10) by PAWPR04MB9936.eurprd04.prod.outlook.com (2603:10a6:102:38b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Tue, 8 Apr 2025 06:54:18 +0000 Received: from AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::28b2:de72:ad25:5d93]) by AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::28b2:de72:ad25:5d93%4]) with mapi id 15.20.8606.033; Tue, 8 Apr 2025 06:54:18 +0000 From: Richard Zhu To: jingoohan1@gmail.com, frank.li@nxp.com, l.stach@pengutronix.de, lpieralisi@kernel.org, kw@linux.com, manivannan.sadhasivam@linaro.org, robh@kernel.org, bhelgaas@google.com, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com Cc: linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, Richard Zhu Subject: [PATCH v1 4/4] PCI: imx6: Add quirks to fix i.MX7D PCIe hang in suspend Date: Tue, 8 Apr 2025 14:52:21 +0800 Message-Id: <20250408065221.1941928-5-hongxing.zhu@nxp.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20250408065221.1941928-1-hongxing.zhu@nxp.com> References: <20250408065221.1941928-1-hongxing.zhu@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR02CA0001.apcprd02.prod.outlook.com (2603:1096:4:194::10) To AS8PR04MB8676.eurprd04.prod.outlook.com (2603:10a6:20b:42b::10) 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: AS8PR04MB8676:EE_|PAWPR04MB9936:EE_ X-MS-Office365-Filtering-Correlation-Id: fab96a16-a365-430e-3c3b-08dd766a2eb2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|7416014|1800799024|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?4JUpX9ZdOln5T2mz8Bd9x8sP6eeRyemKZJfPqsA15+z++9k0EoWlNQuJkEsq?= =?us-ascii?Q?95PIBV/YnUYKYxuPCulWK1lIWktLGAvDWlHqK/3gd1P7L+QOAK2a/xe9+uBP?= =?us-ascii?Q?YC4mhu3dIdyf2/f9SFhp9Oe9JdykrOHZit7TFxDDtSI/KX+KyR1oaMbJ6OP4?= =?us-ascii?Q?pYpriirc461wsZ9/fgNUQ6PfGDpddx+lsHcqrCoaagzk6LFnfDQfQEf4oW1s?= =?us-ascii?Q?o2X6IplYQeAR1ST0INhpHMxbsMhizgdgNGPzAMcb09R+cxCnOWXBNERlM9nJ?= =?us-ascii?Q?pCNYuTpO6LJ8wVaGFoAKW45jn5+fR5FH9unF47yyx3O6UOGq2D/ewm2ma+HL?= =?us-ascii?Q?QbvLWdH7dbO7+01yB0QWrygP/GiBSrtJpmNjYKOZYVh6F00kcoWS2Q/NhNuH?= =?us-ascii?Q?bvOGh6t3tErIL7F7GTbKd9O6lu2xWfldP54jo7uEUk3Sx1x850RjnQ1HhRF3?= =?us-ascii?Q?+70b/0s8QIq8tQDtJXXrGS1+KU++861hQoUtvaJ24tNX7rOBamH+yszmISav?= =?us-ascii?Q?v6mpNhkiScQghaOPw0sXr/t3m/kOqixKfCYZa+W3WAi2Ggejgeh6jOLoSb6s?= =?us-ascii?Q?rsSMCMLsm9VZU/xbK5Cos0jtCXQ2KpgF2ondOdttvPyvRV73zqlAdNxQLpua?= =?us-ascii?Q?qx8Jx3k3B2Qjxa3uP4M7hJ4MqDO3Q0PllmvjCH6vYPW1cUvHeKnk4tryazMw?= =?us-ascii?Q?2EyyLHBqkKDBtl8ccfWGT4BG/P69MpKJC3vx8dxWYQqUz1V19shVwTh/cI0y?= =?us-ascii?Q?GDi5cmPvu922GxlDtYzfxY2DtXRqzBh3GnhBquSK7Pm96mhYCTAZKIbjHWHV?= =?us-ascii?Q?5Q7QHtkzoyn1/bg8IfO7Ky05ZaFhiD6epzNlWQWNPZ48N5e8MzMDFoYeVUr1?= =?us-ascii?Q?oeD1YmUGa82/kluC/VIyB3BMczaoMIuL8VpsVGMlfBx7BaMYlRWbZieek3nz?= =?us-ascii?Q?tQ4EH3VO6Jy0wKWYhRoXxYalvX3kjAkQ3BmLwGgc8jNGOYunWFZ18prNJDBo?= =?us-ascii?Q?F0OKxuKlByYhngKCm0/tKmC0CLE/pKpnS4NmsY3Uefv/0dQFvUZw+XOZSFZu?= =?us-ascii?Q?GouO+3rzXk1nttuVLRaUMyFDGC6C1kQYdj3ui+fX29Y1FCrM2tlTp/ZYQbJm?= =?us-ascii?Q?lB7nnp9Z4fcrkf/T+3EJTyL1kZ4Mcq2G8KOvCb0WzaUX3umUGINqK0QN6vg6?= =?us-ascii?Q?WmAtQIkvPTC7vNhQnuAtPHSU3esnb8FilvSCnh+tTYcZUqYTRlpH5xOuM6CG?= =?us-ascii?Q?apUTp5i0YX8T7ao911zohNkLN9XxCeDzGRdue4Uq5SdUYQG72noYeykbWyqy?= =?us-ascii?Q?7Tx/AFOKF67h0ykNLzwBXixY8oT+ApU28xsUvw1bpSK96wSw9GgWLM6MCYrB?= =?us-ascii?Q?icQlEJKYALwkCJMkWoiub/yDuyBJnopL8vPuyOD4XKtznwYobf5mDWQwEmm3?= =?us-ascii?Q?G4O8pWkWiGEIFWh9wNUIcoVMlaHD5ZPgxllMTcHNMa3ahH00A7TCZGeNQ9B9?= =?us-ascii?Q?vederEexC+SWBso=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB8676.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(52116014)(7416014)(1800799024)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cj0BNLcTk4mGretPSPn7P/dGERY9magGPTZ/SLLK19Cz450lRAa4f/J2LHjY?= =?us-ascii?Q?O/mjKTgl3e3tSNFRHEm+8qbRUGsV8KdYuMSHEqNpo30xwO5gL8yGWBtVAjCx?= =?us-ascii?Q?aFamEQSDRSJTjfwQsrlluwnKXqAtxCvdU+PaL+6/FIpptEl1C/3kRLeQbdmL?= =?us-ascii?Q?xueABeYdW5zj2aKy2mEa9bXupbMhl3gPT+ZBOUgnnAMRHoDpN+x2rta8qkFo?= =?us-ascii?Q?dUXMfEMxy/KO26iSePfm6ezWp1glpafCZ0MVQLk+B6fLFKs96NZRLHTBgH9Z?= =?us-ascii?Q?+JgpoeSoiiaTaNNV5ZAlrjrqRWYeqOARLOyXoiEmnSabWeYgjlV7XsC4ABOg?= =?us-ascii?Q?Pf9l1acgC+NaUlBk/xFOKZc45omNdpiCCxAJ3RyJfbIYgel+Lsw//a4QSP7/?= =?us-ascii?Q?DcxvmVC6WV82YCzJatPHVFj+uBWZbAg2MdqCDzPIKZLmd0qG+08LR69/9Q/T?= =?us-ascii?Q?S5WAPc36DBCQJyLai252wb0c+8vfBwPbHbUYDpiNFBydm3NEL2Vwlyft34xe?= =?us-ascii?Q?v2piNej4nEWPtRIhidXaxwwRNvbM+COQD76ZxyLXvvffB7IECQGuAGLJDG6K?= =?us-ascii?Q?He803R9hMiIPfSPZhIpMjchrRBIUqvcWe2L6hp9y1QD1riRTPNjUWCDLM2nD?= =?us-ascii?Q?63wuUsjg12iE+ja1popbNBbjjQFALoFFhzpy+H784QawJFdrreKvRYAzE2w+?= =?us-ascii?Q?ItfwBIbaqMJLa1/rlIn6Jr+DDR7B5w2aIuixHODZMdel3wYXDxDmsQ2uWz8t?= =?us-ascii?Q?EBR15AtLaE6qEAur/ldAXlVKg7X3ZkMvqjcNafQHUo2Bi9o09nuYcWcOCSzZ?= =?us-ascii?Q?7+Mkrnp0gMoZNsaP9/AlgTj65zzOOZilVI47nGdtjeq5sv5RFSBfpKzN9XWW?= =?us-ascii?Q?XbqefoJlZUXTtx0AbXlEnnPbeOfkLMHzZKaHe3h5lz3iZW8010DRKKsWiuNB?= =?us-ascii?Q?MKSxFS4ghCyNBivnRBhiu/8RXDve/0aCjrXqmX6jCZHIs+0Z0p5EWuTUNdpZ?= =?us-ascii?Q?WwUXyQ55YJhd8A0nefQ7sxrK/VOYrkhv4llX0v2arGw9+prSLVJ6BfYjnTh4?= =?us-ascii?Q?RkC1IdCtNIaaInBF+8RCe38mrAvtPEo45ndSY8FnZc2KkZaXemOVViD7Dk44?= =?us-ascii?Q?dgwdRIMxuDolZDyBu2378oI0OYlpljcklE8D7kR32JFA9cUZCQMwIUoxPRqx?= =?us-ascii?Q?dacukFxCM4Rcb6VM3u0an8L6qDMs9mGzzZczhm8RLU4K6l6B/k6MFu7sLHVW?= =?us-ascii?Q?beH507WhupV6u6t6abVrsIkZvFjgvyWt69hiYbbx1LeGd4u9jvnaqgkgZObP?= =?us-ascii?Q?BZmeKm3HVoNEJe2mB4NlvjlwnVOPl3j6VLZhATFsrozgEhr76Zc2GK1NsLKr?= =?us-ascii?Q?tlRN5hF1v01RU6dyA6dSQzwRUwCvTbAD670nteOzOSBh1+olyV1On9fIE1X5?= =?us-ascii?Q?YFm7Z4ec/4jlBXUhrZitMGJ4njMtjpBmwp7bVGotJ3PufenebtDu+QM7YU+A?= =?us-ascii?Q?4MRAuMkJ/15fG0aqPbCrFqa0TMT4bda2BAobXOzvqqtZ3zhs7eziJ4UPI8By?= =?us-ascii?Q?RG8Aztvs5r9GmydyVVTMGJoEuor+sStefVo+l933?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: fab96a16-a365-430e-3c3b-08dd766a2eb2 X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8676.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 06:54:18.1722 (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: cw+dQcGwkUXGo+DmsYihGXOXf3P0AyNcWIfomyEB7RM+VKTr0Gl+QA/jiYqbZn42AuPEcdY344fzKERXxmvdMQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB9936 Content-Type: text/plain; charset="utf-8" When no endpoint is connected on i.MX7D PCIe, chip would be freeze when do the dummy write in dw_pcie_pme_turn_off() to issue a PME_Turn_Off Msg TLP. And, i.MX7D has the hang problem in the L2 state poll after PME_Turn_Off is sent out when one endpoint device is connected. Add quirk flags to issue the PME_Turn_Off only when link is up and don't do the L2 state poll to avoid problems on i.MX7D platform. Signed-off-by: Richard Zhu --- drivers/pci/controller/dwc/pci-imx6.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller= /dwc/pci-imx6.c index aade80010cbe..779b6c7a501d 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -1706,6 +1706,7 @@ static const struct imx_pcie_drvdata drvdata[] =3D { .mode_mask[0] =3D IMX6Q_GPR12_DEVICE_TYPE, .enable_ref_clk =3D imx7d_pcie_enable_ref_clk, .core_reset =3D imx7d_pcie_core_reset, + .quirk =3D QUIRK_NOLINK_NOPME | QUIRK_NOL2POLL_IN_PM, }, [IMX8MQ] =3D { .variant =3D IMX8MQ, --=20 2.37.1