On Wed, Feb 17, 2021 at 1:20 AM Diego Viola diego.viola@gmail.com wrote:
This code times out on GP108, probably because the BIOS puts it into a bad state.
Since we reset the PMU on driver load anyway, we are at no risk from missing a response from it since we are not waiting for one to begin with.
This looks safe to me, provided indeed that the PMU's reset is not called outside of initialization (which for GP108 is shouldn't be IIRC?).
Signed-off-by: Diego Viola diego.viola@gmail.com
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c index a0fe607c9c07..5c802f2d00cb 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c @@ -102,12 +102,8 @@ nvkm_pmu_reset(struct nvkm_pmu *pmu) if (!pmu->func->enabled(pmu)) return 0;
/* Inhibit interrupts, and wait for idle. */
/* Inhibit interrupts. */ nvkm_wr32(device, 0x10a014, 0x0000ffff);
nvkm_msec(device, 2000,
if (!nvkm_rd32(device, 0x10a04c))
break;
); /* Reset. */ if (pmu->func->reset)
-- 2.30.1