From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 58DA4175A99 for ; Tue, 14 Jul 2026 00:28:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.174 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783988887; cv=none; b=RdL+7NaV7HijUqSV7eJaCTlxJsCJudR0TnfXL5XS8Kb30E2OpCVnOcVW75OUTVvxY4YEAasmKCplRo6K6FfZtrM8y54rFNTvP9OtOiVxfRTf1EPqho91SYzc1racCHwZhL4QGIMlZ5pHjQmhMSLhwHcpiintO3yv+WJw7DNg+RU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783988887; c=relaxed/simple; bh=5iy63XHbqBSfeIqFa1/srtHbQ/+BlH6A+g/VbecZvj8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=QnNfsm1D8T4s+FSTDsX/XB0cOzbut3U5Nju8TYuRARKeh2NDDUqAm2Fo2L+N9x6HGIJMCwcym6XIrhgiY1EcF5UOaMZyxt6eRDoiBvxbohJ02fRE0vnhCom2iIpgw5XcNI/FnLsFjqdQ5eSkgNDEmdYzvkj9JNxya8YvZfe33fM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=JJ6aCtS6; arc=none smtp.client-ip=209.85.210.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JJ6aCtS6" Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-8486672f03cso3315552b3a.0 for ; Mon, 13 Jul 2026 17:28:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783988886; x=1784593686; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=R35+AhKuoC4oYnI/b9RPi99MFz3JDij1EKLCf/1SkNo=; b=JJ6aCtS6EpiYAzKDFBUTICrNovfM8m+axwNwhXLld8pOECCKV/XIuB07fM1TdLlHck Ce6HX0paJsk9SWVG9WdY+73m7DvdPDTmy2AO+OY0vNtA/MZ4OiyBuYVHai7DifM2QLjH f5kU1HRzSmRelgKBDqpgLchlX+S0CWcjOwxDHMeUlz03STbdOEOx5wW23dl4UBRhsO+z pQsI/Jd3A4SRsWUhdd70DZmMFghvgTxQn0Jp8zg1vES5PYTAzKl4EyNyrAkKFvuGrgqj ve1qDcFk+jZ2tkuiHjOfTml4GWRL5FNPD9xmLALjyuZBCpvcqpIR9l7aBQ4FDbbU7WiP sb/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783988886; x=1784593686; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=R35+AhKuoC4oYnI/b9RPi99MFz3JDij1EKLCf/1SkNo=; b=cmfBoRyaKYcayb/sqAo6wWSjMknVqXk1WmSPNCTGWvySw4Pj/Q2zGgSppvdqmvpqDV zTC2yb8Jlw1uw3qGrMSedZ6Z+OFJ/e0ytEVQ3XkCxh/y3Ci+gUPtX6ntfkylHc7RZJSP grAVd8gua0VYljKxlz9lbyrf11Bcv0QjWeYoWu3CRkSoPL82KhJtSQupgPsdsVMd3O9T Jpg0HVuQk9xV+Nmu5tUvNtCH2gWgR6d5ACcAK72yfnuVvLypARNOhbEy2M1YHncq21nc 0PASW7Dxc+ia2cIA5gn1k0cGjRn8xOWy/GHP94nEnayfWwxG835A1++NevN0NYjeV+Rx 9JNw== X-Forwarded-Encrypted: i=1; AHgh+RpBql3MZi/rBJ7Zv6s8lheggh0cgsN1g5sPfvmyKSKoBglyEQrvVRityHtP9AEULqohD7lTnN9VqEegBHs=@vger.kernel.org X-Gm-Message-State: AOJu0YwXVDgXGsnI0QJPMzLyrsilXoAFjwki0gXg1BUHvnfjKB/jY2I2 bKltK2n+bw8OY86jz0wwzoewopXnW+8Z10vHPixxwm8Rkf4GYcP/ZqQW X-Gm-Gg: AfdE7cnZeLnWBeXM6J9wJ7fWTk61/WSOu9H30snFGfGBG4FwlVzq61puWPjkyhXyZO6 nJ08369E2q1YBh/bq6420+XOsiskN+2l+GnHJy9IzTtkhXVrjg8e0JOJq+ZPhj8BmJIpr+1LtJy PMNpmVXbfmtqvMoorhThVTBJEnI7JiWjvCrvqOVIUrAeQ2wqgeuKK7a8DwdVVhdsIRWL1v5Puw6 6z46N5Zc6pXR2PajurmykPdhMNyeEkdkTSVXchSGQ/xy7+/q9Hui1ygRMPVquDu5APojJfCZ79y igWD715CYsRJbApcvvYVJn9/Q76jFVof+TUtWdqk6pAdx+k1/RW3UWRO/hiJlNsPBiVEbRo/aJL 3pADC0XQaiDAXLTMJM3H0LUwQ455i2IQsdPSXOu+3EPqNeWwIrA+mwUZwHHtEoNTGNOFhV/W4yO 5DnRq2j1IxXbndd5FpFXCmI6/mXdwO61qvU5b6yfAIyTO3+Td00Ygz6dlxQXs8B0XzvFlzFFv1P DiAZMyXykDNRpAH2MR2vQmk4HO9erawPesCx0gLCMJ6jcvMpfTiR1oWSiba920Oeg== X-Received: by 2002:a05:6a00:12e9:b0:848:662c:cb85 with SMTP id d2e1a72fcca58-848895dc921mr10952862b3a.6.1783988885724; Mon, 13 Jul 2026 17:28:05 -0700 (PDT) Received: from ryzen.lan ([2601:644:8000:7a86::e35]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84a4f81a5absm537906b3a.54.2026.07.13.17.28.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 17:28:05 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Vinod Koul , Frank Li , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-kernel@vger.kernel.org (open list), llvm@lists.linux.dev (open list:CLANG/LLVM BUILD SUPPORT:Keyword:\b(?i:clang|llvm)\b) Subject: [PATCH] dmaengine: mv_xor: use devm_platform_ioremap_resource() Date: Mon, 13 Jul 2026 17:28:03 -0700 Message-ID: <20260714002803.1414307-1-rosenp@gmail.com> X-Mailer: git-send-email 2.55.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Replace the two open-coded platform_get_resource() plus devm_ioremap() sequences with devm_platform_ioremap_resource() for the low and high XOR register windows. This folds the resource lookup and mapping into a single call and returns an ERR_PTR on failure, checked with IS_ERR() and propagated via PTR_ERR(). devm_platform_ioremap_resource() reserves the region via devm_request_mem_region(), which requires non-overlapping reg ranges. All XOR nodes in the Marvell DTS describe two distinct 0x100 register windows that do not overlap each other, and sibling XOR nodes interleave without overlapping, so the newly-reserving mapping introduces no region conflict. Built for ARM (defconfig + CONFIG_MV_XOR) with LLVM=1; drivers/dma/mv_xor.o compiles cleanly. Assisted-by: opencode:hy3-free Signed-off-by: Rosen Penev --- drivers/dma/mv_xor.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c index 25ed61f1b089..fe2e6b9ec185 100644 --- a/drivers/dma/mv_xor.c +++ b/drivers/dma/mv_xor.c @@ -1309,7 +1309,6 @@ static int mv_xor_probe(struct platform_device *pdev) const struct mbus_dram_target_info *dram; struct mv_xor_device *xordev; struct mv_xor_platform_data *pdata = dev_get_platdata(&pdev->dev); - struct resource *res; unsigned int max_engines, max_channels; int i, ret; @@ -1319,23 +1318,13 @@ static int mv_xor_probe(struct platform_device *pdev) if (!xordev) return -ENOMEM; - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!res) - return -ENODEV; + xordev->xor_base = devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(xordev->xor_base)) + return PTR_ERR(xordev->xor_base); - xordev->xor_base = devm_ioremap(&pdev->dev, res->start, - resource_size(res)); - if (!xordev->xor_base) - return -EBUSY; - - res = platform_get_resource(pdev, IORESOURCE_MEM, 1); - if (!res) - return -ENODEV; - - xordev->xor_high_base = devm_ioremap(&pdev->dev, res->start, - resource_size(res)); - if (!xordev->xor_high_base) - return -EBUSY; + xordev->xor_high_base = devm_platform_ioremap_resource(pdev, 1); + if (IS_ERR(xordev->xor_high_base)) + return PTR_ERR(xordev->xor_high_base); platform_set_drvdata(pdev, xordev); -- 2.55.0