From nobody Mon Feb 9 16:04:53 2026 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (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 EF708492182 for ; Wed, 21 Jan 2026 15:01:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769007714; cv=none; b=cxFocrwizDGcIp9hnElAtdfBmDLH5UTnjmAV34HOq5zuRFF+sq47yVvD08BQNVSQKI9+WNrVFFvvSCoIIYT1w9tMWdPSZSg2D155OwA3O1K9DI9DREZP2IXWhr0Ip9UGIHOyA3ZEwuOZ2Ds/RNRCXtXjPg4+8iDgljdc6czfo8g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769007714; c=relaxed/simple; bh=uyjlaXBsSm3MW1cFwkZZp1jtrBZptSnPJ581K8zPctY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=c7gUbo5pi2J0Vq9pqUCv88VoGrftFQlFw6xha+CQJl78BLQhxKeb6wqzGTeqYmPh8wVVZlxhE8/9nEHggZK9mAbQYnwO+TJi+YJMrQkXst9xA9HtkMSkEtb+cZtvyVg5JJfW5D462PZZnAwuGVljCz8nGpxeTdoTq20gfyFIxSU= 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=FoZSqAPW; arc=none smtp.client-ip=209.85.128.49 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="FoZSqAPW" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-47f5c2283b6so44967915e9.1 for ; Wed, 21 Jan 2026 07:01:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769007711; x=1769612511; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=M9hWGmkV6vaCU9hAVbMVl24UbbTqYot5iTkixcF395c=; b=FoZSqAPWaTyJIYD7uxWTCytBb1nB7bSiEUZti0aOWykMgB08LzfQmbMZyA9QKHo/rQ y9/GawHJYEo64u1/XNnWhygHsiZaO9owDqthgbAd2fvwpVfFDGzGLjic4LTx2YxMxnk6 +x6UJ4bixl2bb+Hljgvz5fDM0S7ICGXnWSf9LM77ndpFTgf6yKu42K2lGyN8sH9we9ae JsUrpjTuVCNqlzU3RSZqZGzBnLqNGpLuAsKDkWLyBqRuOoAl3+B0aLaloSzUxMAVvgbH 4WJA6bDUHI8lxKIrZxU64MDdLl5B3ahS7dQxskwR1oCNgpmjRO1xULF1Lzu+bh5uV/y3 nJJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769007711; x=1769612511; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=M9hWGmkV6vaCU9hAVbMVl24UbbTqYot5iTkixcF395c=; b=pEjbBEVMV1VgYOUeZB1tnVvh/FE3gRxsJXZmIvefEf4o8uXihwK4x9jVN6cM9VYhGu R6DGMJxi3DzOUapcs2t4cMXLn9l59Y+2lD07kYRpOA3YpbSgmM3OwWf+/WlMohhnT2yn GZsyoU+TLqx9paPuPsEFKyfjYZ9U1/KOaQ6WQ3s3Ac7Rpt2ZmMvvB4izJz+TW6LrdgtD hiOgwmyDHCVu0Mj4+P4AKdbjJiMmYziypGrtb17poq8ShER0STOEwIvpV+13hr0Qx4mU VeaRKdhltEV/i7M3QwA2v+qlfr3kK7kSpXCdCxy1ILRD1thLf0QW7czGkB6Dixh+NJdH RhCQ== X-Gm-Message-State: AOJu0YwqKLa/jhmxFoQTRbcyRX+oRw63+rwCJcNVVrKuz9nOrh8tOluS PaJ7au6z5x/FoiDmSJJdEx8+y5Y7rGEyMvHuOaesXFXijpzdzbsOOBAdxWpytQYFJOQ= X-Gm-Gg: AZuq6aIggfQeCKoEBcq5K+zb7Inydkxi8pzoX4yXuRaIEicSpGHqUWk5bZER98xd3Gc zHKaRdFAH/qHI0zR2076ZHqlGCLJPmKOQB0gu3CZul0bG6Pgm6E1EBM9dA8c6Dc9Rr/niRrs/og HdL3XE36TOkzqOjm+Li5NMtLdBO/JI/3QX0Pt9zfN29CIp8jJaYzXMxEV20qCNCg7G44xy19Ct9 H9a2HS9mhiNaO+0dol2tOmNY6vXbp2X2ZzOhx0SJDVm/N+60Nzly+83q2Pd82pb5ZR3LqQGoooh sZUXv3SDUOCuYl4BLiejFC5p2hxbbRTuYoNDFpF49ZypzLxsDg/M8zC7oFalfUW9PdNOw4xZ/VM B7cadOUkqga7roiqAgxQdFsWZ+/qKmIRjAHz9I8syF8L2YOfEl4VzkDVGwONAjfK65jw01V5BiW lj5MYAPifL33w/wL5fWNu8jjN4LtVggS3OZufNLm4aDeqVemgIjXQ475Xi/sSCvFIpLdLZXi8Nw 1AWTvkRes/KbOC6A7YPZyRxXr9/4e0d X-Received: by 2002:a05:600c:34d3:b0:479:1348:c614 with SMTP id 5b1f17b1804b1-4803e7f03fdmr82912505e9.26.1769007711000; Wed, 21 Jan 2026 07:01:51 -0800 (PST) Received: from iku.example.org ([2a06:5906:61b:2d00:3190:c653:bb13:4ca]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48042b6a3e2sm24787585e9.1.2026.01.21.07.01.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jan 2026 07:01:50 -0800 (PST) From: Prabhakar X-Google-Original-From: Prabhakar To: Thomas Gleixner , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH 1/6] irqchip/renesas-rzv2h: Use local node pointer Date: Wed, 21 Jan 2026 15:01:32 +0000 Message-ID: <20260121150137.3364865-2-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260121150137.3364865-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20260121150137.3364865-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Avoid dereferencing pdev->dev.of_node again in rzv2h_icu_probe_common(). Reuse the already available local node pointer when mapping the ICU register space. Signed-off-by: Lad Prabhakar --- drivers/irqchip/irq-renesas-rzv2h.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/irqchip/irq-renesas-rzv2h.c b/drivers/irqchip/irq-rene= sas-rzv2h.c index da2bc43a0e12..20c0cd11ef25 100644 --- a/drivers/irqchip/irq-renesas-rzv2h.c +++ b/drivers/irqchip/irq-renesas-rzv2h.c @@ -570,7 +570,7 @@ static int rzv2h_icu_probe_common(struct platform_devic= e *pdev, struct device_no =20 platform_set_drvdata(pdev, rzv2h_icu_data); =20 - rzv2h_icu_data->base =3D devm_of_iomap(&pdev->dev, pdev->dev.of_node, 0, = NULL); + rzv2h_icu_data->base =3D devm_of_iomap(&pdev->dev, node, 0, NULL); if (IS_ERR(rzv2h_icu_data->base)) return PTR_ERR(rzv2h_icu_data->base); =20 --=20 2.52.0 From nobody Mon Feb 9 16:04:53 2026 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (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 433454A5AFE for ; Wed, 21 Jan 2026 15:01:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769007717; cv=none; b=Kf7HNVqJYWT/eold5kCuLLsvPvVkS3vzH15z//ymJ0Kp/rYaj9P0USx3RlvjcNN6xQLKFkqnPyCPAHfeIu0d8NwnuOKPJLygbuKDHZPBSjWbwgnK4w8ntOSXap7jVpGTXF2T+8/s/HexBpQrU/Wzs17mMxx8x6yHJsKO0F1rnS4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769007717; c=relaxed/simple; bh=nu5eb5oRynroGMCnNukqj+nJoO3Q/QblFeLpl2shU4g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=e0P0XTVMzLHmIIKmQSle7YElXEP2H4uTRJFPClmVR45n+6xriyDWjubkcfLufL/d4a/lgDbb9V6Di2zdxJqZ8dkHuWjerEQU26IbVC4FIskALrc5aXpGkpt3XQNMaKfgKVfkMxn9Hm3/Q0Wksx4X0QuzAbQ1zf+zQDpQG1AfKZQ= 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=YzSlOTFM; arc=none smtp.client-ip=209.85.128.45 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="YzSlOTFM" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-480142406b3so38996125e9.1 for ; Wed, 21 Jan 2026 07:01:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769007714; x=1769612514; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IKfiqRkh5XtZUA4S099iclsE8WGfK6hAsLNATgk0+LQ=; b=YzSlOTFMUnxYn9hlBcGEqMpiBPNJAHWf2wPpmPF5W76cNULktAF6sn3lI9iL5hLVU9 jnezAH2hOcu+l6PW7+Fk/Y9TJM/ctzayR82UAOouS5MgiFafm+yXJdLuszk4jBhqBwZJ p/Y2Zp9RxmnrKPoArS8oPBaQ0FrR/ZidbYGXKjs01NmqbPS+6VUERJyxwG6n6MV3hO41 TJ+DWN4YqLwxgat3kSYLbZvxV51WloDtk0NoitDoyy1oqU24EEh3jxnCl8+mB0aKGP5w WjvfGB1li9AhSv8TovxZnA343kWq+Of2NWKVQyfiGqZ07LksxXTnTTuUwG9v8YEguXdN DWwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769007714; x=1769612514; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=IKfiqRkh5XtZUA4S099iclsE8WGfK6hAsLNATgk0+LQ=; b=TGnK3PfmoO1Jlo6mjANJvIJp5s4VvHByDq+AxPCCMOJ7ieGfLY7nLQuegmSTtyQVoN UO+QPK1B9P54TGvkXVP/HS69Sy8z9D/enY5zM0m2sJmPjMolVJl12b75tVYkozp0qSnV B80ttT82U/wk+3KdmoRsRxAJOfH426LId0cXyB5Xw8S/pG+y+/36ur0dnaWn8iLNwXC3 To4CBSisoydwz7S9TCjorOmeH134uWUso9vI0md1T6UBc8lheqZhZH/78v+RlshY2mz4 br0mGcTnopyXTSCkgWDJkY4FOjgs9vAFPWCqNGqUrhjAFiQu3wVRvwXdPSjIUuAtqotC +Wfw== X-Gm-Message-State: AOJu0YzEEZKRlWhm8kfqPaN39/0VWTB4kfCsdGbi2unDSNd7H9kHCOt/ 1YP9sx3+KDyq1nWSw1zH7VyX1i9b7s0ZzzMTY2blV4nW9iBf+2PTqzcx X-Gm-Gg: AZuq6aIRmPL2EJ5BpKrbUvkaD9RgOWzFdahEwge2h+HdqylqFzFcBH9S2YmvZ3Uy9IN tSnENOF+1zjkarSf/PlWF0gF8v/xkAJOn66R4WacmDsEvcN58h5RNvgm5QIB59w+c2yBASkfyA7 q2+1yqPjv9ZqKtT3saz5JEYssN8hPKBq2r31TatSbKNfBHjEP5Rg7mE7J5AzsdF0ltazT5Wy0LA 5CgJCnpoor5k9UIvDUU2CY8+WEgbh5bMZSjIy165bn3EluxYfE6G2eW9hdzLlCGgsRKJHuw7gUr ks8TU0S4tc5KEhq0s4HFRzCta7BELYe+fiIXEK0JSJBTGOvQoYCHxpqxZ7CPffLZnXMF2jV7rWq f+hG7ZUMoXthjhc2cetBBIQdw4KJOdiDrasHWw7rkapEU42E4IxthKr/luwJHGPZSKPOsBduOdx J254vUhuFnvXz28nZfDhCCl8AvC25ZwPCZi+k0/n1+MbOsHOqRDjLOZpZBt5zwfQdJVIPlQjK2l wZf6QlmAnZ0VCJQs7x5WlGS/gEJUFdSyPZKhKz9AHQ= X-Received: by 2002:a05:600c:8b27:b0:480:3bba:1cac with SMTP id 5b1f17b1804b1-4803bba1da2mr99684705e9.6.1769007712723; Wed, 21 Jan 2026 07:01:52 -0800 (PST) Received: from iku.example.org ([2a06:5906:61b:2d00:3190:c653:bb13:4ca]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48042b6a3e2sm24787585e9.1.2026.01.21.07.01.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jan 2026 07:01:51 -0800 (PST) From: Prabhakar X-Google-Original-From: Prabhakar To: Thomas Gleixner , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH 2/6] irqchip/renesas-rzv2h: Use local device pointer in ICU probe Date: Wed, 21 Jan 2026 15:01:33 +0000 Message-ID: <20260121150137.3364865-3-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260121150137.3364865-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20260121150137.3364865-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Use a local struct device pointer in rzv2h_icu_probe_common() to avoid repeated dereferencing of pdev->dev. Signed-off-by: Lad Prabhakar --- drivers/irqchip/irq-renesas-rzv2h.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/drivers/irqchip/irq-renesas-rzv2h.c b/drivers/irqchip/irq-rene= sas-rzv2h.c index 20c0cd11ef25..766b981cf3d8 100644 --- a/drivers/irqchip/irq-renesas-rzv2h.c +++ b/drivers/irqchip/irq-renesas-rzv2h.c @@ -555,57 +555,58 @@ static int rzv2h_icu_probe_common(struct platform_dev= ice *pdev, struct device_no { struct irq_domain *irq_domain, *parent_domain; struct device_node *node =3D pdev->dev.of_node; + struct device *dev =3D &pdev->dev; struct reset_control *resetn; int ret; =20 parent_domain =3D irq_find_host(parent); if (!parent_domain) { - dev_err(&pdev->dev, "cannot find parent domain\n"); + dev_err(dev, "cannot find parent domain\n"); return -ENODEV; } =20 - rzv2h_icu_data =3D devm_kzalloc(&pdev->dev, sizeof(*rzv2h_icu_data), GFP_= KERNEL); + rzv2h_icu_data =3D devm_kzalloc(dev, sizeof(*rzv2h_icu_data), GFP_KERNEL); if (!rzv2h_icu_data) return -ENOMEM; =20 platform_set_drvdata(pdev, rzv2h_icu_data); =20 - rzv2h_icu_data->base =3D devm_of_iomap(&pdev->dev, node, 0, NULL); + rzv2h_icu_data->base =3D devm_of_iomap(dev, node, 0, NULL); if (IS_ERR(rzv2h_icu_data->base)) return PTR_ERR(rzv2h_icu_data->base); =20 ret =3D rzv2h_icu_parse_interrupts(rzv2h_icu_data, node); if (ret) { - dev_err(&pdev->dev, "cannot parse interrupts: %d\n", ret); + dev_err(dev, "cannot parse interrupts: %d\n", ret); return ret; } =20 - resetn =3D devm_reset_control_get_exclusive_deasserted(&pdev->dev, NULL); + resetn =3D devm_reset_control_get_exclusive_deasserted(dev, NULL); if (IS_ERR(resetn)) { ret =3D PTR_ERR(resetn); - dev_err(&pdev->dev, "failed to acquire deasserted reset: %d\n", ret); + dev_err(dev, "failed to acquire deasserted reset: %d\n", ret); return ret; } =20 - ret =3D devm_pm_runtime_enable(&pdev->dev); + ret =3D devm_pm_runtime_enable(dev); if (ret < 0) { - dev_err(&pdev->dev, "devm_pm_runtime_enable failed, %d\n", ret); + dev_err(dev, "devm_pm_runtime_enable failed, %d\n", ret); return ret; } =20 - ret =3D pm_runtime_resume_and_get(&pdev->dev); + ret =3D pm_runtime_resume_and_get(dev); if (ret < 0) { - dev_err(&pdev->dev, "pm_runtime_resume_and_get failed: %d\n", ret); + dev_err(dev, "pm_runtime_resume_and_get failed: %d\n", ret); return ret; } =20 raw_spin_lock_init(&rzv2h_icu_data->lock); =20 irq_domain =3D irq_domain_create_hierarchy(parent_domain, 0, ICU_NUM_IRQ, - dev_fwnode(&pdev->dev), &rzv2h_icu_domain_ops, + dev_fwnode(dev), &rzv2h_icu_domain_ops, rzv2h_icu_data); if (!irq_domain) { - dev_err(&pdev->dev, "failed to add irq domain\n"); + dev_err(dev, "failed to add irq domain\n"); ret =3D -ENOMEM; goto pm_put; } @@ -616,12 +617,12 @@ static int rzv2h_icu_probe_common(struct platform_dev= ice *pdev, struct device_no =20 /* * coccicheck complains about a missing put_device call before returning,= but it's a false - * positive. We still need &pdev->dev after successfully returning from t= his function. + * positive. We still need dev after successfully returning from this fun= ction. */ return 0; =20 pm_put: - pm_runtime_put(&pdev->dev); + pm_runtime_put(dev); =20 return ret; } --=20 2.52.0 From nobody Mon Feb 9 16:04:53 2026 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (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 DC3664A5B0C for ; Wed, 21 Jan 2026 15:01:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769007717; cv=none; b=tbyD+816YzvJxrInDtA8GBNJQyipnD+7UTZ6UQ1arw646Dx0u17b0Gp9xRPwL/4hZU9o7/oio3TypjY1nbh6djAQkEp9cdvwqKfdwU8J4rew7RdI4xv2RZVuv4BnsFAofrgXNpKugl2D/6nBKXMd+c4hZucBzjclOP3sfaX6dKQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769007717; c=relaxed/simple; bh=Uv/AGRuhXvq3F9DY+5eCJmGmm21g50CP40fZHe9h8kw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fZoffXsyj/iKVy1x0w5P1d7usIwmktUUmf4B4RSnJZi0SFoASbFeMFccaOi+WSLc/9GMgNTAIsTtyT7u+f2qSsr+b3hCqWwXv6e/gC0vAGj3Xq3y4avwC2oBi/pzi3K9gX4+eKoyG6QUc94i7df0bazyY9JNUKW5fEtzb7K5RiI= 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=AYTf7pOq; arc=none smtp.client-ip=209.85.128.42 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="AYTf7pOq" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-47edd6111b4so64595245e9.1 for ; Wed, 21 Jan 2026 07:01:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769007714; x=1769612514; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JVOkMNI/Fpx1qxHV4Yo6OdiJq8KEdcXkySh96FrgdkQ=; b=AYTf7pOqKW0HwC5fw8pHUYAn26Wo4BS6lZVi7oeq5urwvEMQ+dQLiVCS4Jj3ZVLU94 YnUaIx2DlSlYkx8mTxhOvb1CLbR41uIFfUbmjvJb6+MvfZwOqBix4b4gv3BUcQt3hrNu PhmUvBLB1l/S4KZAXEsHxpKctySMogxPQssvQOjCrqjU+lMqsECd0rK5tAuba+s9V0Ll NLN4dLwpav7q8zUt4On2WWtirx0M5SuW7bZ7THLGww2uuwgoMovjcAlt/Vm0h22jlZlS ZQb6skTllaXQWEPR6LItHHnW1mNIkcgrIqXq5PxTfaHftR6dgifYy7TLLksse9SKEJhG R/7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769007714; x=1769612514; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=JVOkMNI/Fpx1qxHV4Yo6OdiJq8KEdcXkySh96FrgdkQ=; b=dSBSetIOApT5DpIdQkouQG8xQX+NRHxuUQxJcO6ewOiYkVD4YM6CPmYuAF+U5blaUS NQxI0IxW1vocIuT0mZEULqzgx2+LCpCnJC8IY9PgQq2pyFrKDI6gYwgpOR6AvbXxfw4N h8IUSJwIhKngmUlnHSTR+Nd8uJa2pUUKyC0nAeFxjXysH3VDLyi6JgbzWMJ1XO5flZ9N U5gEIuvXuTwt1evKeodZ1tMVic8sN7Lb9qP+TlukMFBbMA4nQukFDlh8dBz653meUyqK 2y2YHawvXkt+h1ZwiTVeIPjzWpnJtrlr1FxMAQ1TObxc8rITXh88ZRL9PE9eGrV3y8JM YnsQ== X-Gm-Message-State: AOJu0YwxsYfg8r0SmuezXogdysRL0SWWdH5mjOq4RzvevDYxz7czsWtp SgTYXBtkqJIAkCvyQe3U/vkJmOPGSCD7av0nbrLRevnZpovim8oxdpum X-Gm-Gg: AZuq6aJTLAoAXQSfdes8Bjd26mnQzLnUlIaxRNG+K8i7rFDQ93twhWELlojHlLlPuqy SG9UaUofVTqiYdX194eelyOcC4fX4BXaGEA03Hjb8DU6zfbkKyVzoTX5w7Yts/8dBZJeb/s91bQ 0yW/E9OUMFXdBhu9xuuuBEYkzh1ePFxl/eOHXgmzLLw5GC7J68gMg74bXSMIcCmpnMrcx+Uv571 7NlaQwzTniG3BJcrfSk9lqv6YYF7ELTt1QB+eXcoEdwpMDKaZd8TDhgwBhKbjOndVS5DG5uPOBe oHx6Z9ppKuLdU8/IB4N1LYXhvN7HPqf2a/wsksL/6fMGvjEYfSecxxMdXYhwW8Uk/kzIeO65Rg8 6T21aWx3LoxX3WUeCL4MkRrgiAQTXbI+r5CC2emwP76/OmyRd1brAw8VKDP5lTNqSS/LjQPth6T I+XsuuJg/b62zZXgywWorMn/rP9orMtApcGmurCnpW+XX9eUJZ0xr0+IxFqtAiFnj8Yald/uVsv WYcDuf9Xzq2fJXNkkS2RslBVVxSNalr X-Received: by 2002:a05:600d:644f:10b0:47b:da85:b9ef with SMTP id 5b1f17b1804b1-4801e2fef40mr219703485e9.16.1769007713835; Wed, 21 Jan 2026 07:01:53 -0800 (PST) Received: from iku.example.org ([2a06:5906:61b:2d00:3190:c653:bb13:4ca]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48042b6a3e2sm24787585e9.1.2026.01.21.07.01.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jan 2026 07:01:53 -0800 (PST) From: Prabhakar X-Google-Original-From: Prabhakar To: Thomas Gleixner , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH 3/6] irqchip/renesas-rzv2h: Switch to using dev_err_probe() Date: Wed, 21 Jan 2026 15:01:34 +0000 Message-ID: <20260121150137.3364865-4-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260121150137.3364865-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20260121150137.3364865-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Make use of dev_err_probe() to simplify rzv2h_icu_probe_common(). Keep dev_err() for -ENOMEM paths, as dev_err_probe() does not print for allocation failures, ensuring they remain visible in logs. Signed-off-by: Lad Prabhakar --- drivers/irqchip/irq-renesas-rzv2h.c | 32 ++++++++++------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/drivers/irqchip/irq-renesas-rzv2h.c b/drivers/irqchip/irq-rene= sas-rzv2h.c index 766b981cf3d8..4aa772ba1a1f 100644 --- a/drivers/irqchip/irq-renesas-rzv2h.c +++ b/drivers/irqchip/irq-renesas-rzv2h.c @@ -560,10 +560,8 @@ static int rzv2h_icu_probe_common(struct platform_devi= ce *pdev, struct device_no int ret; =20 parent_domain =3D irq_find_host(parent); - if (!parent_domain) { - dev_err(dev, "cannot find parent domain\n"); - return -ENODEV; - } + if (!parent_domain) + return dev_err_probe(dev, -ENODEV, "cannot find parent domain\n"); =20 rzv2h_icu_data =3D devm_kzalloc(dev, sizeof(*rzv2h_icu_data), GFP_KERNEL); if (!rzv2h_icu_data) @@ -576,29 +574,21 @@ static int rzv2h_icu_probe_common(struct platform_dev= ice *pdev, struct device_no return PTR_ERR(rzv2h_icu_data->base); =20 ret =3D rzv2h_icu_parse_interrupts(rzv2h_icu_data, node); - if (ret) { - dev_err(dev, "cannot parse interrupts: %d\n", ret); - return ret; - } + if (ret) + return dev_err_probe(dev, ret, "cannot parse interrupts\n"); =20 resetn =3D devm_reset_control_get_exclusive_deasserted(dev, NULL); - if (IS_ERR(resetn)) { - ret =3D PTR_ERR(resetn); - dev_err(dev, "failed to acquire deasserted reset: %d\n", ret); - return ret; - } + if (IS_ERR(resetn)) + return dev_err_probe(dev, PTR_ERR(resetn), + "failed to acquire deasserted reset\n"); =20 ret =3D devm_pm_runtime_enable(dev); - if (ret < 0) { - dev_err(dev, "devm_pm_runtime_enable failed, %d\n", ret); - return ret; - } + if (ret < 0) + return dev_err_probe(dev, ret, "devm_pm_runtime_enable failed\n"); =20 ret =3D pm_runtime_resume_and_get(dev); - if (ret < 0) { - dev_err(dev, "pm_runtime_resume_and_get failed: %d\n", ret); - return ret; - } + if (ret < 0) + return dev_err_probe(dev, ret, "pm_runtime_resume_and_get failed\n"); =20 raw_spin_lock_init(&rzv2h_icu_data->lock); =20 --=20 2.52.0 From nobody Mon Feb 9 16:04:53 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (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 2EAD44ADD87 for ; Wed, 21 Jan 2026 15:01:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769007718; cv=none; b=TDq8krkvuWoPOeiAtLVZ8nnYrVQOyhdNuKve1jBS2wpbcT7uJA1WNbisgvgHB+PMsI65DhY+oQEe6oxSy5wu0rpPGW0mxN1b5a26RQs9nPMAcQzqrK4Y4v7XyuKuw7puel2XrnvFm2y+ZqreqBIaxwy7Inmex+qqba7mBZ3HzoY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769007718; c=relaxed/simple; bh=Lp2YJ0PezC4nKDv7MELIBjmb1QIoCP8pUas3MujftBc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DFrps882ZSUb68IWkX2YbqOKeSlWT5OV0JwEz78an8h4Nz9AuMeXil6ozx3HumF6Juqm40TWM3h4zi14ThQ/NaY6wf9a4X1aXR25HufaHUDCSnPgubtAxOsHA0/EynUzthELyBfVebofOanC/s8dMr7vw9eVgDWg59WnFvZgTvM= 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=YHg3TiUT; arc=none smtp.client-ip=209.85.128.46 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="YHg3TiUT" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-4801d1daf53so50573615e9.2 for ; Wed, 21 Jan 2026 07:01:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769007715; x=1769612515; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=EqJ5YCB+4/8IUCK8PTW5lk2KQTAlqq5CiWq5HltU7kM=; b=YHg3TiUTaflUdxAQvnEA5+DDGEx2tzdXthfz1cFEeiNS9vMsVBriRN1OSWceh9H/m9 SeO2eo1c6PP9ZS4xYhLiyizHLfMWOIElJT1JcHZln7/GleBjIDEfqO7EngDh4d+iQaq7 H4akfZud8SGQ9P3oHZmERDOAW0JRrtDIl7e/kTt/h6blt8eYNtuyI3GVaI0KulksGS8t w6QeBYiUv7Dyl+s8/R4t9jkIFolVv1ApUhiHlb7QhkjWRq9rUBpmLnAXYYE7jUwF1OLO RN2dySFH5GhZIFyYTdAezlc9J3UKFbeu9GGloFKrwZiwKp7KJ33zp+sEjjaJPxfI3a68 MLTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769007715; x=1769612515; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=EqJ5YCB+4/8IUCK8PTW5lk2KQTAlqq5CiWq5HltU7kM=; b=XjP5oUWBLvJ2S6zJpnCSt5sq9UDp3ZKs3bo8TpFMDXu657Bz8ToRsmH2Ju332tIdiH L5ILOnxm1xR63vd8BvZVZFbDjFH8oigUD5kLoVKMVqaFbOmwEuEZkSsCR9l6D+JkYLQs 49cfB/iBd28KUu8keHZSshQCO0XFo48LTl38Tmxt14xtWfQ/XDy/bdoEDPzdFwCt9XiI 7z0rHrS3N+Gn7WWF6sX9f/zasQP7QYgcrDNo3W6FsaBnkmMqDfypBRPLGjAOPcMAevfz qDAi+YDjlaBFulWw7O0KU+nJyBx4f0ZGG8aUUS8Au4ShSRFJeo0Ge3X2gfJeUUDRhS7r wtqA== X-Gm-Message-State: AOJu0YwpGOph4frvaditC7gwze8Nd/ZMTGWbo8+0z//evt0zCKOHBTI3 jw2+/1Ss/rTX9C/PIfagZJ8HJosyXdbgl+a71wIMZW4QHKYL6ANXCzGG X-Gm-Gg: AZuq6aJfGyG/7fV2FYhNn4Mkm7z1Exj7oi7ToXHNNo+LAfW98gIEZtpOvznAgVJBhXX PgNf1aK3TsZdbiqEtEApWrQEdPzDXYZfowlOdI1gCYFmRVNxCd1uYT5Zylyo3A7edFfQ6N/uAmp m6PTcYPruVpQs8Y1ks/Cue0UKK7uoDRZdq+YqQlKZkai4OsY++3QNrKQonKUHIBNYJBSbFE7Il8 TMqravXgVmwz8RX0m6i5UdyNev5xpvzvjNwKRV0olfEKl2T7lv9bEf57km3bTIYlnx5F8NUVqAB h5wkAWuwJ7D29xgJCu0XQefa7339vHPXZY6wAlLvOmr1pjn/kdqzry3n2T8bRM/gaMp56AseTy5 DPjcQeO/4mLd3rzbuVUBteTR52+58RGiu2u/I5eZuNcwToTYoFRM1jRgo0OuKMe50HpkObHnFWz FD9ZXG4dHdBvZI42EGfiJZnMrKKxe9ruoLdYzX6UAXTXfeqfeedOZTig+eAsRN2Z4N+jBsjZlXM xOJq4ZKT0I5jG3h9RevWW09pUNkXx2W X-Received: by 2002:a05:600c:6098:b0:480:3a72:5238 with SMTP id 5b1f17b1804b1-4803a7253d1mr123453625e9.30.1769007714877; Wed, 21 Jan 2026 07:01:54 -0800 (PST) Received: from iku.example.org ([2a06:5906:61b:2d00:3190:c653:bb13:4ca]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48042b6a3e2sm24787585e9.1.2026.01.21.07.01.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jan 2026 07:01:54 -0800 (PST) From: Prabhakar X-Google-Original-From: Prabhakar To: Thomas Gleixner , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH 4/6] irqchip/renesas-rzv2h: Add CA55 software interrupt support Date: Wed, 21 Jan 2026 15:01:35 +0000 Message-ID: <20260121150137.3364865-5-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260121150137.3364865-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20260121150137.3364865-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar The Renesas RZ/V2H ICU provides a software interrupt register (ICU_SWINT) that allows software to explicitly assert interrupts toward individual CA55 cores. Writing BIT(n) to ICU_SWINT triggers the corresponding interrupt. Introduce a debug mechanism to trigger software interrupts on individual Cortex-A55 cores via the RZ/V2H ICU. The interface is gated behind CONFIG_DEBUG_FS and a module parameter to ensure it only exists when explicitly enabled. Signed-off-by: Lad Prabhakar --- drivers/irqchip/irq-renesas-rzv2h.c | 111 ++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/drivers/irqchip/irq-renesas-rzv2h.c b/drivers/irqchip/irq-rene= sas-rzv2h.c index 4aa772ba1a1f..7d3ce1d762f0 100644 --- a/drivers/irqchip/irq-renesas-rzv2h.c +++ b/drivers/irqchip/irq-renesas-rzv2h.c @@ -11,16 +11,23 @@ =20 #include #include +#include +#include #include +#include #include #include #include #include +#include +#include +#include #include #include #include #include #include +#include =20 /* DT "interrupts" indexes */ #define ICU_IRQ_START 1 @@ -40,6 +47,7 @@ #define ICU_TSCLR 0x24 #define ICU_TITSR(k) (0x28 + (k) * 4) #define ICU_TSSR(k) (0x30 + (k) * 4) +#define ICU_SWINT 0x130 #define ICU_DMkSELy(k, y) (0x420 + (k) * 0x20 + (y) * 4) #define ICU_DMACKSELk(k) (0x500 + (k) * 4) =20 @@ -90,6 +98,13 @@ #define ICU_RZG3E_TSSEL_MAX_VAL 0x8c #define ICU_RZV2H_TSSEL_MAX_VAL 0x55 =20 +#define ICU_SWINT_NUM 4 + +static bool enable_icu_debug; +module_param_named(debug, enable_icu_debug, bool, 0644); +MODULE_PARM_DESC(debug, + "Enable RZ/V2H ICU debug/diagnostic interrupts (default: false)"); + /** * struct rzv2h_irqc_reg_cache - registers cache (necessary for suspend/re= sume) * @nitsr: ICU_NITSR register @@ -550,6 +565,98 @@ static int rzv2h_icu_parse_interrupts(struct rzv2h_icu= _priv *priv, struct device return 0; } =20 +static irqreturn_t rzv2h_icu_swint_irq(int irq, void *data) +{ + u8 cpu =3D *(u8 *)data; + + pr_debug("SWINT interrupt for CA55 core %u\n", cpu); + return IRQ_HANDLED; +} + +static void rzv2h_icu_remove_debugfs(void *file) +{ + debugfs_remove(file); +} + +static ssize_t rzv2h_icu_swint_write(struct file *file, const char __user = *ubuf, + size_t len, loff_t *ppos) +{ + struct rzv2h_icu_priv *priv =3D file->private_data; + unsigned long cpu; + char buf[32]; + int ret; + + len =3D min(len, sizeof(buf) - 1); + if (copy_from_user(buf, ubuf, len)) + return -EFAULT; + buf[len] =3D '\0'; + + ret =3D kstrtoul(strim(buf), 0, &cpu); + if (ret) + return ret; + + if (cpu >=3D ICU_SWINT_NUM || cpu >=3D nr_cpu_ids) + return -EINVAL; + + if (!cpu_online(cpu)) + return -ENODEV; + + writel(BIT(cpu), priv->base + ICU_SWINT); + return len; +} + +static const struct file_operations rzv2h_icu_swint_fops =3D { + .open =3D simple_open, + .write =3D rzv2h_icu_swint_write, + .llseek =3D noop_llseek, +}; + +static int rzv2h_icu_setup_debug_irqs(struct platform_device *pdev) +{ + static const u8 swint_idx[ICU_SWINT_NUM] =3D { 0, 1, 2, 3 }; + static const char * const rzv2h_swint_names[] =3D { + "int-ca55-0", "int-ca55-1", + "int-ca55-2", "int-ca55-3", + }; + struct device *dev =3D &pdev->dev; + struct dentry *dentry; + struct dentry *dir; + unsigned int i; + int icu_irq; + int ret; + + if (!IS_ENABLED(CONFIG_DEBUG_FS) || !enable_icu_debug) + return 0; + + dev_info(dev, "RZ/V2H ICU debug interrupts enabled\n"); + + for (i =3D 0; i < ICU_SWINT_NUM; i++) { + icu_irq =3D platform_get_irq_byname(pdev, rzv2h_swint_names[i]); + if (icu_irq < 0) + return dev_err_probe(dev, icu_irq, + "Failed to get %s IRQ\n", rzv2h_swint_names[i]); + ret =3D devm_request_irq(dev, icu_irq, rzv2h_icu_swint_irq, 0, dev_name(= dev), + (void *)&swint_idx[i]); + if (ret) + return dev_err_probe(dev, ret, "Failed to request SWINT IRQ: %s\n", + rzv2h_swint_names[i]); + } + + dir =3D debugfs_create_dir("rzv2h_icu", NULL); + if (IS_ERR(dir)) + return PTR_ERR(dir); + + ret =3D devm_add_action_or_reset(dev, rzv2h_icu_remove_debugfs, dir); + if (ret) + return ret; + + dentry =3D debugfs_create_file("swint", 0200, dir, rzv2h_icu_data, &rzv2h= _icu_swint_fops); + if (IS_ERR(dentry)) + return PTR_ERR(dentry); + + return devm_add_action_or_reset(dev, rzv2h_icu_remove_debugfs, dentry); +} + static int rzv2h_icu_probe_common(struct platform_device *pdev, struct dev= ice_node *parent, const struct rzv2h_hw_info *hw_info) { @@ -605,6 +712,10 @@ static int rzv2h_icu_probe_common(struct platform_devi= ce *pdev, struct device_no =20 register_syscore(&rzv2h_irqc_syscore); =20 + ret =3D rzv2h_icu_setup_debug_irqs(pdev); + if (ret) + goto pm_put; + /* * coccicheck complains about a missing put_device call before returning,= but it's a false * positive. We still need dev after successfully returning from this fun= ction. --=20 2.52.0 From nobody Mon Feb 9 16:04:53 2026 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (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 262E54ADDA2 for ; Wed, 21 Jan 2026 15:01:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769007721; cv=none; b=in0oCQS0n7gbjiVeH5xiTneHN8C7nbckAdNX00XOjv37HhyrqUweYvRBCSjWqM3cckZ85jymscZslEcgjWyN8A/Fi0xI4GADsYRoRHMZy5KZ//WkCqMww7/+adbBCRyNvjZ5mq1Sn6W80tWOw+SAXBsppq1nXU7mGUtYflxIv+w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769007721; c=relaxed/simple; bh=ZHgJbN8Xpa/1C1FZZKvYY2GnxRx8RIG+qmp7yJymjys=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FD02kMFxxKBg15QCI5rQWYM6VrFtg9leYyLgntk45hYf1sph96nBVme3JlqogfYzFZM1K463gPiwjSrTlb45PDkQhbPPRSVSV9wIiNu6K31qCbvOhwbZf7VbxVANYzjkJJqKk2JvU2EkV3sFcNP1Eht/L2CJKwHzeOOyrGsol6A= 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=Kd1Cj9+J; arc=none smtp.client-ip=209.85.128.42 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="Kd1Cj9+J" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-48039fdc8aeso15370825e9.3 for ; Wed, 21 Jan 2026 07:01:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769007717; x=1769612517; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=K5DmHDY3DPc4B0A5rMMRb7kro45hNcXliNwW1gu8UJU=; b=Kd1Cj9+JKpECLnNm+pvyHrwYWUA+jaRlXHfGG4231NpWn4bgVgmR8VbdWb9R2G6+nz mEOYEiWLme8wcnkue7n0JLQHs5DhOFQuyOPp1gjlbs14C1r9jPGbOp30NXDo7J43q95i pgv3GPSG349qCW60fQkWlaJRh1lbt8kmuyvZgqLX952T+c9Z6wWXIr8GGDLioDsmtbMe 1a5wAsMffvRJjpUfWAo6VNfkiNvYiz2tOaUNzJZKc3M89+QLvfu3CYoIWlHo3DevazUE UB0HYqP71N7tsYRrTsMPQZs0EtAP6JMiUwCDNfqcqriVmEkE0tl2myyo7C42pWllVYdU ajPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769007717; x=1769612517; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=K5DmHDY3DPc4B0A5rMMRb7kro45hNcXliNwW1gu8UJU=; b=KwNVJFK4A1ht+xN1XUqgpJKdSQ/fO+PO9u5X6ntJz9JoK/AgjUcASACEAf1nJZmieE sRRVpjjNz0I5S+moD5IrMhL6Hjp46j526OIWyOxE8TVHs3EJ96hHTSoZYkeeWLA6NvpI KPsuv8NwgSjw4rGKO4N9RdnMv9Sgjz1j3MzY/s815RC83g+kW0nD9gqBe3ki4BuCg3gJ uUgLfCp42W4rz4V5EpoplCgaXoKEChnP7TpSErI4CDMDXG2lYdJMQImEFsvRUUGN5LDK I1N568Tl+Eow0l1ENZnf+C+kLYiDGAeXNMl2QNtPm75J1LzYJmEvanc5fXOkGvvM16vg 3j8g== X-Gm-Message-State: AOJu0YzgrGMPse41ZcVljVB2+052eX78VT0zX22GfZQmNru6rri+HIr6 b+bMzr7S51I9k0gsHsKeTseJp+ZDdTJWMMYrp7FIuohhA/UeGWjqNPF7 X-Gm-Gg: AZuq6aIpOOT52OiKOty8lT8yFdU4wkxrEDqyIGuu6Kgz4yiL+4gFTeCm3F+5BbCQeAe 3zuKZ6h4KC7f3sB/ocKIy93lQZcpgxILNFYq5fzpBryAB1mCPdxICzmGBOr21drcFn7Qzwub/MF HKToqD4SntqHmUaR/tRQsmjyy4BwJ+FjW21BJw7brujxn9k49UhIpJJ6ElO9ONM02keTpLk1TfO BFJ+O4AP7yMcCgBmQXDnZUu0U2884j0OVFEBfDACrsp9GuQbWsMwYVXhQ0sV8Z1yPDapUYoZbyI WsReG1k/pYu9i4gXbyk4C5EdTk/xFpxv5YokwolHqjjgbaFgFeVIbvC8D6V6UCHVdtrirJ+IHjY egB607LFTeAixWT77Pbq0DyXLrtSFRZMADmLEbtLPOFsJFpIUetTdIAPVDPpea4vEnmHIYiF1cA I4tRdb8nNInE8YaZvetlYnQKERwK0r716ZFF+sF+PsE7eWkOhq0HnSw+MkiZ7u5cP5uw6M85Ecm 9Oqz1dt4ydJWza36MZnFakpJ1dHvtoJ X-Received: by 2002:a05:600c:528c:b0:47e:e61d:b8d2 with SMTP id 5b1f17b1804b1-4803e7f18d4mr75543255e9.27.1769007716605; Wed, 21 Jan 2026 07:01:56 -0800 (PST) Received: from iku.example.org ([2a06:5906:61b:2d00:3190:c653:bb13:4ca]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48042b6a3e2sm24787585e9.1.2026.01.21.07.01.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jan 2026 07:01:55 -0800 (PST) From: Prabhakar X-Google-Original-From: Prabhakar To: Thomas Gleixner , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH 5/6] irqchip/renesas-rzv2h: Handle ICU error IRQ and add SWPE trigger Date: Wed, 21 Jan 2026 15:01:36 +0000 Message-ID: <20260121150137.3364865-6-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260121150137.3364865-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20260121150137.3364865-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Handle the RZ/V2H ICU error interrupt to help diagnose latched bus, ECC RAM, and CA55/IP error conditions during bring-up and debugging. When debug support is enabled, register the error IRQ handler and provide a debugfs write interface to trigger pseudo error generation via ICU_SWPE for validation. Account for SoC differences in ECC RAM error register coverage so the handler only iterates over valid ECC status/clear banks, and route the RZ/V2N compatible to a probe path with the correct ECC range while keeping the existing RZ/V2H and RZ/G3E handling. Signed-off-by: Lad Prabhakar --- drivers/irqchip/irq-renesas-rzv2h.c | 141 +++++++++++++++++++++++++++- 1 file changed, 140 insertions(+), 1 deletion(-) diff --git a/drivers/irqchip/irq-renesas-rzv2h.c b/drivers/irqchip/irq-rene= sas-rzv2h.c index 7d3ce1d762f0..6dc297220f05 100644 --- a/drivers/irqchip/irq-renesas-rzv2h.c +++ b/drivers/irqchip/irq-renesas-rzv2h.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -47,7 +48,15 @@ #define ICU_TSCLR 0x24 #define ICU_TITSR(k) (0x28 + (k) * 4) #define ICU_TSSR(k) (0x30 + (k) * 4) +#define ICU_BEISR(k) (0x70 + (k) * 4) +#define ICU_BECLR(k) (0x80 + (k) * 4) +#define ICU_EREISR(k) (0x90 + (k) * 4) +#define ICU_ERCLR(k) (0xE0 + (k) * 4) #define ICU_SWINT 0x130 +#define ICU_ERINTA55CTL(k) (0x338 + (k) * 4) +#define ICU_ERINTA55CRL(k) (0x348 + (k) * 4) +#define ICU_ERINTA55MSK(k) (0x358 + (k) * 4) +#define ICU_SWPE 0x370 #define ICU_DMkSELy(k, y) (0x420 + (k) * 0x20 + (y) * 4) #define ICU_DMACKSELk(k) (0x500 + (k) * 4) =20 @@ -99,6 +108,9 @@ #define ICU_RZV2H_TSSEL_MAX_VAL 0x55 =20 #define ICU_SWINT_NUM 4 +#define ICU_SWPE_NUM 16 +#define ICU_NUM_BE 4 +#define ICU_NUM_A55ERR 4 =20 static bool enable_icu_debug; module_param_named(debug, enable_icu_debug, bool, 0644); @@ -123,12 +135,16 @@ struct rzv2h_irqc_reg_cache { * @t_offs: TINT offset * @max_tssel: TSSEL max value * @field_width: TSSR field width + * @ecc_start: Start index of ECC RAM interrupts + * @ecc_end: End index of ECC RAM interrupts */ struct rzv2h_hw_info { const u8 *tssel_lut; u16 t_offs; u8 max_tssel; u8 field_width; + u8 ecc_start; + u8 ecc_end; }; =20 /* DMAC */ @@ -565,6 +581,48 @@ static int rzv2h_icu_parse_interrupts(struct rzv2h_icu= _priv *priv, struct device return 0; } =20 +static irqreturn_t rzv2h_icu_error_irq(int irq, void *data) +{ + struct rzv2h_icu_priv *priv =3D data; + const struct rzv2h_hw_info *hw_info =3D priv->info; + void __iomem *base =3D priv->base; + unsigned int k; + u32 st; + + /* 1) Bus errors (BEISR0..3) */ + for (k =3D 0; k < ICU_NUM_BE; k++) { + st =3D readl(base + ICU_BEISR(k)); + if (!st) + continue; + + writel(st, base + ICU_BECLR(k)); + pr_debug("rzv2h-icu: BUS error k=3D%u status=3D0x%08x\n", k, st); + } + + /* 2) ECC RAM errors (EREISR0..X) */ + for (k =3D hw_info->ecc_start; k <=3D hw_info->ecc_end; k++) { + st =3D readl(base + ICU_EREISR(k)); + if (!st) + continue; + + writel(st, base + ICU_ERCLR(k)); + pr_debug("rzv2h-icu: ECC error k=3D%u status=3D0x%08x\n", k, st); + } + + /* 3) IP/CA55 error interrupt status (ERINTA55CTL0..3) */ + for (k =3D 0; k < ICU_NUM_A55ERR; k++) { + st =3D readl(base + ICU_ERINTA55CTL(k)); + if (!st) + continue; + + /* there is no relation with status bits so clear all the interrupts */ + writel(0xffffffff, base + ICU_ERINTA55CRL(k)); + pr_debug("rzv2h-icu: IP/CA55 error k=3D%u status=3D0x%08x\n", k, st); + } + + return IRQ_HANDLED; +} + static irqreturn_t rzv2h_icu_swint_irq(int irq, void *data) { u8 cpu =3D *(u8 *)data; @@ -611,13 +669,47 @@ static const struct file_operations rzv2h_icu_swint_f= ops =3D { .llseek =3D noop_llseek, }; =20 +static ssize_t rzv2h_icu_swpe_write(struct file *file, + const char __user *ubuf, + size_t len, loff_t *ppos) +{ + struct rzv2h_icu_priv *priv =3D file->private_data; + unsigned long swpe; + char buf[32]; + int ret; + + len =3D min(len, sizeof(buf) - 1); + if (copy_from_user(buf, ubuf, len)) + return -EFAULT; + buf[len] =3D '\0'; + + ret =3D kstrtoul(strim(buf), 0, &swpe); + if (ret) + return ret; + + if (swpe >=3D ICU_SWPE_NUM) + return -EINVAL; + + writel(BIT(swpe), priv->base + ICU_SWPE); + return len; +} + +static const struct file_operations rzv2h_icu_swpe_fops =3D { + .open =3D simple_open, + .write =3D rzv2h_icu_swpe_write, + .llseek =3D noop_llseek, +}; + static int rzv2h_icu_setup_debug_irqs(struct platform_device *pdev) { + const struct rzv2h_hw_info *hw_info =3D rzv2h_icu_data->info; static const u8 swint_idx[ICU_SWINT_NUM] =3D { 0, 1, 2, 3 }; static const char * const rzv2h_swint_names[] =3D { "int-ca55-0", "int-ca55-1", "int-ca55-2", "int-ca55-3", }; + static const char *icu_err =3D "icu-error-ca55"; + void __iomem *base =3D rzv2h_icu_data->base; struct device *dev =3D &pdev->dev; struct dentry *dentry; struct dentry *dir; @@ -654,6 +746,36 @@ static int rzv2h_icu_setup_debug_irqs(struct platform_= device *pdev) if (IS_ERR(dentry)) return PTR_ERR(dentry); =20 + ret =3D devm_add_action_or_reset(dev, rzv2h_icu_remove_debugfs, dentry); + if (ret) + return ret; + + icu_irq =3D platform_get_irq_byname(pdev, icu_err); + if (icu_irq < 0) + return dev_err_probe(dev, icu_irq, "Failed to get %s IRQ\n", icu_err); + + /* Unmask and clear all IP/CA55 error interrupts */ + for (i =3D 0; i < ICU_NUM_A55ERR; i++) { + writel(0xffffff, base + ICU_ERINTA55CRL(i)); + writel(0x0, base + ICU_ERINTA55MSK(i)); + } + + /* Clear all Bus errors */ + for (i =3D 0; i < ICU_NUM_BE; i++) + writel(0xffffffff, base + ICU_BECLR(i)); + + /* Clear all ECCRAM errors */ + for (i =3D hw_info->ecc_start; i <=3D hw_info->ecc_end; i++) + writel(0xffffffff, base + ICU_ERCLR(i)); + + ret =3D devm_request_irq(dev, icu_irq, rzv2h_icu_error_irq, 0, dev_name(d= ev), rzv2h_icu_data); + if (ret) + return dev_err_probe(dev, ret, "Failed to request %s IRQ\n", icu_err); + + dentry =3D debugfs_create_file("swpe", 0200, dir, rzv2h_icu_data, &rzv2h_= icu_swpe_fops); + if (IS_ERR(dentry)) + return PTR_ERR(dentry); + return devm_add_action_or_reset(dev, rzv2h_icu_remove_debugfs, dentry); } =20 @@ -759,12 +881,24 @@ static const struct rzv2h_hw_info rzg3e_hw_params =3D= { .t_offs =3D ICU_RZG3E_TINT_OFFSET, .max_tssel =3D ICU_RZG3E_TSSEL_MAX_VAL, .field_width =3D 16, + .ecc_start =3D 1, + .ecc_end =3D 4, +}; + +static const struct rzv2h_hw_info rzv2n_hw_params =3D { + .t_offs =3D 0, + .max_tssel =3D ICU_RZV2H_TSSEL_MAX_VAL, + .field_width =3D 8, + .ecc_start =3D 0, + .ecc_end =3D 2, }; =20 static const struct rzv2h_hw_info rzv2h_hw_params =3D { .t_offs =3D 0, .max_tssel =3D ICU_RZV2H_TSSEL_MAX_VAL, .field_width =3D 8, + .ecc_start =3D 0, + .ecc_end =3D 11, }; =20 static int rzg3e_icu_probe(struct platform_device *pdev, struct device_nod= e *parent) @@ -772,6 +906,11 @@ static int rzg3e_icu_probe(struct platform_device *pde= v, struct device_node *par return rzv2h_icu_probe_common(pdev, parent, &rzg3e_hw_params); } =20 +static int rzv2n_icu_probe(struct platform_device *pdev, struct device_nod= e *parent) +{ + return rzv2h_icu_probe_common(pdev, parent, &rzv2n_hw_params); +} + static int rzv2h_icu_probe(struct platform_device *pdev, struct device_nod= e *parent) { return rzv2h_icu_probe_common(pdev, parent, &rzv2h_hw_params); @@ -779,7 +918,7 @@ static int rzv2h_icu_probe(struct platform_device *pdev= , struct device_node *par =20 IRQCHIP_PLATFORM_DRIVER_BEGIN(rzv2h_icu) IRQCHIP_MATCH("renesas,r9a09g047-icu", rzg3e_icu_probe) -IRQCHIP_MATCH("renesas,r9a09g056-icu", rzv2h_icu_probe) +IRQCHIP_MATCH("renesas,r9a09g056-icu", rzv2n_icu_probe) IRQCHIP_MATCH("renesas,r9a09g057-icu", rzv2h_icu_probe) IRQCHIP_PLATFORM_DRIVER_END(rzv2h_icu) MODULE_AUTHOR("Fabrizio Castro "); --=20 2.52.0 From nobody Mon Feb 9 16:04:53 2026 Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) (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 5D9494B8DC9 for ; Wed, 21 Jan 2026 15:02:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.67 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769007723; cv=none; b=oJa/LIMc37xb/ke9aCeVS52+B8FEhTazkk+lHwBq13lww04UPbVr8mgHM0TiFSeXFBf1XBYfd7pQp5fhDc53H3gETvPLP/T5GxBJCZG2qiJt7sm10aHDCVYJWnPXUUbzDl4wQIuC2fZrkorSjeQPBHQbOC8HMwfVJ/METcfucNI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769007723; c=relaxed/simple; bh=WEUr572bemRD/PCsTF0v79zIBnpAtF0PcMVYQ9ek/KE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Rq6maGGXsYrH8arzlUD8BuavhYXLY8t8MpJdFN9pbxP4INi1Ua9FjBRiaEhAMAoUZTaFB7bpQXcZqJ1jmnMvGqzrigbdUoq21hpBjURZja1bcXxWyf1eZ66pxz8pw0fVl2lUyB/2E5S8hWSIlh6IWUAxhitc+WBpAA3+tTxlYcE= 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=RUw5xN9r; arc=none smtp.client-ip=209.85.128.67 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="RUw5xN9r" Received: by mail-wm1-f67.google.com with SMTP id 5b1f17b1804b1-47ee0291921so48167375e9.3 for ; Wed, 21 Jan 2026 07:02:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769007719; x=1769612519; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Kdwe6zKjL1wvqm8jrpX494VL40XG7wHSgEylhfestXg=; b=RUw5xN9ruL0d7cJGI2dffExqh+Y9K3eaSDUHpXBVJ8eovRp241yQ8bUImmdBdrqX/T U9IuohDNj4RKWfzHiE2hZhnQ8zFQg9+z08ur1S44/kfZGLGLUweBYWK7czJBWHNvzT6d C24v3kvzpI8tKu9fmVmUE/q/GYzlQe/Cet4WfwHTx+QSgQ0Nzxc9eTXoRde4dwxAyvi2 ABVwQqUe/Ec+VZl/lffHFjg0hiIvrjXCEx40mo3qgh6zXZAh+L1QzGc6NLWHl3OsxC9v 0rz/PIhZ/VFAELfPs3+V4ZxFtdcf6hmSQ2EVJsNUMre/YYtjX56tZGWQkDum1U8gzgFR DFaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769007719; x=1769612519; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Kdwe6zKjL1wvqm8jrpX494VL40XG7wHSgEylhfestXg=; b=jtZfxVVpbbqfe872kBHRSQ2P7kZ3PcKQbSygAPer2YjPs9GluA74e0ZsijURRoCeqb t9I9CWKRNSFMnBS5PzCFON/+P5CF3v4Ki16FLfSyUhoxGlZjI8FWX52sXZ8hla1cseL+ 3RXBhc2aOCsj1HYUtMo1uAxTBll6YjDjpa6KLbqwMS00migoBb5+6h1vxyNgZq67u5rb R9KZIKBPRCgCbMRStBZI7JSCWSBxuboSrra2XHacUZk06eGBnWbgVzx/4BiyJ/KD9V+Q zONVK4xIIFLJdyISOHz+WJkLMaTFQN+DHkECO+WEuVGNNE0rWEDn7hQgfsnKIMT3Aqyh iv0A== X-Gm-Message-State: AOJu0YyXhixiF8duCRLsYimRMRtqWCPTkkby62xoLM5KnpKi0+Ps/XU/ 6stQpSc4CwzDPD7/FASaauM8zmVglvm8I9x4cLGXrZhsZ0uO0n5ad1lR X-Gm-Gg: AZuq6aKdJCm2FthRJXDqZZ1mOZdkfbGF+RACeCujedWraAMsa2GBCnbNI8+g+26mT5j 1Nym7fRXrEGY3A0ptlAJ75O6NziBfAqDochj9Sxhf3e+sT1kdEWqVX6TMK+oSYt+3tMviX9ucea 10voox7tzzwigKWuEGcdzhSo2grqHWCgG2qrGgC8fODj4AI+eEy4/AqbZ0rwe0FPoUNm0YgfawW Pi8mXYD4pHRyxWEHjEV7RUla0Gc0laye1j7PE0BBJP/QEbxSYouSiWnSSVHkC9SKlGerp+j+hRG WrTwSYkKcT2aw1o981p0bJl5YoSgzWvpHFWf0LFS/E9TxD7V2qIL2fOqHLXmgsCBF2JI3R7C+3Z TlfXR2DBL1rsO8gD0z5jeFcl8BDACUq14A008gfVAqVKOHYuHLEZ753PflqQqDDW2djrjaMe8aY S3xhaGRBudP4cza9PU4lWzlhFg8z1dX+btYU27weAFYmiKutnWOd72DDU3XKoQqa7HsWNh1DPhq sYANZwdsHSG8xiIXMiHeHp7VeDBJ97Hd3FXj7fBTX4= X-Received: by 2002:a05:600c:c0ce:b0:47e:e78a:c834 with SMTP id 5b1f17b1804b1-4801eb14ffbmr179897085e9.34.1769007718410; Wed, 21 Jan 2026 07:01:58 -0800 (PST) Received: from iku.example.org ([2a06:5906:61b:2d00:3190:c653:bb13:4ca]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48042b6a3e2sm24787585e9.1.2026.01.21.07.01.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jan 2026 07:01:56 -0800 (PST) From: Prabhakar X-Google-Original-From: Prabhakar To: Thomas Gleixner , Philipp Zabel , Geert Uytterhoeven , Magnus Damm Cc: linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH 6/6] Documentation: ABI: Document rzv2h_icu debugfs triggers Date: Wed, 21 Jan 2026 15:01:37 +0000 Message-ID: <20260121150137.3364865-7-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260121150137.3364865-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20260121150137.3364865-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Document the debugfs interface exported by the Renesas RZ/V2H ICU driver to aid bring-up and debugging. Describe the write-only swint and swpe files used to trigger software and pseudo error interrupts. Signed-off-by: Lad Prabhakar --- .../ABI/testing/debugfs-renesas-rzv2h-icu | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Documentation/ABI/testing/debugfs-renesas-rzv2h-icu diff --git a/Documentation/ABI/testing/debugfs-renesas-rzv2h-icu b/Document= ation/ABI/testing/debugfs-renesas-rzv2h-icu new file mode 100644 index 000000000000..8e97f35c3fea --- /dev/null +++ b/Documentation/ABI/testing/debugfs-renesas-rzv2h-icu @@ -0,0 +1,24 @@ +What: /sys/kernel/debug/rzv2h_icu/swint +Date: Jan 2026 +KernelVersion: 6.20 +Contact: Lad Prabhakar +Description: Write-only debugfs file to trigger ICU software interrupts + (ICU_SWINT) targeting CA55 cores. + Writing an integer CPU index 'N' causes the driver to write + BIT(N) to the ICU_SWINT register, which triggers the hardware + software interrupt routed to CA55 core N via the GIC. + Valid values: + 0..3 - trigger SWINT for CA55 core0..core3 + The driver validates that the requested CPU is online before + triggering the interrupt. Writes for offline CPUs fail. + +What: /sys/kernel/debug/rzv2h_icu/swpe +Date: Jan 2026 +KernelVersion: 6.20 +Contact: Lad Prabhakar +Description: Write-only debugfs file to trigger ICU software peripheral + events (ICU_SWPE). + Writing an integer index 'N' causes the driver to write BIT(N) + to the ICU_SWPE register. + Valid values: + 0..15 - assert SWPE bit 0..15 --=20 2.52.0