From patchwork Mon Feb 10 19:39:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alyssa Rosenzweig X-Patchwork-Id: 13969070 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 82CBEC0219E for ; Mon, 10 Feb 2025 19:43:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=SPT9rgj0rLpckhACaCzlKgGeeCb7MV3HiAZFcPnjPCo=; b=4RghyUgpio3JFy5c5xlvC+8eQQ 1yHLt/nT1ree7QNkGd01X5H74GZAT6OO7CJAVqS0N6LyszHHea/VmmeRan228F6RcrSzgKrWliY+j uZajReDDiYF3j98fUdjXq5ijLHH4m6pGRZfxOXB7+yXPTkUmAiTwU0bTIFefEKcD3HZ4Df3k76De0 ywqz/CuqZhVLisEvDwBGsGIqZwQlzzFBvdietFrOsx5EAGLWF+N0RiL9x4P921BLZqIefbFyXIU51 WyXmEBMg2kAkgcTThyGZC2hxvUUseBVevMwyxqqsqBsNrvYgIS6oMqiEh01/cWEltrUUoG32Ok9lP ZDM0mN6A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thZgb-00000001Bnu-2Ds8; Mon, 10 Feb 2025 19:43:17 +0000 Received: from out-181.mta0.migadu.com ([2001:41d0:1004:224b::b5]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thZdn-00000001API-1dSo for linux-arm-kernel@lists.infradead.org; Mon, 10 Feb 2025 19:40:25 +0000 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rosenzweig.io; s=key1; t=1739216421; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SPT9rgj0rLpckhACaCzlKgGeeCb7MV3HiAZFcPnjPCo=; b=tllRQVac7aKjW2rAIx9zhjYgi3keo7pIMJVAyv9DPj9OLvDEc2qwDn/EGjJy7Cp68AeeVG meyL9UWkzu0Tl6WW1e8ETEYsIeY6gmt+aBvfwfjak5T1P2UPcZl/fkj+HoXdoo4eSK0aet kirFTxP+VoV8bo18i7Tg17IgrNpSenV4ODzdY2iNO3iwvvAFNjwCjqzVNuFri9pDQIqS+R UyZHSTm5//LLl7MAR7rtGyfvjDpRZ1tSlMrXPSN6gzU0VLrBU9VeqDDiDElEZja/Q8M1Lu /Q19d3lYFID7XJBT5atjBpYL6cJ07UUV6xcX16JP+Bvec4EMlIONvOCGvHj6qQ== From: Alyssa Rosenzweig Date: Mon, 10 Feb 2025 14:39:53 -0500 Subject: [PATCH 1/5] iommu/dart: Track if the DART is locked MIME-Version: 1.0 Message-Id: <20250210-locked-dart-v1-1-5d97fe247f35@rosenzweig.io> References: <20250210-locked-dart-v1-0-5d97fe247f35@rosenzweig.io> In-Reply-To: <20250210-locked-dart-v1-0-5d97fe247f35@rosenzweig.io> To: Sven Peter , Janne Grunau , Joerg Roedel , Will Deacon , Robin Murphy Cc: asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Alyssa Rosenzweig X-Developer-Signature: v=1; a=openpgp-sha256; l=2311; i=alyssa@rosenzweig.io; h=from:subject:message-id; bh=DPdvKhQ3kbgTp3Fn2VyCCGlV/g2DDrlKViyHLbfPM1o=; b=kA0DAAgB/v5QWgr1WA0ByyZiAGeqVhmhMAEDsg2LrpEFYFtHpvoi59s/jPPOHIcYInI9JT71g IkCMwQAAQgAHRYhBENe4JuwrwDQHar2OP7+UFoK9VgNBQJnqlYZAAoJEP7+UFoK9VgNwJMQAKJm FqkCYR0CPS075sM8jAaNwH61RG7jWysqRhdrd9RWnY90Ni9DTozTZTBpYHGqjlvU39F0nC70WPU LfTQcqV8PiymZ30FpxyPpRynmJwrw6FjDhQNI3xJy9KLEjy0GqoNwwjYVFUdftXoPetPjGo2bv/ L0mY2vXCS0aPvoPOA9Y2iJOEjpAiHlC+XYAkZaDzbsDTIiXHPj3NzLEi3y/d13fxWw4YGX1uHHd 0mYyd0ymPgb8An9pwmL2Q75NgVJdPRYKdY/ZhlMbUfd6h/EYRleKkZNW13Lpk2M8Nnxdc852dPD 0HJdmn0h1UpRjuIkY32hA6gzmFXj77jpcOsqRkEmVDS5nCvrGv3aL5J3vxUjqbeXoENGeSOtZQT vx5xVm0J+ueuwPZRqZxK0yUkP3sqU8Nvwa5znSSOzDVAwQ4aLqpYHXYrChHbn6MVWYd8yC7vR6j xZbVGQqU4FUiDHJEr+HMvyOb9TlvSFuWuFtXBnH49YNxFtDqNT8eZZA/4ADIDMUGWBlIbkp/1kl trouAk/ftwx9TuM5CxccxVng79ULPOfbfOPMonaWkjf9TAEU6pq0SFh/lI1Vd6iRLVyuJBh9BXQ 1VrnET6L1lVXVO7CW0CSiYLWFIcGylH4C4fcDLgL5AZqTApbaK7pkdVmrUrzfdOAmgPYxAnDiJd KwjO5 X-Developer-Key: i=alyssa@rosenzweig.io; a=openpgp; fpr=435EE09BB0AF00D01DAAF638FEFE505A0AF5580D X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250210_114023_580358_D23F9EE0 X-CRM114-Status: GOOD ( 12.03 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Some DARTs are locked at boot-time. That means they are already configured and we cannot change their configuration, which requires special handling. Locked DARTs are identified in the configuration register. Check this bit when probing and save the result so we can handle accordingly. Signed-off-by: Alyssa Rosenzweig --- drivers/iommu/apple-dart.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/apple-dart.c b/drivers/iommu/apple-dart.c index 95ba3caeb40177901086076416874b9905a1f40a..460cf96bc8001e051916f356d5d175b35e36c608 100644 --- a/drivers/iommu/apple-dart.c +++ b/drivers/iommu/apple-dart.c @@ -197,6 +197,7 @@ struct apple_dart_hw { * @lock: lock for hardware operations involving this dart * @pgsize: pagesize supported by this DART * @supports_bypass: indicates if this DART supports bypass mode + * @locked: indicates if this DART is locked * @sid2group: maps stream ids to iommu_groups * @iommu: iommu core device */ @@ -217,6 +218,7 @@ struct apple_dart { u32 pgsize; u32 num_streams; u32 supports_bypass : 1; + u32 locked : 1; struct iommu_group *sid2group[DART_MAX_STREAMS]; struct iommu_device iommu; @@ -1076,6 +1078,11 @@ static irqreturn_t apple_dart_t8110_irq(int irq, void *dev) return IRQ_HANDLED; } +static bool apple_dart_is_locked(struct apple_dart *dart) +{ + return !!(readl(dart->regs + dart->hw->lock) & dart->hw->lock_bit); +} + static int apple_dart_probe(struct platform_device *pdev) { int ret; @@ -1143,6 +1150,7 @@ static int apple_dart_probe(struct platform_device *pdev) goto err_clk_disable; } + dart->locked = apple_dart_is_locked(dart); ret = apple_dart_hw_reset(dart); if (ret) goto err_clk_disable; @@ -1165,9 +1173,9 @@ static int apple_dart_probe(struct platform_device *pdev) dev_info( &pdev->dev, - "DART [pagesize %x, %d streams, bypass support: %d, bypass forced: %d] initialized\n", + "DART [pagesize %x, %d streams, bypass support: %d, bypass forced: %d, locked: %d] initialized\n", dart->pgsize, dart->num_streams, dart->supports_bypass, - dart->pgsize > PAGE_SIZE); + dart->pgsize > PAGE_SIZE, dart->locked); return 0; err_sysfs_remove: From patchwork Mon Feb 10 19:39:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alyssa Rosenzweig X-Patchwork-Id: 13969071 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D454AC02198 for ; Mon, 10 Feb 2025 19:44:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Kz0nyJ7WvRmnQlm0RtDzsCt8ytIfHB7c5nD03lfkpQo=; b=Cm9eyGkO8dXq9Ot+mLoeOdxY/K jMffVsQ55gj/1BNsOnkKlttiCGchxSk2q2YyvE9BVOeYUuK42vJHlHYySJ8QmWUe89rn9uetUqcAN oJhORTA4MhfUUK0vWxCrN6piCjzs0Kfs3/YU936D9xrvVsE6x3gFX/JGAbLin0pO4/U9sKefPIrDC F4picK3ossj/LbaathwEXKzUct1kxbIJL2ScSEsop18sbouRsUOg0kV99mf8hEN0M91I2LjSxMu91 XmgJBOmhHvQNSo3PhOBTMrl8993CrSn/PWoRHD4OXOQVqqYqdd7dE53mWRGxhww044a0aE18RxIvW 8jPfafbg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thZhy-00000001CEF-0pe6; Mon, 10 Feb 2025 19:44:42 +0000 Received: from out-170.mta0.migadu.com ([2001:41d0:1004:224b::aa]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thZdp-00000001AQ0-2BnA for linux-arm-kernel@lists.infradead.org; Mon, 10 Feb 2025 19:40:26 +0000 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rosenzweig.io; s=key1; t=1739216423; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Kz0nyJ7WvRmnQlm0RtDzsCt8ytIfHB7c5nD03lfkpQo=; b=Yrdlg6Ustd49sldQRowOZXLEs3setf3ln0voRaH2wpyzcHRMKugrZJJR6cG/nvo7YfRo82 F2SNQJsefmje6IDldZouEfGy/ZFbQcNfmintFJKrfTWdFWeQEkgprAHvIaawXX3R08LX0d myH2eEG2yOT0PdpYfdRP3uMeBRxTdFw7whaQJSTJZw7AisxI/PNMYD/Iv79/Uy3Db7BnHb lSh2GprWdYqrFj/+ib4R2B4TEFkQh8uDGYOIl7pAkdNZ6CDIG8VMAij9UeoIeidRQG+I1M jCcj+EIblzby3we1eq2bs58/ML1A5CKEdIttLYa+t9mwmIrgzXRWPlkujijycw== From: Alyssa Rosenzweig Date: Mon, 10 Feb 2025 14:39:54 -0500 Subject: [PATCH 2/5] iommu/dart: Skip reset for locked DARTs MIME-Version: 1.0 Message-Id: <20250210-locked-dart-v1-2-5d97fe247f35@rosenzweig.io> References: <20250210-locked-dart-v1-0-5d97fe247f35@rosenzweig.io> In-Reply-To: <20250210-locked-dart-v1-0-5d97fe247f35@rosenzweig.io> To: Sven Peter , Janne Grunau , Joerg Roedel , Will Deacon , Robin Murphy Cc: asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Alyssa Rosenzweig , Hector Martin X-Developer-Signature: v=1; a=openpgp-sha256; l=2327; i=alyssa@rosenzweig.io; h=from:subject:message-id; bh=aaTDpX6ibfDGaC/RfCGv1TxYljIk7EiF/i2ba6hh4K4=; b=owEBbQKS/ZANAwAIAf7+UFoK9VgNAcsmYgBnqlYZ4XpVKED3AuP44JWAGY5N9sUenu+SB6n/R MuO7oEpJq6JAjMEAAEIAB0WIQRDXuCbsK8A0B2q9jj+/lBaCvVYDQUCZ6pWGQAKCRD+/lBaCvVY DVZtEACF0ixVnQrS6o/8V7HVns7hmOv7asVpK1AKZstPf+b99/Ojt6HaJkBlZfR5mQXZVpPwF+8 Cq9lJpfykH/tBMISpG2Uhr6qkBDcDe8AQALK/179b3VCOydowJ2njiRYTUqe7jTaUFs6GrEuI4M 3/kee6DR+rA7s0SqTE9huwjyAo/tIFQKuQUf2ha1o5LeBQ7Hmkjt0OjW9qCiaTdrk/xawtzCjtp K9Ee2y4/Ev90qmvm/0cpj4QcuCvSKehKn930a7biQu83n0mDSdWBXqeigbHDzRxPwhsee+fw8aa /LxMi5bw/CmyUf1orROoFQG3NfPQT+5lnO7hu/gPfDXRvbNGlR+tNY3qWosjT10wssd+2sq9lp/ qCIP2+XYnOA0M5bFNwDKkcTvjm2Uy+AV1MheCb+LXXX35BCKlMPHc7BeeMNhtIBUW0u1UeWpbo7 6opowGblNJW0OdQY8TidlegtFq5uSyDlXuWYYWYdBElBvpte0CqinXEVwgiGvHDTHXf61aYrXm6 pTdSCj3YS8/IcDNVRqsEZYUqKhMaBmcrLLBWSKK7RX01BeMdT3rTD7AzkErkiv5pxM1CSyRLcLQ qar7Wl3CUPorSW2uVQMzGfSqGKQGjtcHRMkjYIgJaz8vk3jb7oy6Sku6S/awoFpvhLYU4xV+UBt 2eAYA9IwaIuqDBQ== X-Developer-Key: i=alyssa@rosenzweig.io; a=openpgp; fpr=435EE09BB0AF00D01DAAF638FEFE505A0AF5580D X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250210_114025_717397_6B7A4152 X-CRM114-Status: GOOD ( 13.51 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Locked DARTs cannot be reconfigured, therefore the reset/restore procedure can't work and should not be needed. Skip it, allowing locked DARTs to probe. Co-developed-by: Hector Martin Signed-off-by: Hector Martin Signed-off-by: Alyssa Rosenzweig --- drivers/iommu/apple-dart.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/iommu/apple-dart.c b/drivers/iommu/apple-dart.c index 460cf96bc8001e051916f356d5d175b35e36c608..9c74a95eb7e819e94ab2fb47ed0d411a1eba8bf7 100644 --- a/drivers/iommu/apple-dart.c +++ b/drivers/iommu/apple-dart.c @@ -452,17 +452,9 @@ apple_dart_t8110_hw_invalidate_tlb(struct apple_dart_stream_map *stream_map) static int apple_dart_hw_reset(struct apple_dart *dart) { - u32 config; struct apple_dart_stream_map stream_map; int i; - config = readl(dart->regs + dart->hw->lock); - if (config & dart->hw->lock_bit) { - dev_err(dart->dev, "DART is locked down until reboot: %08x\n", - config); - return -EINVAL; - } - stream_map.dart = dart; bitmap_zero(stream_map.sidmap, DART_MAX_STREAMS); bitmap_set(stream_map.sidmap, 0, dart->num_streams); @@ -1151,9 +1143,11 @@ static int apple_dart_probe(struct platform_device *pdev) } dart->locked = apple_dart_is_locked(dart); - ret = apple_dart_hw_reset(dart); - if (ret) - goto err_clk_disable; + if (!dart->locked) { + ret = apple_dart_hw_reset(dart); + if (ret) + goto err_clk_disable; + } ret = request_irq(dart->irq, dart->hw->irq_handler, IRQF_SHARED, "apple-dart fault handler", dart); @@ -1192,7 +1186,9 @@ static void apple_dart_remove(struct platform_device *pdev) { struct apple_dart *dart = platform_get_drvdata(pdev); - apple_dart_hw_reset(dart); + if (!dart->locked) + apple_dart_hw_reset(dart); + free_irq(dart->irq, dart); iommu_device_unregister(&dart->iommu); @@ -1325,6 +1321,10 @@ static __maybe_unused int apple_dart_resume(struct device *dev) unsigned int sid, idx; int ret; + /* Locked DARTs can't be restored, and they should not need it */ + if (dart->locked) + return 0; + ret = apple_dart_hw_reset(dart); if (ret) { dev_err(dev, "Failed to reset DART on resume\n"); From patchwork Mon Feb 10 19:39:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alyssa Rosenzweig X-Patchwork-Id: 13969072 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8A8D2C02198 for ; Mon, 10 Feb 2025 19:46:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=fjtngZOALj0IdzC20tSSm4wP6kwl37jWj1bmM1dPR3M=; b=cHKxK977cq84sgRANKAt7why85 PDnh8I1DGNc/cIuN9ZZT23KqCjPGocjoS6grqHLH0RPRZrcspoJMbr/EcY0+MUxK5D/C03itfJUe9 +pFM3hWnGQNojGC1WiZjw63tSmLgtISSRcG53m4r192HFbgcZYTYFWUdrZ1MZruFtL6oiCcky22dq 56Gj+8TYxvUbUoYPLTeyT6ur0JP+vsC43HN9jdpPb+WfrJeRf85DjEiO5MEsfUecFYmIPn4p1d7cK gtkzmCSCV1mFzGf9KYGVZBxjBZ6OsOLMlx1pUCXFkO2Tlw/BUYdwEyfZx3GbLXMZh1TUuTZvkfLt1 hNyKr7tA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thZjL-00000001Cew-4AMZ; Mon, 10 Feb 2025 19:46:07 +0000 Received: from out-178.mta0.migadu.com ([91.218.175.178]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thZdr-00000001AQO-0IGc for linux-arm-kernel@lists.infradead.org; Mon, 10 Feb 2025 19:40:28 +0000 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rosenzweig.io; s=key1; t=1739216425; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fjtngZOALj0IdzC20tSSm4wP6kwl37jWj1bmM1dPR3M=; b=YP6oko9ydeGKDbCUXgUWDwZx7AmLeQHdkfPPiX0YgmxNqrGYhqcaz16AyITxVHYxiPRlDd mWzZ7zimIZuEzTq8TDoZcSIU17UGviFlmVa07thtRUEHeLayJI5Jz5t0sTASdLbc3PLS0r nMxuy6Ygqq3pi/c8mE5yzYDutR/en9KdJy/Zy0g4LowvqEEzgAt1f5mU/5KoY1LJKGn4mm 7gDC7Gvb/xYrwa0QdJZufBcHz6mhrDI/21uLeDyZuxcX7sJO+t/p+ENgXGRNYi6p0dARAg Y22uBXJpWc/XwZfKIPQkdwlHxKpGXfqiO0O3d5s+dggAE776izoT0+XwH5tP0Q== From: Alyssa Rosenzweig Date: Mon, 10 Feb 2025 14:39:55 -0500 Subject: [PATCH 3/5] iommu/dart: Set DMA domain for locked DARTs MIME-Version: 1.0 Message-Id: <20250210-locked-dart-v1-3-5d97fe247f35@rosenzweig.io> References: <20250210-locked-dart-v1-0-5d97fe247f35@rosenzweig.io> In-Reply-To: <20250210-locked-dart-v1-0-5d97fe247f35@rosenzweig.io> To: Sven Peter , Janne Grunau , Joerg Roedel , Will Deacon , Robin Murphy Cc: asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Alyssa Rosenzweig X-Developer-Signature: v=1; a=openpgp-sha256; l=688; i=alyssa@rosenzweig.io; h=from:subject:message-id; bh=vfY3Ml+fLw1XdmnLqUIQmLLEE3BWPKNL9c3pG0gr//M=; b=owEBbQKS/ZANAwAIAf7+UFoK9VgNAcsmYgBnqlYZaLYJk9YI39mlAZ7tjhDRbEXzpCnX3HelN hhl52qjIAWJAjMEAAEIAB0WIQRDXuCbsK8A0B2q9jj+/lBaCvVYDQUCZ6pWGQAKCRD+/lBaCvVY DQTKD/90hufX4dDRXOyWEiQmFI/VWv/5QX3qjHE7OWRfK5qgiPC5/291LA6X0ncH8GkjUPvV26O EQRBjaKcB4ej74zuhj/haSG8A+jR3JtYIlzwq4PQ0zcFVjQDCSA9KD5Pt9lZrrvKfCOv2jdlVd+ el3H4KQ3d0VqveZcUjfQF5iqWFakbituKGIhVCIdKWThMh+gh+rf6An8U+aPx6LFc4nvizzKMGu Lnp4SX/ZTEODdKwWzeG4VnbtRt5yOlvpA3jeWgFPre1K+SJNL8O1hbXkjtX4QEQyGMEt3cbmk3K xzjQkofbN2ljTPKrgBPcMQKnqGmBr5uM4aTUkHou4m/mkx24VAUrlWZf3+kM+wU6v4iE17mmxf0 /DkHDg+QIKnqFtbfBSqYn+dNGUR+a4UE3t0lktQu0VRd6efUrd06sAwoUs91QcQviVYaRmHAzSL Ch82dZ/XLzlPC14r0hnmjaPmnFDlKXw1z9z68Pxpnbz1w0RPwI0nyhCgCwffvxBsr5xpij94Rj7 Ot+9UAEgQXk7Q5g4rTckNe/A+nRr1GZmOERATyyZFI4wehp9rYB8t3mZgbaFJ7E3bfXIlGDr7rP I+QCjuC2ov+yTcJ+ZPLi42kCmMGb0G/9pPn59Z8JNaI3SLY1cFcxpcXLQj4HSSLcXWmMQWhi7hC lDZ3xcY606Wx95Q== X-Developer-Key: i=alyssa@rosenzweig.io; a=openpgp; fpr=435EE09BB0AF00D01DAAF638FEFE505A0AF5580D X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250210_114027_255232_D98F619B X-CRM114-Status: UNSURE ( 8.69 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This is required. Signed-off-by: Alyssa Rosenzweig --- drivers/iommu/apple-dart.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/iommu/apple-dart.c b/drivers/iommu/apple-dart.c index 9c74a95eb7e819e94ab2fb47ed0d411a1eba8bf7..9c6f780dc7220096ed6bba692fa1a4bd859b0d61 100644 --- a/drivers/iommu/apple-dart.c +++ b/drivers/iommu/apple-dart.c @@ -941,6 +941,8 @@ static int apple_dart_def_domain_type(struct device *dev) return IOMMU_DOMAIN_IDENTITY; if (!cfg->stream_maps[0].dart->supports_bypass) return IOMMU_DOMAIN_DMA; + if (cfg->stream_maps[0].dart->locked) + return IOMMU_DOMAIN_DMA; return 0; } From patchwork Mon Feb 10 19:39:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alyssa Rosenzweig X-Patchwork-Id: 13969073 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9C4CCC02198 for ; Mon, 10 Feb 2025 19:47:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Occ2Auitkp4TNvTqlmdDCEbjvoCr3RaS62RKSPjLibw=; b=DjczxtxBbTp6ZJtqMFGo/17sIM VRNKwhmdDSgPT0f1Te+y5y+MMnlwOC8/MnqzvRSv6xuMtaufUJi79bsApsdl0Addg2hOjC+854jmd 3NBqzJY9RqAASTUPfzbW2u/4taTivLROvSIwHFVgPyIMeBLsbu5qeOsmUIRF7hw0TXDdBEi7T1Ly5 qsUqq2ZhaS8jNTjh43B4Vp1j/Y9jLgRb7bTU638g4GmtMCW6K2osmH1owcrPodKGyHhhehfyLBH4G k2HiiQZVSHYd+O7cq6A3MIFS0/Ry0BiranACyHPsBRp3hsJSfEQIPmoV98pebnr8wjR8OwmKednOs gpLL5zCw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thZki-00000001D4u-2dlG; Mon, 10 Feb 2025 19:47:32 +0000 Received: from out-189.mta0.migadu.com ([2001:41d0:1004:224b::bd]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thZdt-00000001ARJ-0wOM for linux-arm-kernel@lists.infradead.org; Mon, 10 Feb 2025 19:40:30 +0000 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rosenzweig.io; s=key1; t=1739216426; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Occ2Auitkp4TNvTqlmdDCEbjvoCr3RaS62RKSPjLibw=; b=d9bfjWKuGE6S10cVSNw9w48WqXMUZBcGuoaR9zleSEB3XvbuAzC4YlbGcc2ewqroMo5mca elLQz7k9lFnDVTTaiyq7QJnP1epkIm6bLx/+8tHS1MbY+FzPSCi6D7CeXDEAktN3z6MLik damm9V/imb6ZqferHa0FWI/tlbvfpYFb13iC8CpOjlQyuayo04qb3V5X50TGnXAtd8lT32 P7DfX8rVNnOgAH7LdRYMxKMxg5azLSvPtJoCumZ8L8D2xNTHcUJ+oRSKbPe7L5BGHHig8S 5wLVjx41NtZC+lhECott69vlwiFAmIU+oscASzZq5MnIg1rkiS0DxY+xXrQB1Q== From: Alyssa Rosenzweig Date: Mon, 10 Feb 2025 14:39:56 -0500 Subject: [PATCH 4/5] iommu/dart: Reject identity domain for locked DARTs MIME-Version: 1.0 Message-Id: <20250210-locked-dart-v1-4-5d97fe247f35@rosenzweig.io> References: <20250210-locked-dart-v1-0-5d97fe247f35@rosenzweig.io> In-Reply-To: <20250210-locked-dart-v1-0-5d97fe247f35@rosenzweig.io> To: Sven Peter , Janne Grunau , Joerg Roedel , Will Deacon , Robin Murphy Cc: asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Alyssa Rosenzweig X-Developer-Signature: v=1; a=openpgp-sha256; l=781; i=alyssa@rosenzweig.io; h=from:subject:message-id; bh=Q2X3fPKVvdzr1B3hHwj4E/4Mk7pqhs1UeDt0uJfgsNE=; b=owEBbQKS/ZANAwAIAf7+UFoK9VgNAcsmYgBnqlYZblhzlpiuLR3xbq+t6xWjNWkzODbgWUFF5 Fs8N4cPjwOJAjMEAAEIAB0WIQRDXuCbsK8A0B2q9jj+/lBaCvVYDQUCZ6pWGQAKCRD+/lBaCvVY DfbXD/9R9X6kCnXTZvOwa5wliwk7U6TDTvgktXgigweVT9oIXCaiqPqOzuaP147ASN3CDzU+Hym HkKienPTMPBI8OUUsO7EH/fC9njHeIxIht6fiz1MHV23cmySLs9fgevS0rXk6+JMjQDWviAhbA6 en0KYZA0ZEe7VRGlgqGZKDhMmwtbOp9QQMOkvNC6UKxQymcwaipOSuG8JZNIDtt5PJZt8zglc6P Bst0ZY4KogoLg5lXWoirtipWmtjE6LXFB27ggVATt6OxOTbSp/bgghq9pU7gMlpjtneOQe+BmH4 KV8FGp6Bsipd11gUJPx+qVLWBc6pTmLmkiJsR4Q4Yt2gDmJC5DEnpX6BB4Zh0Y1lLNQyIvqHOq/ tFangOvZ2w5JR7pbSNFLVo5A/7Sn3KRT6LZjC8oS5P3WvPTs+v4thCPjx07G9vKLTngzUI+ao2r B/L8n1NOusN93T1127AGB/+n+hPeEVxX7xv7rP4xgkpfNMAHqPKjOHFhBwheOBQ25T2e/PJx462 I2qkNPtIHvCvsJIF5fPaf4HObzeY+quJp7eiGXkqHyQwGvbO3H2CX9dRJkgpjtNLYWUv0Sp0TIg OffyZwpGvQHldBCXuxjpnYA1vJP3LVFDf8VSR+O4qpSVoL/IbjYG5gFp1RbbsNPV66svskh0aB8 mmyCRBY9jh67snQ== X-Developer-Key: i=alyssa@rosenzweig.io; a=openpgp; fpr=435EE09BB0AF00D01DAAF638FEFE505A0AF5580D X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250210_114029_418128_3972B6F7 X-CRM114-Status: UNSURE ( 8.07 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This cannot work. Signed-off-by: Alyssa Rosenzweig Signed-off-by: Janne Grunau --- drivers/iommu/apple-dart.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/iommu/apple-dart.c b/drivers/iommu/apple-dart.c index 9c6f780dc7220096ed6bba692fa1a4bd859b0d61..29b627b38e8c37afd2b6a72865f43d24b633834a 100644 --- a/drivers/iommu/apple-dart.c +++ b/drivers/iommu/apple-dart.c @@ -681,6 +681,9 @@ static int apple_dart_attach_dev_identity(struct iommu_domain *domain, if (!cfg->stream_maps[0].dart->supports_bypass) return -EINVAL; + if (cfg->stream_maps[0].dart->locked) + return -EINVAL; + for_each_stream_map(i, cfg, stream_map) apple_dart_hw_enable_bypass(stream_map); return 0; From patchwork Mon Feb 10 19:39:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alyssa Rosenzweig X-Patchwork-Id: 13969074 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6A983C02198 for ; Mon, 10 Feb 2025 19:49:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=lOD2Sq5+ZH4AcnNDOmSUoO/ljPGq1eIifxgBsdfQLiY=; b=wBof9CXD2OUoo3u60JTd9f2Z1k d0ug6P7hwt2SYxzNJbh6fGlZQTuYScguOtzkoNZ/sAeJy8yHKQCZeaJdVB1sDA9+eAq7nA8fkVlyY f4mlRQz2l9qthV7dBY8cvipWvOmC/QJSCrk/ib9wWx6LFt5QYeN2S4n9Eql5Hbmx6w9fMGbGJQh2U S2B4EkwfOOarMmwiioONiJt3MgkJg7do89LYra2mOInRD7ZoAdDu34PH6BSn77jmkMHXm9Ptj/7rn 6wyRWuxkie2tMpyi5nJnAb4iycD92mCTBBar5yDqvOvAjlu9TpzzJJ497bbnPCI054dQSqmEeJYdM 6m6JfmEA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thZm5-00000001DVM-1WCw; Mon, 10 Feb 2025 19:48:57 +0000 Received: from out-175.mta0.migadu.com ([2001:41d0:1004:224b::af]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thZdv-00000001ASG-01aJ for linux-arm-kernel@lists.infradead.org; Mon, 10 Feb 2025 19:40:32 +0000 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rosenzweig.io; s=key1; t=1739216428; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lOD2Sq5+ZH4AcnNDOmSUoO/ljPGq1eIifxgBsdfQLiY=; b=mEB+Xkj8T8zGigBKiyv7FB06VJrCxIGpILs21+CpcutU5jlc0MWNb1aUfNlgnvwcp5Zwub psyi+BgX8tRe1LYfw35T0eLHelVndz55BfAqxCuXw8Ecyw0yPUbJcHTsJmD9mZhEfT9DdP bIEZWiNNb4U52rCnloNeb9NjZMv1yOVQTL5x3mbfRvc+Mc+xFEwZJkf8kk25clMtRcvDa9 IRYHl+O2rWr+dmA452gcgDFHawO8b09IezIHm3NA553dfTGiaPHi47vRE5ObJdaO0iIQVI T45sAe5S5uPg7yezUVNN8zVAS4XMYpOxL9Fw2Ebw1edHwxE2E2qT4Jho5N5uyA== From: Alyssa Rosenzweig Date: Mon, 10 Feb 2025 14:39:57 -0500 Subject: [PATCH 5/5] iommu/dart: Assert !locked when configuring MIME-Version: 1.0 Message-Id: <20250210-locked-dart-v1-5-5d97fe247f35@rosenzweig.io> References: <20250210-locked-dart-v1-0-5d97fe247f35@rosenzweig.io> In-Reply-To: <20250210-locked-dart-v1-0-5d97fe247f35@rosenzweig.io> To: Sven Peter , Janne Grunau , Joerg Roedel , Will Deacon , Robin Murphy Cc: asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Alyssa Rosenzweig X-Developer-Signature: v=1; a=openpgp-sha256; l=2308; i=alyssa@rosenzweig.io; h=from:subject:message-id; bh=apwlrHK+NFmUFcATPM4IEl3yfbQ24a1UqxWS9zc+/wc=; b=owEBbQKS/ZANAwAIAf7+UFoK9VgNAcsmYgBnqlYZdwU6iimgUcyo61wE4/xA3zJtr53OpF+Dx ctCIBx48SSJAjMEAAEIAB0WIQRDXuCbsK8A0B2q9jj+/lBaCvVYDQUCZ6pWGQAKCRD+/lBaCvVY DVycD/49tr1weIxdnNGNmj3jpsXXmZOfwks2OSyN89yavv1Na4aT4E+O2fNw3BRnk1VspirBigp ll9E48WekXnXMa8kQxS/2I1/aYigRPd2T4L2iiKbxPEi8UCNQgbAqGlHGxvqhCLvvYh+2aiDLpv xH2nW+kMVzdMlunP7GVyAZZvOyCG2RtlbboG0Qj5J4G3nZpDU6AaDXYbHX1a4FzTsPS0LqiTnpt qUqjp6NjnCOMaQlHvKIjhf83bVlSMr7tzYIhdzb80lX/ZAJGtOhM5feKQyeF9wkfVhaFtU/pN4V 35/in4R1dTefaMz6tsoF3MBj/m44M8slSaK86gCIePgTWDpr+e6z8wqy8fjqgghaxlNuV7f1wMz 34yVh6f/hp1tQn0C7xlKfF1rhCAk+LblHY9/U2CLdt85dWhLBFnANsyPpPgMCqqp0z6G2pqYGOB qz1a1oPkM8XMYzed6vENNWVflXNkAYPcHfY1/tXCck/4jWHVdfp7ZUaCDX6wTFBOMHKy9LVPJsl UBZX50SMZJhbfMPNyhvJFTuPc3c0W4HFibXi+NA2Pw92klqA2ja8fy8CQ6hOMYf+PvjKayDLUZv lil/vSW3MdZk8Hee4FrkwJv+iftK+Js8/p9i3HQRHdzCNRXjNkiTXHTc6x/iYwiWIWIM3oaGoWz T6IiGUagk+V8YCw== X-Developer-Key: i=alyssa@rosenzweig.io; a=openpgp; fpr=435EE09BB0AF00D01DAAF638FEFE505A0AF5580D X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250210_114031_196215_F1D227A1 X-CRM114-Status: UNSURE ( 8.21 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Configuration is only possible and needed for non-locked DARTs and will fail for locked DARTs. We cannot try -- assert that we do not. Signed-off-by: Alyssa Rosenzweig --- drivers/iommu/apple-dart.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/apple-dart.c b/drivers/iommu/apple-dart.c index 29b627b38e8c37afd2b6a72865f43d24b633834a..87eb87bb2f5158d000a2c2fc801b722a2262c941 100644 --- a/drivers/iommu/apple-dart.c +++ b/drivers/iommu/apple-dart.c @@ -309,6 +309,7 @@ apple_dart_hw_enable_translation(struct apple_dart_stream_map *stream_map) struct apple_dart *dart = stream_map->dart; int sid; + WARN_ON(stream_map->dart->locked); for_each_set_bit(sid, stream_map->sidmap, dart->num_streams) writel(dart->hw->tcr_enabled, dart->regs + DART_TCR(dart, sid)); } @@ -318,6 +319,7 @@ static void apple_dart_hw_disable_dma(struct apple_dart_stream_map *stream_map) struct apple_dart *dart = stream_map->dart; int sid; + WARN_ON(stream_map->dart->locked); for_each_set_bit(sid, stream_map->sidmap, dart->num_streams) writel(dart->hw->tcr_disabled, dart->regs + DART_TCR(dart, sid)); } @@ -328,7 +330,7 @@ apple_dart_hw_enable_bypass(struct apple_dart_stream_map *stream_map) struct apple_dart *dart = stream_map->dart; int sid; - WARN_ON(!stream_map->dart->supports_bypass); + WARN_ON(stream_map->dart->locked || !stream_map->dart->supports_bypass); for_each_set_bit(sid, stream_map->sidmap, dart->num_streams) writel(dart->hw->tcr_bypass, dart->regs + DART_TCR(dart, sid)); @@ -340,6 +342,7 @@ static void apple_dart_hw_set_ttbr(struct apple_dart_stream_map *stream_map, struct apple_dart *dart = stream_map->dart; int sid; + WARN_ON(stream_map->dart->locked); WARN_ON(paddr & ((1 << dart->hw->ttbr_shift) - 1)); for_each_set_bit(sid, stream_map->sidmap, dart->num_streams) writel(dart->hw->ttbr_valid | @@ -353,6 +356,7 @@ static void apple_dart_hw_clear_ttbr(struct apple_dart_stream_map *stream_map, struct apple_dart *dart = stream_map->dart; int sid; + WARN_ON(stream_map->dart->locked); for_each_set_bit(sid, stream_map->sidmap, dart->num_streams) writel(0, dart->regs + DART_TTBR(dart, sid, idx)); }