From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 946F613B584 for ; Wed, 24 Jun 2026 10:16:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782296165; cv=none; b=bZ7qsFqljjHlGaerYAK6kcdkPFRjXMqkJby4BehZrO0sLcuyRUYYWv8PV7DdpXTlV94FB8VGhyJjzannZduGbKQk6X888SfhOpmjeYrVNpgxAYQENpPzAOY3yog6242UcuE/ztIZPpg/n2Xa0HA0qMyRLC8eRONMwvWYy1Rt5E4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782296165; c=relaxed/simple; bh=L1HljvU2xvbzF/aLGQarPA4ktyCZjGfjunv/5XdAHOU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=KyBYJ8Z2SJw5ktlD6nwOoBz4FA/Twyy24sSSSXwTAhPofgDOu/zD5iHOMQQwgPq34BSFapQPDXO1O4voXz65R3wTNlbjlG9Wxqr7QpMI/1dVNYLNhn8dJ1LclEAdupmdMllvTK0/nSgx+p9WX28XtXVvZrR+5ryLUq14byzTUxU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=NoibjIRk; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Sb6hgENx; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="NoibjIRk"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Sb6hgENx" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65OA3pGr3027009 for ; Wed, 24 Jun 2026 10:16:02 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=NcoHzJszeYpqsM2A4EUkIi iMUIpNqZhSmYTarqLAzy4=; b=NoibjIRkOWFQ6dVHE0iRVoPy/hAWwieQxLadls /1u9GSMgEDczXR5mXWgA3hZrbxM6vPNsN7mtgGIMDJXN9ylcA/D0vIHOqebC9Lyz SeAm0re2XUA99L0fWq53TXLIK1HbVJS3ZCX+bnLCqlX6dOCsBpvW0nOch72wMO+N 9w5bwWn+DB6WdlZWk85i5pQEKG0FuYZQA300YSsloFPkptwR8Rnz2hadvzVNOQPN w6y3PwLCVn3HnDtoxhNhN9d2GSYUh4Tcu+h3hMGdfYLwY7/L2XoQvHGP6ftZlEn4 vHTF3phzhqZlYd2Re5Kvoc8I5cl8if+WKn+FYlwnoxYpN6Kw== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0d5g0266-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 24 Jun 2026 10:16:02 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2c7f0d806f2so482635ad.2 for ; Wed, 24 Jun 2026 03:16:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782296161; x=1782900961; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=NcoHzJszeYpqsM2A4EUkIiiMUIpNqZhSmYTarqLAzy4=; b=Sb6hgENxRiL7irtjFaFPlqcr4iO2H4anLxGQTR0Ks1STqQY43rKb3cwU0WDPif/9b7 CsFMVQDvWG0Tpp3BPg6bTD+PecleZI8ox0z0Txo+5W428I6gpdniSwEAZp+oX0Au7c5Y hAnItEtowmj4vqXK8gFqRQkwc9xn+b6P+S9Y0pTy38rHid0f+hBNuiVVuVerXKOYkcSq Qtc49PBMVUUFH0lVZYwgVBxDx3YHcmwMzou7I2xXUEfrKdX7mP3pi/jqXcNR81VjKaqg bTWgJn0L3HJbtsl4KhccBqx2VDwAWLZTxh5NFlnLUPUa1bABDyeSOY7dKp+yNHP2V/TB cbxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782296161; x=1782900961; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=NcoHzJszeYpqsM2A4EUkIiiMUIpNqZhSmYTarqLAzy4=; b=Qs1GmcyN5nyTD2q8tGjadDOmc7iMN9UOzhovBqbcMzKAuajdhGtzDBHH1VSX6/EVW4 IdkBwNKr6VZVwo5MR04lgvFBgUHxw34+ncqWRR8iuFPkRWp/BAtyLMcjmyJTF3FI+ICR 0pT2PPZeKZ6FUMK6iWUXfw3nQl24IlpLmhlhJ6jK8T4mJ/bva3Bh84zVchbojX8VDK3h EjWdFWmC0j/4e/WwiChk8Dn9bKwQDZyGRU+NZ1vScD1lYNfSGZTxznuJp/fo8PquGdz7 XxpvkCcBH7lHW1rL+piserlgSLPoDvH9m4htpc5P1g2kxZ+VMUAQJhF3N95ypNP8nTzU sUIQ== X-Forwarded-Encrypted: i=1; AHgh+Roc6nOHooYTvRyUGH3wuUiTbj8xS5bABEy54CfWw/35Az7jM4zxu6ZcYMDXrF6nKSnN7RPqfgPbUc1wDTw=@vger.kernel.org X-Gm-Message-State: AOJu0YzV4arSGpvpVG98R8uPI/nKJrd4sdE6o3CCzC0NNwsL4Rv0qfZ5 CCONI9Q46UJ/H4jnUemuLW1sNcVRLmQE0BpMn4Mwq7wjtTlvg4qXMKFkANgfbLykEKoIPkmYUPc yp12tuY2TW5xlWKMuYPDeiVxxUjonr+QZ66A2ql+BnIuEVLMnECQkMSPuxSfYhBp0K4Q= X-Gm-Gg: AfdE7ckZx+uMmph+EdeiS/9jsh1lR/o6bQ3zBGYHsyfNKnWHll2BDtE7RsVZAASQsdc Zkwb4U8feQKXI7q/SLbEKGRBQ4vcfQpkcM4oEKfdXJhFD5SurmjFPp4M3nzXHi/Na23FkgwwWDE +pOx5OeqRR5YY8FLkti7k7O5lPoyi6PrMa0YXgQ/Ogrkcbx5hldMycV/1GMmzsX3SEsrniCIZGh TimZ4T8bI88uU441odzDzOfy/LYqBBaSQiR4GqkQ8jAwHuHlvRaGbveBNierhfxHbSOOojCdzfS ZxGVKgi86LJ4EO70rSozAz5OGAtsT5Pm5HnvQOdMRLfTKQ35IOUJXXCSZojF5M1rmvoYL6yGc1S 601OQmlWModiZqzl6VFwQONQF+xvbJTzPG2xL2subYJbSEg== X-Received: by 2002:a17:902:cf10:b0:2c6:95d1:3bbc with SMTP id d9443c01a7336-2c7e157bf30mr29715245ad.24.1782296161166; Wed, 24 Jun 2026 03:16:01 -0700 (PDT) X-Received: by 2002:a17:902:cf10:b0:2c6:95d1:3bbc with SMTP id d9443c01a7336-2c7e157bf30mr29714845ad.24.1782296160595; Wed, 24 Jun 2026 03:16:00 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c7444aad99sm155645355ad.80.2026.06.24.03.15.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jun 2026 03:15:59 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Wed, 24 Jun 2026 15:45:53 +0530 Subject: [PATCH v2] PCI/ASPM: Mask ASPM states based on Devicetree properties Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260624-aspm-v2-1-800a4151ba3a@oss.qualcomm.com> X-B4-Tracking: v=1; b=H4sIAFiuO2oC/yWNQQ6DIBBFr2JmXYwQaENXvUfjAnGoNFWUUdPGe PeCbiZ5yftvNiCMHgnuxQYRV08+DAnEpQDbmeGFzLeJQVTiWkmhmaGxZ61RyigpbholJHWM6Pz 3yDzrk2lp3mjnvM1G52kO8Xf8WXn2zqTi/EyunHHWSKMdaqWs049AVE6L+djQ92U6UO/7/gdsh M2xsQAAAA== X-Change-ID: 20260429-aspm-da55a54279e4 To: Bjorn Helgaas Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, mani@kernel.org, Krishna Chaitanya Chundru X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1782296158; l=3550; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=L1HljvU2xvbzF/aLGQarPA4ktyCZjGfjunv/5XdAHOU=; b=krMzulRV5cuXh6TFG3E+M06fddjE2+mD0mEQRAJ6ivoXB5MK69YKBweciOOPYx9CV9gZt+kn3 TwVWJmKZaZkBGVwNJS8A6hZWSp+dmwjVZvvrAaODVs5uFDplTtTgZJO X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Authority-Analysis: v=2.4 cv=LdMMLDfi c=1 sm=1 tr=0 ts=6a3bae62 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=NEAV23lmAAAA:8 a=bC-a23v3AAAA:8 a=EUspDBNiAAAA:8 a=XdZErTz-F4VmnR4h2NkA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 a=FO4_E8m0qiDe52t0p3_H:22 X-Proofpoint-ORIG-GUID: 1-hQTlnFJU3ENvtExsUKpot9FE7EjsUE X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI0MDA4NSBTYWx0ZWRfX6cp8DbBuckT1 xg7EFEuPl9h8o279BMBT2XWvctUlJ0xr38XkO6CfKTLS4VDgt0ST3lBAIICz/7hHWAy4rJaABiL 5zCKucb0wNvedm+7rJK2U6SdfQfXZvEam1r2823veDZPH5s6qNJprIshbE91PWVA+m8beCad4kl nEr1a4W9aNlbqf3BS81HKeNFclCCoupuw1RI5fgFV9+IVGYal/+eJZ5D7e8SIMb9P0hemi6xy+f +X4S67eYEe6cLx8ifJCmZBL8ovQoJ1eXEgi001PXZMNuruT/jaVDYOQsVX7ImQj8BtmhazVPJ/p S4z8CAb1zsTa7IRypmmdI3wa3medGtWeyazFnf1ScAmXis+4UuryximcCXDxjvO61AdDLE7np1y HQkAUc14YiX+avvRufbZzsAEzg9n6snLUaM6dTG9JoDM2JR6TnGKkz+b50+D+dDwT6w3GW7eElS m6HIwwrWheC2EhxAMLw== X-Proofpoint-GUID: 1-hQTlnFJU3ENvtExsUKpot9FE7EjsUE X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI0MDA4NSBTYWx0ZWRfXwaBZ+/xpTcYg dk9mE3KYrOiWrpQvmkWtirJV7Ni0FpSySfExaWCskCQ//e82/o/B+DXuZJOS5xOJeDG+Rnpi9kf tMlNq3nqIZDWoIjP04gsxF0t1KHxu4c= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-24_02,2026-06-23_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 phishscore=0 priorityscore=1501 bulkscore=0 impostorscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606240085 Some platforms require selectively disabling specific ASPM states on a given PCIe link to avoid link instability or functional failures caused by board-level connectivity constraints such as PCB routing, connectors, slots, or external cabling. Devicetree initially supported disabling ASPM L0s via the 'aspm-no-l0s' property, and has since been extended to also allow disabling ASPM L1 and L1 PM Substates using the 'aspm-no-l1' [1] and 'aspm-no-l1ss' [2] properties. However, the ASPM driver does not currently account for these properties when determining the default ASPM link state. Update ASPM link initialization to check for these Devicetree properties on either end of the link and mask the corresponding ASPM states from link->aspm_support before applying the default ASPM policy. Link [1]: https://github.com/devicetree-org/dt-schema/pull/188 Link [2]: https://github.com/devicetree-org/dt-schema/pull/190 Signed-off-by: Krishna Chaitanya Chundru --- Changes in v2: - Disable L1ss when L1 is disabled as pointed by sashiko. - Disable L1ss if bootloader enables them but we are disabling via devicetree pointed by sashiko. - Link to v1: https://patch.msgid.link/20260511-aspm-v1-1-b4a9fe955cf9@oss.qualcomm.com --- drivers/pci/pcie/aspm.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c index 925373b98dff..a79426b5bff0 100644 --- a/drivers/pci/pcie/aspm.c +++ b/drivers/pci/pcie/aspm.c @@ -27,6 +27,8 @@ #include "../pci.h" +static void pcie_config_aspm_l1ss(struct pcie_link_state *link, u32 state); + void pci_save_ltr_state(struct pci_dev *dev) { int ltr; @@ -799,6 +801,13 @@ static void aspm_l1ss_init(struct pcie_link_state *link) #define FLAG(x, y, d) (((x) & (PCIE_LINK_STATE_##y)) ? d : "") +static bool pcie_link_has_aspm_override(const struct pcie_link_state *link, + const char *aspm) +{ + return (device_property_present(&link->pdev->dev, aspm) || + device_property_present(&link->downstream->dev, aspm)); +} + static void pcie_aspm_override_default_link_state(struct pcie_link_state *link) { struct pci_dev *pdev = link->downstream; @@ -806,6 +815,24 @@ static void pcie_aspm_override_default_link_state(struct pcie_link_state *link) /* For devicetree platforms, enable L0s and L1 by default */ if (of_have_populated_dt()) { + if (pcie_link_has_aspm_override(link, "aspm-no-l0s")) + link->aspm_support &= ~PCIE_LINK_STATE_L0S; + + if (pcie_link_has_aspm_override(link, "aspm-no-l1")) + link->aspm_support &= ~(PCIE_LINK_STATE_L1 | PCIE_LINK_STATE_L1SS); + + if (pcie_link_has_aspm_override(link, "aspm-no-l1ss")) { + /* + * Clear L1SS in hardware before updating aspm_support. Once + * aspm_capable is derived from aspm_support, pcie_config_aspm_link() + * skips pcie_config_aspm_l1ss() entirely via the aspm_capable guard, + * leaving firmware-enabled L1SS substates active in hardware. + */ + if (link->aspm_enabled & PCIE_LINK_STATE_L1SS) + pcie_config_aspm_l1ss(link, 0); + link->aspm_support &= ~PCIE_LINK_STATE_L1SS; + } + if (link->aspm_support & PCIE_LINK_STATE_L0S) link->aspm_default |= PCIE_LINK_STATE_L0S; if (link->aspm_support & PCIE_LINK_STATE_L1) --- base-commit: 840ef6c78e6a2f694b578ecb9063241c992aaa9e change-id: 20260429-aspm-da55a54279e4 Best regards, -- Krishna Chaitanya Chundru