drm/nouveau/gr/gp107,gp108: implement workaround for HW hanging during init
authorBen Skeggs <bskeggs@redhat.com>
Tue, 31 Mar 2020 06:08:44 +0000 (16:08 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 23 Apr 2020 08:36:42 +0000 (10:36 +0200)
commit762d35aa906f2776c79e91d97194adf12e119122
tree14aec6274060d1b97d42056b565356b009e052b3
parenta156e67acf6c77f1c379448c7629c04113b6ee5c
drm/nouveau/gr/gp107,gp108: implement workaround for HW hanging during init

[ Upstream commit 028a12f5aa829b4ba6ac011530b815eda4960e89 ]

Certain boards with GP107/GP108 chipsets hang (often, but randomly) for
unknown reasons during GR initialisation.

The first tell-tale symptom of this issue is:

nouveau 0000:01:00.0: bus: MMIO read of 00000000 FAULT at 409800 [ TIMEOUT ]

appearing in dmesg, likely followed by many other failures being logged.

Karol found this WAR for the issue a while back, but efforts to isolate
the root cause and proper fix have not yielded success so far.  I've
modified the original patch to include a few more details, limit it to
GP107/GP108 by default, and added a config option to override this choice.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c