From: "Heiko Stübner" <heiko@sntech.de>
To: tomeu@tomeuvizoso.net, robh@kernel.org, krzk+dt@kernel.org,
conor+dt@kernel.org, joro@8bytes.org, will@kernel.org,
robin.murphy@arm.com, ulfh@kernel.org, p.zabel@pengutronix.de,
ogabbay@kernel.org, zhangqing@rock-chips.com,
Jiaxing Hu <gahing@gahingwoo.com>
Cc: royalnet026@gmail.com, abel.vesa@oss.qualcomm.com,
sebastian.reichel@collabora.com, sidong.yang@furiosa.ai,
u.kleine-koenig@baylibre.com, chaoyi.chen@rock-chips.com,
diederik@cknow-tech.com, alchark@flipper.net, leonard@lausen.nl,
jeff.hugo@oss.qualcomm.com, rfoss@kernel.org,
dri-devel@lists.freedesktop.org,
linux-rockchip@lists.infradead.org, iommu@lists.linux.dev,
linux-pm@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Jiaxing Hu <gahing@gahingwoo.com>
Subject: Re: [PATCH v15 04/15] accel/rocket: let the core suspend after a reset
Date: Wed, 04 Nov 2026 11:25:30 +0100 [thread overview]
Message-ID: <3373678.NnENhoQgcM@diego> (raw)
In-Reply-To: <20261101082307.151957-5-gahing@gahingwoo.com>
Am Sonntag, 1. November 2026, 09:22:56 Mitteleuropäische Normalzeit schrieb Jiaxing Hu:
> rocket_reset() drops the in-flight job's runtime PM reference with
> pm_runtime_put_noidle(), which requests nothing, so the core does not
> suspend until something else asks and its power domain does not cycle. On
> RK3576 the domain's power-on resets the NPU bus interface; without it the
> IOMMU stops answering and the job after a timeout fails.
>
> Use pm_runtime_put_autosuspend(), as the completion path does. On a ROCK 4D
> the job after a timeout goes from 0 to 128 of 128 channels correct.
>
> Link: https://lore.kernel.org/all/20260819073530.6087-1-royalnet026@gmail.com/
> Fixes: 0810d5ad88a1 ("accel/rocket: Add job submission IOCTL")
> Signed-off-by: Jiaxing Hu <gahing@gahingwoo.com>
> Tested-by: Igor Paunovic <royalnet026@gmail.com> # RK3588, three cores, induced reset, JOB_TIMEOUT_MS=2
> ---
> drivers/accel/rocket/rocket_job.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/accel/rocket/rocket_job.c b/drivers/accel/rocket/rocket_job.c
> index 5b2abf40b618..152a9098634b 100644
> --- a/drivers/accel/rocket/rocket_job.c
> +++ b/drivers/accel/rocket/rocket_job.c
> @@ -467,12 +467,12 @@ rocket_reset(struct rocket_core *core, struct drm_sched_job *bad)
>
> /*
> * No handler is running now, but we might still have stuck jobs. Let's
> - * make sure the PM counters stay balanced by manually calling
> - * pm_runtime_put_noidle().
> + * make sure the PM counters stay balanced by putting the reference the
> + * job took, and request idle while doing it so the core can suspend.
> */
with my comment in patch 3/15 fixed
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
> scoped_guard(mutex, &core->job_lock) {
> if (core->in_flight_job)
> - pm_runtime_put_noidle(core->dev);
> + pm_runtime_put_autosuspend(core->dev);
>
> iommu_detach_group(NULL, core->iommu_group);
>
>
WARNING: multiple messages have this Message-ID (diff)
From: "Heiko Stübner" <heiko@sntech.de>
To: tomeu@tomeuvizoso.net, robh@kernel.org, krzk+dt@kernel.org,
conor+dt@kernel.org, joro@8bytes.org, will@kernel.org,
robin.murphy@arm.com, ulfh@kernel.org, p.zabel@pengutronix.de,
ogabbay@kernel.org, zhangqing@rock-chips.com,
Jiaxing Hu <gahing@gahingwoo.com>
Cc: royalnet026@gmail.com, abel.vesa@oss.qualcomm.com,
sebastian.reichel@collabora.com, sidong.yang@furiosa.ai,
u.kleine-koenig@baylibre.com, chaoyi.chen@rock-chips.com,
diederik@cknow-tech.com, alchark@flipper.net, leonard@lausen.nl,
jeff.hugo@oss.qualcomm.com, rfoss@kernel.org,
dri-devel@lists.freedesktop.org,
linux-rockchip@lists.infradead.org, iommu@lists.linux.dev,
linux-pm@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Jiaxing Hu <gahing@gahingwoo.com>
Subject: Re: [PATCH v15 04/15] accel/rocket: let the core suspend after a reset
Date: Wed, 04 Nov 2026 11:25:30 +0100 [thread overview]
Message-ID: <3373678.NnENhoQgcM@diego> (raw)
In-Reply-To: <20261101082307.151957-5-gahing@gahingwoo.com>
Am Sonntag, 1. November 2026, 09:22:56 Mitteleuropäische Normalzeit schrieb Jiaxing Hu:
> rocket_reset() drops the in-flight job's runtime PM reference with
> pm_runtime_put_noidle(), which requests nothing, so the core does not
> suspend until something else asks and its power domain does not cycle. On
> RK3576 the domain's power-on resets the NPU bus interface; without it the
> IOMMU stops answering and the job after a timeout fails.
>
> Use pm_runtime_put_autosuspend(), as the completion path does. On a ROCK 4D
> the job after a timeout goes from 0 to 128 of 128 channels correct.
>
> Link: https://lore.kernel.org/all/20260819073530.6087-1-royalnet026@gmail.com/
> Fixes: 0810d5ad88a1 ("accel/rocket: Add job submission IOCTL")
> Signed-off-by: Jiaxing Hu <gahing@gahingwoo.com>
> Tested-by: Igor Paunovic <royalnet026@gmail.com> # RK3588, three cores, induced reset, JOB_TIMEOUT_MS=2
> ---
> drivers/accel/rocket/rocket_job.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/accel/rocket/rocket_job.c b/drivers/accel/rocket/rocket_job.c
> index 5b2abf40b618..152a9098634b 100644
> --- a/drivers/accel/rocket/rocket_job.c
> +++ b/drivers/accel/rocket/rocket_job.c
> @@ -467,12 +467,12 @@ rocket_reset(struct rocket_core *core, struct drm_sched_job *bad)
>
> /*
> * No handler is running now, but we might still have stuck jobs. Let's
> - * make sure the PM counters stay balanced by manually calling
> - * pm_runtime_put_noidle().
> + * make sure the PM counters stay balanced by putting the reference the
> + * job took, and request idle while doing it so the core can suspend.
> */
with my comment in patch 3/15 fixed
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
> scoped_guard(mutex, &core->job_lock) {
> if (core->in_flight_job)
> - pm_runtime_put_noidle(core->dev);
> + pm_runtime_put_autosuspend(core->dev);
>
> iommu_detach_group(NULL, core->iommu_group);
>
>
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
next prev parent reply other threads:[~2026-11-04 10:25 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-01 8:22 [PATCH v15 00/15] accel/rocket: RK3576 NPU (RKNN) enablement Jiaxing Hu
2026-11-01 8:22 ` Jiaxing Hu
2026-11-01 8:22 ` [PATCH v15 01/15] accel/rocket: request the core clocks by name Jiaxing Hu
2026-11-01 8:22 ` Jiaxing Hu
2026-11-03 22:42 ` Heiko Stübner
2026-11-03 22:42 ` Heiko Stübner
2026-11-04 10:21 ` Heiko Stübner
2026-11-04 10:21 ` Heiko Stübner
2026-11-01 8:22 ` [PATCH v15 02/15] accel/rocket: take the completion register writes under job_lock Jiaxing Hu
2026-11-01 8:22 ` Jiaxing Hu
2026-11-03 22:45 ` Heiko Stübner
2026-11-03 22:45 ` Heiko Stübner
2026-11-01 8:22 ` [PATCH v15 03/15] accel/rocket: wait for a running IRQ handler before resetting a core Jiaxing Hu
2026-11-01 8:22 ` Jiaxing Hu
2026-11-01 8:55 ` sashiko-bot
2026-11-03 22:47 ` Heiko Stübner
2026-11-03 22:47 ` Heiko Stübner
2026-11-03 22:50 ` Heiko Stübner
2026-11-03 22:50 ` Heiko Stübner
2026-11-04 12:55 ` Tomeu Vizoso
2026-11-04 12:55 ` Tomeu Vizoso
2026-11-01 8:22 ` [PATCH v15 04/15] accel/rocket: let the core suspend after a reset Jiaxing Hu
2026-11-01 8:22 ` Jiaxing Hu
2026-11-01 8:46 ` sashiko-bot
2026-11-04 10:25 ` Heiko Stübner [this message]
2026-11-04 10:25 ` Heiko Stübner
2026-11-01 8:22 ` [PATCH v15 05/15] accel/rocket: factor the completion tail out of the IRQ handler Jiaxing Hu
2026-11-01 8:22 ` Jiaxing Hu
2026-11-04 10:27 ` Heiko Stübner
2026-11-04 10:27 ` Heiko Stübner
2026-11-01 8:22 ` [PATCH v15 06/15] dt-bindings: npu: rockchip: add rockchip,rk3576-rknn-core Jiaxing Hu
2026-11-01 8:22 ` [PATCH v15 06/15] dt-bindings: npu: rockchip: add rockchip, rk3576-rknn-core Jiaxing Hu
2026-11-01 8:22 ` [PATCH v15 06/15] dt-bindings: npu: rockchip: add rockchip,rk3576-rknn-core Jiaxing Hu
2026-11-01 8:37 ` [PATCH v15 06/15] dt-bindings: npu: rockchip: add rockchip, rk3576-rknn-core sashiko-bot
2026-11-01 8:22 ` [PATCH v15 07/15] dt-bindings: power: rockchip: allow resets in a power domain node Jiaxing Hu
2026-11-01 8:22 ` Jiaxing Hu
2026-11-01 8:23 ` [PATCH v15 08/15] dt-bindings: iommu: rockchip: describe the RK3576 NPU MMU Jiaxing Hu
2026-11-01 8:23 ` Jiaxing Hu
2026-11-04 11:02 ` Heiko Stübner
2026-11-04 11:02 ` Heiko Stübner
2026-11-01 8:23 ` [PATCH v15 09/15] pmdomain: rockchip: add optional per-domain power-on settle delay Jiaxing Hu
2026-11-01 8:23 ` Jiaxing Hu
2026-11-01 8:47 ` sashiko-bot
2026-11-03 22:34 ` Heiko Stübner
2026-11-03 22:34 ` Heiko Stübner
2026-11-01 8:23 ` [PATCH v15 10/15] pmdomain: rockchip: cycle an optional power-domain reset on power-on Jiaxing Hu
2026-11-01 8:23 ` Jiaxing Hu
2026-11-03 22:36 ` Heiko Stübner
2026-11-03 22:36 ` Heiko Stübner
2026-11-01 8:23 ` [PATCH v15 11/15] accel/rocket: select the per-core clock and reset counts from match data Jiaxing Hu
2026-11-01 8:23 ` Jiaxing Hu
2026-11-02 1:52 ` Chaoyi Chen
2026-11-02 1:52 ` Chaoyi Chen
2026-11-01 8:23 ` [PATCH v15 12/15] accel/rocket: add RK3576 NPU (RKNN) support Jiaxing Hu
2026-11-01 8:23 ` Jiaxing Hu
2026-11-01 8:23 ` [PATCH v15 13/15] arm64: dts: rockchip: add NPU core domain clocks and resets to rk3576 Jiaxing Hu
2026-11-01 8:23 ` Jiaxing Hu
2026-11-01 8:23 ` [PATCH v15 14/15] arm64: dts: rockchip: add NPU (RKNN) nodes " Jiaxing Hu
2026-11-01 8:23 ` Jiaxing Hu
2026-11-04 10:53 ` Heiko Stübner
2026-11-04 10:53 ` Heiko Stübner
2026-11-01 8:23 ` [PATCH v15 15/15] arm64: dts: rockchip: enable the NPU on rk3576-rock-4d Jiaxing Hu
2026-11-01 8:23 ` Jiaxing Hu
2026-11-03 22:39 ` [PATCH v15 00/15] accel/rocket: RK3576 NPU (RKNN) enablement Heiko Stübner
2026-11-03 22:39 ` Heiko Stübner
2026-11-04 10:09 ` Tomeu Vizoso
2026-11-04 10:09 ` Tomeu Vizoso
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3373678.NnENhoQgcM@diego \
--to=heiko@sntech.de \
--cc=abel.vesa@oss.qualcomm.com \
--cc=alchark@flipper.net \
--cc=chaoyi.chen@rock-chips.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=diederik@cknow-tech.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=gahing@gahingwoo.com \
--cc=iommu@lists.linux.dev \
--cc=jeff.hugo@oss.qualcomm.com \
--cc=joro@8bytes.org \
--cc=krzk+dt@kernel.org \
--cc=leonard@lausen.nl \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=ogabbay@kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=rfoss@kernel.org \
--cc=robh@kernel.org \
--cc=robin.murphy@arm.com \
--cc=royalnet026@gmail.com \
--cc=sebastian.reichel@collabora.com \
--cc=sidong.yang@furiosa.ai \
--cc=tomeu@tomeuvizoso.net \
--cc=u.kleine-koenig@baylibre.com \
--cc=ulfh@kernel.org \
--cc=will@kernel.org \
--cc=zhangqing@rock-chips.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.