From: Sasha Levin <sashal@kernel.org>
To: Thierry Reding <thierry.reding@kernel.org>,
Jonathan Hunter <jonathanh@nvidia.com>,
Lyude Paul <lyude@redhat.com>, Danilo Krummrich <dakr@kernel.org>
Cc: Sasha Levin <sashal@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Alexandre Courbot <acourbot@nvidia.com>,
Mikko Perttunen <mperttunen@nvidia.com>,
Aaron Kling <webgeek1234@gmail.com>,
Diogo Ivo <diogo.ivo@bootlin.com>,
Svyatoslav Ryhel <clamor95@gmail.com>,
Dmitry Osipenko <dmitry.osipenko@collabora.com>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org,
devicetree@vger.kernel.org, linux-tegra@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH v2 0/6] Keep the fuse clock enabled while the Tegra GPU is powered
Date: Fri, 16 Oct 2026 12:06:53 -0400 [thread overview]
Message-ID: <20261016160700.3831336-1-sashal@kernel.org> (raw)
Since the GPU on the Jetson TX1 was enabled in its device tree, nouveau
often fails to bring up the GM20B: BOOT_0 reads back garbage, PRI reads
time out, or the first register reads stall until an SError. The GPU needs
the fuse clock running while it is powered, but nothing keeps that clock
enabled: the Tegra fuse driver only turns it on around its own fuse reads.
This series describes the fuse clock in the GPU device tree nodes and has
nouveau keep it enabled from before the GPU rail is turned on until after
it is turned off. Patch 1 makes the fuse clock required by the binding and
lists the exact clocks for each GPU. Patches 2-5 add it to the Tegra124,
Tegra132, Tegra186 and Tegra210 device trees; Tegra194 already has it.
Patch 6 makes nouveau use it.
nouveau keeps treating the fuse clock as optional, so device trees that
lack it continue to work as before.
On eight Jetson TX1 devkits, the GPU failed to come up in 27 of 109 boots
without the fix and in 11 of 291 with it; patch 6 has the details. Aaron
Kling reported that a Jetson Nano that almost never loaded nouveau did so
on 3 of 3 boots with v1. The Tegra124, Tegra132 and Tegra186 device tree
changes have only been checked with dtbs_check.
Changes in v2:
- 1/6: List the exact clocks for each GPU, so that "fuse" cannot appear
twice, and make the fuse clock required (Thierry).
- 2/6, 3/6, 4/6: New. Add the fuse clock to the Tegra124, Tegra132 and
Tegra186 GPUs as well (Thierry).
- 5/6: Add a Fixes: tag, as the nouveau fix depends on it.
- 6/6: Disable the fuse clock on power down even if disabling the
regulator fails (sashiko).
v1: https://lore.kernel.org/r/20261013145210.103565-1-sashal@kernel.org
Sasha Levin (6):
dt-bindings: gpu: nvidia,gk20a: Require the fuse clock
ARM: tegra: Add the fuse clock to the Tegra124 GPU
arm64: tegra: Add the fuse clock to the Tegra132 GPU
arm64: tegra: Add the fuse clock to the Tegra186 GPU
arm64: tegra: Add the fuse clock to the Tegra210 GPU
drm/nouveau/tegra: Keep the fuse clock enabled while the GPU is
powered
.../devicetree/bindings/gpu/nvidia,gk20a.yaml | 52 ++++++++++++++-----
arch/arm/boot/dts/nvidia/tegra124.dtsi | 5 +-
arch/arm64/boot/dts/nvidia/tegra132.dtsi | 5 +-
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 5 +-
arch/arm64/boot/dts/nvidia/tegra210.dtsi | 5 +-
.../gpu/drm/nouveau/include/nvkm/core/tegra.h | 1 +
.../drm/nouveau/nvkm/engine/device/tegra.c | 22 +++++---
7 files changed, 69 insertions(+), 26 deletions(-)
base-commit: 70dd4ee72eb2d5793c62e71c14e3aba78e5a4e56
--
2.53.0
next reply other threads:[~2026-10-16 16:07 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-16 16:06 Sasha Levin [this message]
2026-10-16 16:06 ` [PATCH v2 1/6] dt-bindings: gpu: nvidia,gk20a: Require the fuse clock Sasha Levin
2026-10-16 16:06 ` [PATCH v2 2/6] ARM: tegra: Add the fuse clock to the Tegra124 GPU Sasha Levin
2026-10-16 16:06 ` [PATCH v2 3/6] arm64: tegra: Add the fuse clock to the Tegra132 GPU Sasha Levin
2026-10-16 16:06 ` [PATCH v2 4/6] arm64: tegra: Add the fuse clock to the Tegra186 GPU Sasha Levin
2026-10-16 16:06 ` [PATCH v2 5/6] arm64: tegra: Add the fuse clock to the Tegra210 GPU Sasha Levin
2026-10-16 16:06 ` [PATCH v2 6/6] drm/nouveau/tegra: Keep the fuse clock enabled while the GPU is powered Sasha Levin
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=20261016160700.3831336-1-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=acourbot@nvidia.com \
--cc=airlied@gmail.com \
--cc=clamor95@gmail.com \
--cc=conor+dt@kernel.org \
--cc=dakr@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=diogo.ivo@bootlin.com \
--cc=dmitry.osipenko@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=jonathanh@nvidia.com \
--cc=krzk+dt@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=lyude@redhat.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mperttunen@nvidia.com \
--cc=mripard@kernel.org \
--cc=nouveau@lists.freedesktop.org \
--cc=robh@kernel.org \
--cc=simona@ffwll.ch \
--cc=thierry.reding@kernel.org \
--cc=tzimmermann@suse.de \
--cc=webgeek1234@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox