Commit 38d4e5cf authored by Karol Herbst's avatar Karol Herbst
Browse files

drm/nouveau/pmu: Add missing callbacks for Tegra devices



Fixes a crash booting on those platforms with nouveau.

Fixes: 4cdd2450 ("drm/nouveau/pmu/gm200-: use alternate falcon reset sequence")
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Karol Herbst <kherbst@redhat.com>
Cc: dri-devel@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
Cc: <stable@vger.kernel.org> # v5.17+
Signed-off-by: default avatarKarol Herbst <kherbst@redhat.com>
Reviewed-by: default avatarLyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220322124800.2605463-1-kherbst@redhat.com
parent d14eb80e
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -216,6 +216,7 @@ gm20b_pmu = {
	.intr = gt215_pmu_intr,
	.intr = gt215_pmu_intr,
	.recv = gm20b_pmu_recv,
	.recv = gm20b_pmu_recv,
	.initmsg = gm20b_pmu_initmsg,
	.initmsg = gm20b_pmu_initmsg,
	.reset = gf100_pmu_reset,
};
};


#if IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC)
#if IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC)
+1 −1
Original line number Original line Diff line number Diff line
@@ -23,7 +23,7 @@
 */
 */
#include "priv.h"
#include "priv.h"


static void
void
gp102_pmu_reset(struct nvkm_pmu *pmu)
gp102_pmu_reset(struct nvkm_pmu *pmu)
{
{
	struct nvkm_device *device = pmu->subdev.device;
	struct nvkm_device *device = pmu->subdev.device;
+1 −0
Original line number Original line Diff line number Diff line
@@ -83,6 +83,7 @@ gp10b_pmu = {
	.intr = gt215_pmu_intr,
	.intr = gt215_pmu_intr,
	.recv = gm20b_pmu_recv,
	.recv = gm20b_pmu_recv,
	.initmsg = gm20b_pmu_initmsg,
	.initmsg = gm20b_pmu_initmsg,
	.reset = gp102_pmu_reset,
};
};


#if IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC)
#if IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC)
+1 −0
Original line number Original line Diff line number Diff line
@@ -41,6 +41,7 @@ int gt215_pmu_send(struct nvkm_pmu *, u32[2], u32, u32, u32, u32);


bool gf100_pmu_enabled(struct nvkm_pmu *);
bool gf100_pmu_enabled(struct nvkm_pmu *);
void gf100_pmu_reset(struct nvkm_pmu *);
void gf100_pmu_reset(struct nvkm_pmu *);
void gp102_pmu_reset(struct nvkm_pmu *pmu);


void gk110_pmu_pgob(struct nvkm_pmu *, bool);
void gk110_pmu_pgob(struct nvkm_pmu *, bool);