From nobody Wed Jun 10 08:24:57 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 8BB213D3CFD for ; Sat, 16 May 2026 12:34:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778934865; cv=none; b=rgCWbD6HxDPDSQK4iDHYRGdqfTywU/jt2nTBDEjOMfrED6Z16HxI+xUl/U7+wGAdEoJO7pRZezlNTAUMyjXfgWsoGUF2mv7YYGTaefa/KyCFBGw93lckhiOlEB/nBYcxKuEDVIg1LHi2EIQQoV2V30kuxu8JBL9njwPvg8SAiuM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778934865; c=relaxed/simple; bh=+ZLfc3QA+QBsQTaKp+HhzOK7CJ71bHrL5yqZzxvE/mg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Vo52l2HEww40+SEgfCen2Tg78xAM8U+m2K6zapV5gGi30M6L1E/BuRYBrmojJT+ZzvIEXc6IyrJ4MFNggHsNmBCiUIFJAtPyobwnMO7ccS6bd8wbH9alEfYL9z9ipNuHbhgnspaV02mk7Zx63djCKjICOWfnqK+8FbDbyLc2lPk= 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=NQ4pcXER; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=iMwe/L0x; arc=none smtp.client-ip=205.220.168.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="NQ4pcXER"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="iMwe/L0x" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64G4BmFU784820 for ; Sat, 16 May 2026 12:34:24 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= Jw0cReuBvl0p7xYPoFikX0tHkyYFstCR2xf8gOH3em0=; b=NQ4pcXERhzYssk+B N4JUNVLNprCKeNfSq4UTXr4H1qEwb8oqNeRCh9A23ITnl88Sqw4fcO7lUm1xAA1q 8wKj84FLXmx3c4lhs3pzVfa7YPDi6z6kPVxHJIzMFxwhDZW251JciNtJ/lJVynxL adFwLBUhtMvkcaRUpDtE8Leode5vvOr9ZJZSC+xAPhpGohX4jV4gbgfSWac0R5ew Hy2O6nnt0KFBXi3GbeN4ldbCTCzmgmlnImgEMGnVT5xzOnhXYO3Qodtle1URdZJX rD3H5ms2e31hRDwK8KzkpEHyKqC6QBIXae5J5gYocOeA3BN5HlYTRtUuZZH+kYLn Hkan8A== Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e6hbc8swx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 16 May 2026 12:34:23 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-c828ab3b033so918964a12.3 for ; Sat, 16 May 2026 05:34:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778934863; x=1779539663; 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=Jw0cReuBvl0p7xYPoFikX0tHkyYFstCR2xf8gOH3em0=; b=iMwe/L0xmq6ifxSsy/hQvNrXA0Joj+09+zwI1P08+Q3LGuq+HugUfsxsQ1ufKNfyRN uC5kZfgbfAH67EI2okHrNXyy61eFH0CdfGS0ziTUNoM0lxHpp3L2daMM0au4QQShRZRb n7DKkUNuT0IIBa/4XuL17BpwQRnZ8VHNNseiOYXJSl82WSkCkYRp6ZrpOtw648qXuUMk QC2o00Ksn1bjMDmfH+RHQSAmmu9kcNfiMMprCQ3JyluVJ7vmYAXac2jPwM1Sfd6nWDdW wDwwFHITQ7eLEdGLFyJdw7DZl45nOZfpuzjzGwzs8fdc28HJ+Q5rcn8B48uQWdqqz2hs uXuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778934863; x=1779539663; 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=Jw0cReuBvl0p7xYPoFikX0tHkyYFstCR2xf8gOH3em0=; b=MaHw1EoDS2iZUxUd/ubiIDBaiMlEykFu4wrPpHrOMbPcCwbv/di8rnSF+Mg6yzl+Uf 8oLjD1ZfD74tR33+GuAn1V3zwRC/aRjpWqWBOWQj1Hpcj3hk6wT8Pohsyi6kEmEx0hLB 1yfJ7DC+/3EULlbq0ncwEUs+KE5dZE/7pG9c6fKenku2sZ9xD3hXedUtuvOEe2toUbii gwcfbGQcbt58aDsCOqLAcWyZQCp7ZsOgeOLTB95DcPm4zmJUyH8o0o07QB5m/Uek3ASn c+U8t2P1FVmrBnFUzaKFz+kuq6EAd4bl0JBW9ru3Pdd9QA7UbI3KYvAy2hkT9PxqQgHm 8fTA== X-Forwarded-Encrypted: i=1; AFNElJ9aCe/vBtfCDaw5ysm5f3JCyttm1IzrvFeWE+FRRumNJLpMfOaPE60uJQAlwR8Z7Fo8w+pK+6nexNqU9Jk=@vger.kernel.org X-Gm-Message-State: AOJu0YyU0JKrlRrNjZTIFj5tUkso+A4PQNQkaaDHC/ys1WW1hCt22jfv hRns8W6/ofg9qI5SGMopFnfgHDytOQS5se4k3RW+RnspDxMSzYx3/Se6wy6LGuxWLvNIYWoLW4A KfkMpcn9I+c9akpAObJP9/BT6zHxRsrqZKnQBUk/GZOxluOTRa89Asm2viOUeOCi2gUFlWW0BDP M= X-Gm-Gg: Acq92OH5X5Bs8B6LrhswI4RlovxOf+jtP9cysGU0NRz8ZqdTCqLSxvTTI6nGLLxpVxC kqtiuuaUhAUqPudBisH7vsXsFqi+25xeNFkuAsovHxYacTrAL9q1OHWRBsJjus8OsFrxchvCyEy LzEJHutA0o32XnquCmDwLs4hyZdz17byfis3FxCoN0L/8NoHcZ0JFDRvN9ml1ZV2CDGC8gZahtZ T6qCq2j9nkXpRExRmsJfLk6R/5DiNTNlhjYoBWXcX98bpLBVmVwiOxC6mC2+P8k374t9gkXFyOV 0MSSAA2hba60wKUwTxXtKwen9s9ql9Zy+scOxqw14ocKNLRy0YJ9aY2vHq3lxoC1GyL/HojdL7e wfNGQml2mASQk15JAF35+CRRTc9ec0GV9xeveUJ/0durKxYpL1Vac X-Received: by 2002:a05:6a00:330c:b0:83f:9c6:9c with SMTP id d2e1a72fcca58-83f33c32d67mr8367654b3a.10.1778934863043; Sat, 16 May 2026 05:34:23 -0700 (PDT) X-Received: by 2002:a05:6a00:330c:b0:83f:9c6:9c with SMTP id d2e1a72fcca58-83f33c32d67mr8367629b3a.10.1778934862594; Sat, 16 May 2026 05:34:22 -0700 (PDT) Received: from hu-bibekkum-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f19f7cc9asm11405217b3a.53.2026.05.16.05.34.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 May 2026 05:34:22 -0700 (PDT) From: Bibek Kumar Patro Date: Sat, 16 May 2026 18:04:03 +0530 Subject: [PATCH 1/2] dt-bindings: iommu: arm,smmu: Document optional interconnects property 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: <20260516-smmu_interconnect_addition-v1-1-f889d933f5c1@oss.qualcomm.com> References: <20260516-smmu_interconnect_addition-v1-0-f889d933f5c1@oss.qualcomm.com> In-Reply-To: <20260516-smmu_interconnect_addition-v1-0-f889d933f5c1@oss.qualcomm.com> To: Will Deacon , Robin Murphy , Joerg Roedel , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Bibek Kumar Patro X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778934854; l=1523; i=bibek.patro@oss.qualcomm.com; s=20260408; h=from:subject:message-id; bh=+ZLfc3QA+QBsQTaKp+HhzOK7CJ71bHrL5yqZzxvE/mg=; b=cApZ3bZQJ/56u9eFXAcmzjTKWoxsGgJHT9Bi/cl0ETuWX9o9MT14b3Fo6lOx3Pt0yomP7WFkP q9xu2/KDLtlAEnmD60hjWV+2pIhb9TEKp1TLdexxsINRIILaVNMoHF6 X-Developer-Key: i=bibek.patro@oss.qualcomm.com; a=ed25519; pk=V4oTa+TgRi7dib76fc92V+rslyRCAKbK8D4b2RVsMbc= X-Authority-Analysis: v=2.4 cv=cuSrVV4i c=1 sm=1 tr=0 ts=6a08644f cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=h2u_PYqE-o0iKWOXq5gA:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE2MDEyMyBTYWx0ZWRfX5KpJK0OD8PRF CicKPIifLMGiJN+sbhNoxtjsGcRjr0LqGAxstlK4066hJHTUYFttlq0UZwkD6fi2kcf03lmtM5C hiMkcF4qA9yMob4Z44dVHTblEZ53yjrRm6nnfqZ7HgpGAisWBYcI7aJnxU17NolV2sJS1ej+uiJ QScA+680J9J4Ce2VfSQwmPmLM0cLOse7+q5XtbfyKMncn/N7zCKL+M3FgIrAmjmnac0cM+plXCw 1bGYuQvWCEBLwCjTpTEZ4t/JFmzj2SnvgnPmgXJRdclBqqoaDGdTnhxI80MdXY23WnUZRdmh6oA wo+dxP71QGdtQtziTbR7T72sPXXMUeYrVay/MWfRUDOmaUQs75QrhuhttKLcSZJMcxA4B/qFpuB MXr8eFtSCcffJdAarPpkBxHXjvR9g6D8MA4dr/72mNCpifQyg2jYKmh4TOvV49nObpYVj7HeXAZ 0mV4f9/1ZZGEo3+8a3g== X-Proofpoint-GUID: cuXdKiN19QzKsF0F68AJtxe0rkTyjTcq X-Proofpoint-ORIG-GUID: cuXdKiN19QzKsF0F68AJtxe0rkTyjTcq 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-05-16_01,2026-05-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 impostorscore=0 bulkscore=0 adultscore=0 spamscore=0 clxscore=1015 suspectscore=0 phishscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605160123 Some SoC implementations require a bandwidth vote on an interconnect path before the SMMU register space is accessible. Add the optional 'interconnects' property to the binding to allow platform DT nodes to describe this path. The arm-smmu driver uses these properties to vote for bandwidth before accessing any SMMU registers and releases the vote on runtime suspend. Signed-off-by: Bibek Kumar Patro --- Documentation/devicetree/bindings/iommu/arm,smmu.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml b/Docume= ntation/devicetree/bindings/iommu/arm,smmu.yaml index 06fb5c8e7547cb7a92823adc2772b94f747376a6..5cbf944f2d3e178b3723d4dbaa1= 9ee0d33446979 100644 --- a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml +++ b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml @@ -243,6 +243,15 @@ properties: minItems: 1 maxItems: 3 =20 + interconnects: + maxItems: 1 + description: + Optional interconnect path to the SMMU register space. On some SoCs + the SMMU registers are only accessible after a bandwidth vote has be= en + placed on the interconnect fabric. When present the driver votes for + bandwidth on this path before accessing any SMMU registers and relea= ses + the vote on runtime suspend. + nvidia,memory-controller: description: | A phandle to the memory controller on NVIDIA Tegra186 and later SoCs. --=20 2.34.1 From nobody Wed Jun 10 08:24:57 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 761923E1CF5 for ; Sat, 16 May 2026 12:34:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778934869; cv=none; b=ITZQ9bGi0XKSlQ01A3iVRzErB+wzrQLzSqspVSNvYe+sAeorDBSWziYuIzBbEhbYgNQGyT1QcU1JNZ6WEzrwEswiyTDyE4lDGhAoF+t4dFDCZzkPnuNjsN8myZdF1bQ4D23YkhxPSCGIDA0FIy6s3aFMBhQDl7ocTXU2FK+uays= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778934869; c=relaxed/simple; bh=TpMlPRysp3w2m+ZFi+sTeXE10yR8wAdZPz/OYCwHJZo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YQ2nPzk2o+PcIZH03Mquy5kbJ4nR4RYlFShdpzQAoD9NFx9+6H0bJPeLRGM7JeN4p2A+lUEs/sgf/daRc09fXioivuqPenqDCDeao1rNYlzIBcNOQWBBG9gxcKWjhHfJMqHzCxny4M4RTliiCj0fQfOuje8ci5esRi8m3DShVyE= 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=THkNH11J; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=XxhON8Do; arc=none smtp.client-ip=205.220.168.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="THkNH11J"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="XxhON8Do" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64G3f04V777387 for ; Sat, 16 May 2026 12:34:28 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= 0tMlahfmEth5dlLQRNO21reZ980LZhICbYSjGZLVRpM=; b=THkNH11JahRpcOQh cgkOrfRZ1nJ+n25nkWnaibToFf0oA+EAifIhnxO6Z3clJmVte+16rNYY6B71rEDk rEalt+HaLjbzvJsdOVg+KWNxw4q2QPa/fd8SjbrTOaotR/9m5mb7IoQrKaPpUuao otv0eTHg4hCexmnDuuQxTmOYPWaHEQ4Oj07yrRePtHwAe+4GMnQjzePEFnqB8IqB jKoYGHAMs/RlOwawWTZg2gyAO2ftmRS+PB+VR+U6gXuAqV1+bey0xqgE3t/du8Zo W3s2QNkmbZyXt3qiJ1T2vdqYJ+nd+FodzmhLo741Izch9T7opqkxdh8SJSHYuO4Y FTSJQg== Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e6gvyrv44-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 16 May 2026 12:34:27 +0000 (GMT) Received: by mail-pf1-f200.google.com with SMTP id d2e1a72fcca58-82fd55bf6cdso494290b3a.3 for ; Sat, 16 May 2026 05:34:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778934867; x=1779539667; 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=0tMlahfmEth5dlLQRNO21reZ980LZhICbYSjGZLVRpM=; b=XxhON8DoeYgL+dutXlJbNOmGG7/vnV/pi4ESVQBy+ol5OhocDY0Ke9aFBqEJ4JKZrE bApRQzPlNvqGlxObCnDrvvRfSCKNdWSVjBzJDJM6raSkgvMxlJY/Xk3G4jZ+GykXoZn5 QIJlYhWRaKUt3nfiVXmg52kVLwpgNjcK1JhFfmaVHfY6yEHb8SVJyR17wqytATr1IhXf 33yromQWB3ubOMxH/clwXDvQRMddTqxxVUboZ9MZz5qIxkZpShYDjz+YZhQ3tkJPzVpp z9L668AvjcheYD4mu1ZCJuCLYlCWhTT2+meo6kskVKlJIqhsVT3PxgLBG/lb1jQLv9qd FjCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778934867; x=1779539667; 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=0tMlahfmEth5dlLQRNO21reZ980LZhICbYSjGZLVRpM=; b=ep7P4KYRe56fjNOmeXAekPnyHtTJ7SpYvj19+tTyIclB+UmT8vpK6BlMqf67ZoahBy Me1WQxJAgBAU8xeSMOTBeYEhfRZP9pS8TZSbThZJ82FUQqYnuG2dYAnVHPyeInW33KqJ E7vzvztAiczlPix8OkLS2NyFyj5fn8ZB+8n8epHDp0BOeasOvV8GyR/0B6Lhj/75RcUP 4ARpfE+oczmjKBufvb62T9t0oJcl2iR4uiLMMD3I5Rasl+zI9YGImzmTgniD4LumdclH +E7fk1aCrLOOeSaDSI+R6Sh2PijcW6sZBLMmckuN6BZuJ0tgsobNaJk5rO+n6SfIq/8C GYlg== X-Forwarded-Encrypted: i=1; AFNElJ8GQaJkPTd/SawSeWfUXQmyZ0GMcR0w7wKC0nm4g0tabw6mlvowG2BzR7vU/M+e6baYkQsMqvgVZCIE1w8=@vger.kernel.org X-Gm-Message-State: AOJu0YzCV3nwg8rlZ015lDzMERql0A5MvUKhmMGsCmrBJZgNvEGcUsps bLNUGM5fluvfJQ+yj3HuSvCxnJJKrzYUWhFJBuNhm9n+tH19O6aaQ9eKMtIMsfWDUQyVhZaxkDL Umu1JAsxl3gLkzp4zbXfEcckyVoiiDgi0toWB+Qkp4XcSamdGNxB5I+80u9D7WrQcJ+U= X-Gm-Gg: Acq92OE2fs8XU3q55N0PCS5q1wyhSxexqWaR+cYx4Ql4kOIRzhKi/n1DWoQZTWoTFas UebYqXuJ7XJ/JhOLrMk54WfgdufsWqcI2BQFNy61kUPsbiFaBcvNR8/nda0nMimUuNo7M19qmNw WDJd6POurpkF34A0ECZO2M/kFV8OrXqjUgfsmkrum6JpNZ/TPU1sVEFZunBsgQgyxmX8uLnYlNa DX6GOT9WhRvcLsnCRHXMZzOv8rRN8PNdVM7w9IrVwo1J+YCDZ8QKIcrhHsFaM0FSbcV+4tYgBNN w2kX/eCwlf3d0rQ9E44mAEfre8N3+fQNHp4Ci+Bk7WFmmL/tWSwYW/hbSyAlhdJ+YlSi7WHNFQN Ikr8syL6FUvfGoH0Esy5BtDHywq0R1YfgJSyy2UV5W4RO42zuyHoW X-Received: by 2002:a05:6a00:950f:b0:83e:6fde:54d3 with SMTP id d2e1a72fcca58-83f33f3d3f0mr7854677b3a.50.1778934866929; Sat, 16 May 2026 05:34:26 -0700 (PDT) X-Received: by 2002:a05:6a00:950f:b0:83e:6fde:54d3 with SMTP id d2e1a72fcca58-83f33f3d3f0mr7854653b3a.50.1778934866433; Sat, 16 May 2026 05:34:26 -0700 (PDT) Received: from hu-bibekkum-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f19f7cc9asm11405217b3a.53.2026.05.16.05.34.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 May 2026 05:34:26 -0700 (PDT) From: Bibek Kumar Patro Date: Sat, 16 May 2026 18:04:04 +0530 Subject: [PATCH 2/2] iommu/arm-smmu: Add interconnect bandwidth voting support 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: <20260516-smmu_interconnect_addition-v1-2-f889d933f5c1@oss.qualcomm.com> References: <20260516-smmu_interconnect_addition-v1-0-f889d933f5c1@oss.qualcomm.com> In-Reply-To: <20260516-smmu_interconnect_addition-v1-0-f889d933f5c1@oss.qualcomm.com> To: Will Deacon , Robin Murphy , Joerg Roedel , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Bibek Kumar Patro X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778934854; l=5165; i=bibek.patro@oss.qualcomm.com; s=20260408; h=from:subject:message-id; bh=TpMlPRysp3w2m+ZFi+sTeXE10yR8wAdZPz/OYCwHJZo=; b=yVvi3RjY40p22B42QDBaFIBVse8JGLs/A7douwNNONNIVhxQTgPq6cRhjnRT3p7MvcZ1o11+A IheV8q200YLDw6+xJEkE07G/1km2pLjSR1EpkJSR7EqLt4cgHI3mTcP X-Developer-Key: i=bibek.patro@oss.qualcomm.com; a=ed25519; pk=V4oTa+TgRi7dib76fc92V+rslyRCAKbK8D4b2RVsMbc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE2MDEyMyBTYWx0ZWRfX47henBCydQib 0VzaboyL6iJtLRRfJ0w4qX+01ZAEZBdNrW6Z6cC3q2yfdUWVVO/9xngf14/qciGz1aVybjvfEEv jsQSF1klaHjcgoi+GkDY0QklDZ3qtxVxKakJj1vYobgGgIXLUvCXFUZ16slTLNFv37RcrIVekxz I2wFnfwx37IPr2xPMmnL4QME23rfXU/TPKy+GxGQP5uQnFRRh39skD70UhT/kmQARstf71AXlpp MggtObZ512sNRXw1n/uhFablFfh/1L50BrsQ3IQc/7sNjX7Gfiv/KfcETp2TF9RiSfg/gLkkjuV z+/tJ/9aAdeNDmc7oRPaVLUoO+BLUzFo8tIyraiaqYPs7b4o9+CG19Uxf+FmT7y/g1z1LbA16/F 59eqTI215EeOtLzK6jJN03b1X0o4dJNgYcf9qDudDgXE4ajdm5/j4YwFVxKfrq6QK0iH0dh5rov MkSWpSMw0D/kDtqk5aQ== X-Proofpoint-ORIG-GUID: aGEWPjjEex58aaHte5ypWexjxvy2678x X-Proofpoint-GUID: aGEWPjjEex58aaHte5ypWexjxvy2678x X-Authority-Analysis: v=2.4 cv=X5Ni7mTe c=1 sm=1 tr=0 ts=6a086453 cx=c_pps a=mDZGXZTwRPZaeRUbqKGCBw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=taUV0mOn9u7JAoyayg0A:9 a=QEXdDO2ut3YA:10 a=zc0IvFSfCIW2DFIPzwfm:22 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-05-16_01,2026-05-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 adultscore=0 spamscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605160123 On some SoCs the SMMU registers require an active interconnect bandwidth vote to be accessible. While other clients typically satisfy this requirement implicitly, certain corner cases (e.g. during sleep/wakeup transitions) can leave the SMMU without a vote, causing intermittent register access failures. Add support for an optional interconnect path to the arm-smmu driver and vote for bandwidth while the SMMU is active. The path is acquired from DT if present and ignored otherwise. The bandwidth vote is enabled before accessing SMMU registers during probe and runtime resume, and released during runtime suspend and on error paths. Generally, from an architectural perspective, GEM_NOC and DDR are expected to have an active vote whenever the adreno_smmu block is powered on. In most common use cases, this requirement is implicitly satisfied because other GPU-related clients (for example, the GMU device) already hold a GEM_NOC vote when adreno_smmu is enabled. However, there are certain corner cases, such as during sleep/wakeup transitions, where the GEM_NOC vote can be removed before adreno_smmu is powered down. If adreno_smmu is then accessed while the interconnect vote is missing, it can lead to the observed failures. Because of the precise ordering involved, this scenario is difficult to reproduce consistently. (also GDSC is involved in adreno usecases can have an independent vote) Signed-off-by: Bibek Kumar Patro --- drivers/iommu/arm/arm-smmu/arm-smmu.c | 53 +++++++++++++++++++++++++++++++= +++- drivers/iommu/arm/arm-smmu/arm-smmu.h | 2 ++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu.c b/drivers/iommu/arm/arm-= smmu/arm-smmu.c index 0bd21d206eb3e75c3b9fb1364cdc92e82c5aa499..aedf5edf8f9b2b75f80a61af667= 27b52a5b3ad49 100644 --- a/drivers/iommu/arm/arm-smmu/arm-smmu.c +++ b/drivers/iommu/arm/arm-smmu/arm-smmu.c @@ -53,6 +53,11 @@ #define MSI_IOVA_BASE 0x8000000 #define MSI_IOVA_LENGTH 0x100000 =20 +/* Interconnect bandwidth vote values for the SMMU register access path */ +#define ARM_SMMU_ICC_AVG_BW 0 +#define ARM_SMMU_ICC_PEAK_BW_HIGH 1000 +#define ARM_SMMU_ICC_PEAK_BW_LOW 0 + static int force_stage; module_param(force_stage, int, S_IRUGO); MODULE_PARM_DESC(force_stage, @@ -86,6 +91,36 @@ static inline void arm_smmu_rpm_put(struct arm_smmu_devi= ce *smmu) } } =20 +static int arm_smmu_icc_get(struct arm_smmu_device *smmu) +{ + smmu->icc_path =3D devm_of_icc_get(smmu->dev, NULL); + if (IS_ERR(smmu->icc_path)) { + int err =3D PTR_ERR(smmu->icc_path); + + if (err =3D=3D -ENODATA) { + smmu->icc_path =3D NULL; + return 0; + } + return dev_err_probe(smmu->dev, err, + "failed to get interconnect path\n"); + } + return 0; +} + +static void arm_smmu_icc_enable(struct arm_smmu_device *smmu) +{ + if (smmu->icc_path) + WARN_ON(icc_set_bw(smmu->icc_path, ARM_SMMU_ICC_AVG_BW, + ARM_SMMU_ICC_PEAK_BW_HIGH)); +} + +static void arm_smmu_icc_disable(struct arm_smmu_device *smmu) +{ + if (smmu->icc_path) + WARN_ON(icc_set_bw(smmu->icc_path, ARM_SMMU_ICC_AVG_BW, + ARM_SMMU_ICC_PEAK_BW_LOW)); +} + static void arm_smmu_rpm_use_autosuspend(struct arm_smmu_device *smmu) { /* @@ -2189,6 +2224,17 @@ static int arm_smmu_device_probe(struct platform_dev= ice *pdev) if (err) return err; =20 + /* + * Acquire and vote the interconnect path before accessing any SMMU + * registers (including ARM_SMMU_GR0_ID0 in arm_smmu_device_cfg_probe). + */ + err =3D arm_smmu_icc_get(smmu); + if (err) { + clk_bulk_disable_unprepare(smmu->num_clks, smmu->clks); + return err; + } + arm_smmu_icc_enable(smmu); + err =3D arm_smmu_device_cfg_probe(smmu); if (err) return err; @@ -2294,9 +2340,13 @@ static int __maybe_unused arm_smmu_runtime_resume(st= ruct device *dev) struct arm_smmu_device *smmu =3D dev_get_drvdata(dev); int ret; =20 + arm_smmu_icc_enable(smmu); + ret =3D clk_bulk_enable(smmu->num_clks, smmu->clks); - if (ret) + if (ret) { + arm_smmu_icc_disable(smmu); return ret; + } =20 arm_smmu_device_reset(smmu); =20 @@ -2308,6 +2358,7 @@ static int __maybe_unused arm_smmu_runtime_suspend(st= ruct device *dev) struct arm_smmu_device *smmu =3D dev_get_drvdata(dev); =20 clk_bulk_disable(smmu->num_clks, smmu->clks); + arm_smmu_icc_disable(smmu); =20 return 0; } diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu.h b/drivers/iommu/arm/arm-= smmu/arm-smmu.h index 26d2e33cd328b8278888585fc07a31485d9397e2..c00606a416b2f4bb44a35e5d67f= 6ef801df68e1c 100644 --- a/drivers/iommu/arm/arm-smmu/arm-smmu.h +++ b/drivers/iommu/arm/arm-smmu/arm-smmu.h @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -335,6 +336,7 @@ struct arm_smmu_device { int num_clks; unsigned int *irqs; struct clk_bulk_data *clks; + struct icc_path *icc_path; =20 spinlock_t global_sync_lock; =20 --=20 2.34.1