drm/nouveau/pmu: move preinit() falcon reset to devinit
Cleanup before falcon changes. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
This commit is contained in:
parent
74f9dcb0df
commit
b7f44ef732
@ -26,6 +26,7 @@
|
||||
#include <subdev/bios.h>
|
||||
#include <subdev/bios/bit.h>
|
||||
#include <subdev/bios/pmu.h>
|
||||
#include <subdev/pmu.h>
|
||||
#include <subdev/timer.h>
|
||||
|
||||
static void
|
||||
@ -85,13 +86,18 @@ pmu_load(struct nv50_devinit *init, u8 type, bool post,
|
||||
struct nvkm_subdev *subdev = &init->base.subdev;
|
||||
struct nvkm_bios *bios = subdev->device->bios;
|
||||
struct nvbios_pmuR pmu;
|
||||
int ret;
|
||||
|
||||
if (!nvbios_pmuRm(bios, type, &pmu))
|
||||
return -EINVAL;
|
||||
|
||||
if (!post)
|
||||
if (!post || !subdev->device->pmu)
|
||||
return 0;
|
||||
|
||||
ret = nvkm_falcon_reset(&subdev->device->pmu->falcon);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
pmu_code(init, pmu.boot_addr_pmu, pmu.boot_addr, pmu.boot_size, false);
|
||||
pmu_code(init, pmu.code_addr_pmu, pmu.code_addr, pmu.code_size, true);
|
||||
pmu_data(init, pmu.data_addr_pmu, pmu.data_addr, pmu.data_size);
|
||||
|
@ -99,9 +99,6 @@ nvkm_pmu_reset(struct nvkm_pmu *pmu)
|
||||
{
|
||||
struct nvkm_device *device = pmu->subdev.device;
|
||||
|
||||
if (!pmu->func->enabled(pmu))
|
||||
return;
|
||||
|
||||
/* Reset. */
|
||||
if (pmu->func->reset)
|
||||
pmu->func->reset(pmu);
|
||||
@ -113,14 +110,6 @@ nvkm_pmu_reset(struct nvkm_pmu *pmu)
|
||||
);
|
||||
}
|
||||
|
||||
static int
|
||||
nvkm_pmu_preinit(struct nvkm_subdev *subdev)
|
||||
{
|
||||
struct nvkm_pmu *pmu = nvkm_pmu(subdev);
|
||||
nvkm_pmu_reset(pmu);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
nvkm_pmu_init(struct nvkm_subdev *subdev)
|
||||
{
|
||||
@ -160,7 +149,6 @@ nvkm_pmu_dtor(struct nvkm_subdev *subdev)
|
||||
static const struct nvkm_subdev_func
|
||||
nvkm_pmu = {
|
||||
.dtor = nvkm_pmu_dtor,
|
||||
.preinit = nvkm_pmu_preinit,
|
||||
.init = nvkm_pmu_init,
|
||||
.fini = nvkm_pmu_fini,
|
||||
.intr = nvkm_pmu_intr,
|
||||
|
Loading…
x
Reference in New Issue
Block a user