From nobody Fri Apr 3 23:47:32 2026 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 4A5531B424F for ; Mon, 23 Mar 2026 01:17:46 +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=1774228667; cv=none; b=qYi6qZX6IIyVp3TZqrUNWJ5ZH4VCbv6pxSyMmJvI6fXOv1J6pv8VK02k2sY7eLIzGJNFXT1eJ221OCKFDZa53ky6EKGDqdxYRuRMs0AI02IEzI11KcdByWbbDGwFtogD/iCuRDx/h6bfhhS0KEUL3DfMiavOeET9cC/ylFwSTK0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774228667; c=relaxed/simple; bh=baPUH0igjJNSAnKp/z9q/Mft9PpLQiCQHPwVsNkTz04=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ijTgvqp9GZHozJ7tsP9P7QJjyeu7Vj21QDLOgZM8Usyh8Glg8DDuOlLN7hGp2P26zHCReOF51cAqYZOAFfC2r6Uu6bJQmJuBbHF0rARuScP1GQjj5Z4pS6hMyFq4TR9vBuadh8JiXTOBLp+WdMi6mTvieDILe3tZJOb1ruipSfU= 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=LWqA7EyW; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WEUY50VA; 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="LWqA7EyW"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WEUY50VA" 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 62MDmavJ3769023 for ; Mon, 23 Mar 2026 01:17:45 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= /t8SuqPVuhwUVvBRrLk1Dc1LxggO0aNoDGEAzNHrMwY=; b=LWqA7EyWPoIlDTJd cltDGAVCAGwfQo9jH2HK45UOLY1b9QRajzYyu5W044ec9DtRpi1DwmY25ExDfRjH 5htAAY/A8nZ3Wjy7oYOiIDrEF2aWV/+LhXMVlikXkLX+VZgGNU1/HNSNoLkPY6x1 9d1dDZJA7xvAiH1LsjdLQGLNRtUu41hi3M6Hjih0pR31P80mSPbvKrbXWJi9gaQf wzueF8A32Z9Zq2/D8GNg5DVnKjxMhuFqSY6Y56nbxgovtT1x8/24+XzcEef5xQiw MLAdjM+W8MH0v5qr9/NUXr3xtcsH024+dGoIkAu5bnu1ngPltiPQAyggK0AKaKO2 odH9pA== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d1jwvka05-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 01:17:45 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-50937cf66b5so35454501cf.3 for ; Sun, 22 Mar 2026 18:17:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774228665; x=1774833465; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=/t8SuqPVuhwUVvBRrLk1Dc1LxggO0aNoDGEAzNHrMwY=; b=WEUY50VATJiUV0Rd2WTS1k30mUM2w+C0W+/EayXHI4SWxz75gZSLYs54FyaguTMDby s7aqC4rPhLPeskCK82Pef0eeEt96de4s7rGuihHUA4y+fkE80+C20mISo2JXEOR3HUhO RqPhRwBrqzcSlsMmgM9u2SkymYlcs4Nf+hiQMC8PfSAjO5QTBTvPtJGrgicbhAbOCjjy L0DWAaPRAPuKBaISTf+t2SfxGum8/17kkNANyiopeBRz0WgiqlgXSmcXvkWspXO5Yj9G BBUXFg5dGb7T8KyqyF8aW1lFA73e8zi6bj5dDalA1u62P1WNpAcyzfS/0+8GZ2IjD8sF 1ojA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774228665; x=1774833465; h=cc:to:in-reply-to:references: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=/t8SuqPVuhwUVvBRrLk1Dc1LxggO0aNoDGEAzNHrMwY=; b=ZNmgot2VZASps567yAKDiy/rIY8RDhDdHbj+3LbFe8hQd+9ra32gHBI6MaJ+cIuc+b 7wT6Co/WG9iEgrGfsiZxMIsfSnUvH+X/n7DFjrZ5eBJ2m9kA2mvKRO1N8AUI4CXIgZxB RCQjY73+KsVcWcO95qPdbRoKKroPnVUqF7mmb1g2dm+OGkZaRM/gGvAuak6T2+4r4FxI RWO70+HfkXs3vA+LTTFPmJZNK9ZjpaPJx46i7ocK8bsW0azKUIwkpYPK5f32HQpvJxmS nxHCDRUID7g5+yA7AFIDVS2dJCWBdmBitrv6uGGKgtRPGr55IpYH1KbHtHNGTyS6B64p na5A== X-Forwarded-Encrypted: i=1; AJvYcCXEEhws4839QdbT2dHRwyAdsA70+/dTygpbg4JGfP//LhgK0qN3SQr1qIt8k4y9VsOHpDy4jvPHWXdBPj8=@vger.kernel.org X-Gm-Message-State: AOJu0Yx60h/VpSPT2nTq+oks4VViUuJsrr4BlOQCMlFaKq0lY9uBmju/ GrfqfWvub5XDAJaxGezGkigToUcnmXTtJHLqz3ivGHPOpErdqJuBAOSM0RsY6cJJC5gT3xbIc92 lhHBh4i6k5BFhXBgh3LwpJpJ7q0++Zd+8dnjp63g1sPrdZxk5rL2vYx3SOd15AeTDUxU= X-Gm-Gg: ATEYQzyLaq5pGJ9UQMDeJgQzNZjU3F3Ow2iZpaKWORD3v66J5kThVc98zKUuiocoiVS 4Iyx0StSaHYroGUzExBd11hwURq4VwbLkWP30Z1EeyKlOglkI+9ZBJtmAXPT/vCsU/0o/LptafU n7Wv6oe8hJW2qT6lCPVY9exStwZWqJyUEKto2HwItKWSXq6jimu3FcGkQEtGB2RnKWD9ISOduPS iiJpi1N0Z+yeqDuQ9e0JN1+QY+dtZPeiWBhm7qp+6Tfm99MQzliAD7aLA28+FD7ha88rEADlMLo k5vVFgfHQMlAC+4HdCpzTDjdOtJadQLz3CRU4NXx8WhQaawVQT4KFILFsexDE2zkqrzUCL0PXZv hpRj16egBriMXmq0G1BG+GH62b42Kfj0aWj0fIbKqD1tw6cd7oN+EErSGs6ATy5qrWZimud/eXH e9eX/qN6XjVHPcp6/qSdKYbLwbgj+NctiwViI= X-Received: by 2002:a05:622a:1e0c:b0:50b:3ff3:f4a7 with SMTP id d75a77b69052e-50b3ff3f592mr140884001cf.35.1774228664615; Sun, 22 Mar 2026 18:17:44 -0700 (PDT) X-Received: by 2002:a05:622a:1e0c:b0:50b:3ff3:f4a7 with SMTP id d75a77b69052e-50b3ff3f592mr140883661cf.35.1774228664204; Sun, 22 Mar 2026 18:17:44 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a2853050e7sm2216150e87.61.2026.03.22.18.17.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Mar 2026 18:17:41 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 23 Mar 2026 03:17:22 +0200 Subject: [PATCH 6/9] interconnect: qcom: let platforms declare their bugginess 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: quoted-printable Message-Id: <20260323-msm8974-icc-v1-6-7892b8d5f2ea@oss.qualcomm.com> References: <20260323-msm8974-icc-v1-0-7892b8d5f2ea@oss.qualcomm.com> In-Reply-To: <20260323-msm8974-icc-v1-0-7892b8d5f2ea@oss.qualcomm.com> To: Georgi Djakov , Konrad Dybcio , Bjorn Andersson , Luca Weiss , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Brian Masney Cc: linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3957; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=baPUH0igjJNSAnKp/z9q/Mft9PpLQiCQHPwVsNkTz04=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBpwJSfDBkeGmEtVasiV4Gql28ow9equeUMsxQR7 lfteiyKvuGJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCacCUnwAKCRCLPIo+Aiko 1a6yB/9limDxU+rsTOQYqO6zFcA33pv3UVDDPBkZ3Io1fw6LtmbqOP2iSihUjzcvKE+4IU0OriG oNrZVtHmsA9zpYz9LxYRgqRwB3lbhKXrjV/i9yV/1q9H41Q1g5Mrb+7p3aDCCfq5IlesEr8Hcw8 J/XVqfYoWdsdwKh9xrbU+dcn7230zUgt1nXMaSu0wDARWkZ8MawuDILju0Ie3BO975E+7YPCQ9r V2w26bHIEBlzEk2d/JWTDDkPSf7eWnguBd0mJP0ZsYbPA2Mfs/3FNcG5HSlHX+rRywZ5tKrBn3Q hAJGKyrHFZ485vmAv8Ms7GpqzO3boMlY7QZ4PQBwf1tNMdim X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDAwOCBTYWx0ZWRfXzrt3Uw4IThg2 6yOzxorjrnKFyQXXVeKtWEi9BGHc/9DGoZnoHPEMYIJXz3cyfT7nG6uXi5hBTgvV0JnW9RkezwW PvSOwvFQ3VOGyVL3YObkKQ0dqrWqsLDXaGZ+PhL3xMi4S2DZl/ZES6ZGdc+D1KYBTo7xhq+tRXO RnkbNztAGC0nlN3gOsXpmeGLBAoQapoQyK5PMM26ooN3TiDA5L1H6cW6pgwiwQmN/wf/4i4/Vc0 +aMccoIx4PGeS0COixler84b7qlZl6sMm3h6/iYyLkjd7/dGEyCiCVsjM4AHCjtYfTAd+M9wWxP Irq2qPsCySQd/405L4K0U+Vq/nUt8A94JN1cGu+Su+uDJDLwvnD6ELITkPopGr9y9b1m2ZU+Ckf 67tFs3o2AXSOHL9qlYZBQvi3cQVEJIdNBFYUOB6WO4IxQcqpTwsJwoC8E7jqoBMK/4z98vqQYM/ nLXOsIJneTz1OJ0HTsQ== X-Authority-Analysis: v=2.4 cv=bcdmkePB c=1 sm=1 tr=0 ts=69c094b9 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=PYMLbkgk4Fc5e-Gbr9wA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-ORIG-GUID: k33LlfFuj8S0Jv1xM6KPK7a77IJgDQ-7 X-Proofpoint-GUID: k33LlfFuj8S0Jv1xM6KPK7a77IJgDQ-7 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-22_07,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 clxscore=1015 spamscore=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603230008 On MSM8974 programming some of the RPM resources results in the "resource does not exist" messages from the firmware. This occurs even with the downstream bus driver, which happily ignores the errors. My assumption is that these resources existed in the earlier firmware revisions but were later switched to be programmed differently (for the later platforms corresponding nodes use qos.ap_owned, which prevents those resources from being programmed. In preparation for conversion of the MSM8974 driver (which doesn't have QoS code yet) to the main icc-rpm set of helpers, let the driver declare that those -ENXIO errors must be ignored (for now). Later, when the QoS programming is sorted out (and more interconnects are added to the DT), this quirk might be removed. Signed-off-by: Dmitry Baryshkov Reviewed-by: Brian Masney Reviewed-by: Konrad Dybcio --- drivers/interconnect/qcom/icc-rpm.c | 17 ++++++++++------- drivers/interconnect/qcom/icc-rpm.h | 3 +++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/drivers/interconnect/qcom/icc-rpm.c b/drivers/interconnect/qco= m/icc-rpm.c index aec2f84cd56f..23a1d116e79a 100644 --- a/drivers/interconnect/qcom/icc-rpm.c +++ b/drivers/interconnect/qcom/icc-rpm.c @@ -204,7 +204,7 @@ static int qcom_icc_qos_set(struct icc_node *node) } } =20 -static int qcom_icc_rpm_set(struct qcom_icc_node *qn, u64 *bw) +static int qcom_icc_rpm_set(struct qcom_icc_node *qn, u64 *bw, bool ignore= _enxio) { int ret, rpm_ctx =3D 0; u64 bw_bps; @@ -222,8 +222,9 @@ static int qcom_icc_rpm_set(struct qcom_icc_node *qn, u= 64 *bw) bw_bps); if (ret) { pr_err("qcom_icc_rpm_smd_send mas %d error %d\n", - qn->mas_rpm_id, ret); - return ret; + qn->mas_rpm_id, ret); + if (ret !=3D -ENXIO || !ignore_enxio) + return ret; } } =20 @@ -234,8 +235,9 @@ static int qcom_icc_rpm_set(struct qcom_icc_node *qn, u= 64 *bw) bw_bps); if (ret) { pr_err("qcom_icc_rpm_smd_send slv %d error %d\n", - qn->slv_rpm_id, ret); - return ret; + qn->slv_rpm_id, ret); + if (ret !=3D -ENXIO || !ignore_enxio) + return ret; } } } @@ -361,12 +363,12 @@ static int qcom_icc_set(struct icc_node *src, struct = icc_node *dst) active_rate =3D agg_clk_rate[QCOM_SMD_RPM_ACTIVE_STATE]; sleep_rate =3D agg_clk_rate[QCOM_SMD_RPM_SLEEP_STATE]; =20 - ret =3D qcom_icc_rpm_set(src_qn, src_qn->sum_avg); + ret =3D qcom_icc_rpm_set(src_qn, src_qn->sum_avg, qp->ignore_enxio); if (ret) return ret; =20 if (dst_qn) { - ret =3D qcom_icc_rpm_set(dst_qn, dst_qn->sum_avg); + ret =3D qcom_icc_rpm_set(dst_qn, dst_qn->sum_avg, qp->ignore_enxio); if (ret) return ret; } @@ -509,6 +511,7 @@ int qnoc_probe(struct platform_device *pdev) for (i =3D 0; i < cd_num; i++) qp->intf_clks[i].id =3D cds[i]; =20 + qp->ignore_enxio =3D desc->ignore_enxio; qp->keep_alive =3D desc->keep_alive; qp->type =3D desc->type; qp->qos_offset =3D desc->qos_offset; diff --git a/drivers/interconnect/qcom/icc-rpm.h b/drivers/interconnect/qco= m/icc-rpm.h index ad554c63967b..7d1cb2efa9ee 100644 --- a/drivers/interconnect/qcom/icc-rpm.h +++ b/drivers/interconnect/qcom/icc-rpm.h @@ -51,6 +51,7 @@ struct rpm_clk_resource { * @bus_clk: a pointer to a HLOS-owned bus clock * @intf_clks: a clk_bulk_data array of interface clocks * @keep_alive: whether to always keep a minimum vote on the bus clocks + * @ignore_enxio: whether to ignore ENXIO errors (for MSM8974) */ struct qcom_icc_provider { struct icc_provider provider; @@ -65,6 +66,7 @@ struct qcom_icc_provider { struct clk *bus_clk; struct clk_bulk_data *intf_clks; bool keep_alive; + bool ignore_enxio; }; =20 /** @@ -136,6 +138,7 @@ struct qcom_icc_desc { u16 ab_coeff; u16 ib_coeff; int (*get_bw)(struct icc_node *node, u32 *avg, u32 *peak); + bool ignore_enxio; }; =20 /* Valid for all bus types */ --=20 2.47.3