Skip to content

Commit

Permalink
drm/nouveau/mc/ga100: switch to using NV_PMC_DEVICE_ENABLE
Browse files Browse the repository at this point in the history
- NV_PMC_ENABLE still exists, but we don't touch anything in it yet

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
  • Loading branch information
Ben Skeggs committed Nov 9, 2022
1 parent ebb195d commit 565bfaf
Showing 1 changed file with 44 additions and 3 deletions.
47 changes: 44 additions & 3 deletions drivers/gpu/drm/nouveau/nvkm/subdev/mc/ga100.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,52 @@
*/
#include "priv.h"

static void
ga100_mc_device_disable(struct nvkm_mc *mc, u32 mask)
{
struct nvkm_device *device = mc->subdev.device;

nvkm_mask(device, 0x000600, mask, 0x00000000);
nvkm_rd32(device, 0x000600);
nvkm_rd32(device, 0x000600);
}

static void
ga100_mc_device_enable(struct nvkm_mc *mc, u32 mask)
{
struct nvkm_device *device = mc->subdev.device;

nvkm_mask(device, 0x000600, mask, mask);
nvkm_rd32(device, 0x000600);
nvkm_rd32(device, 0x000600);
}

static bool
ga100_mc_device_enabled(struct nvkm_mc *mc, u32 mask)
{
return (nvkm_rd32(mc->subdev.device, 0x000600) & mask) == mask;
}

const struct nvkm_mc_device_func
ga100_mc_device = {
.enabled = ga100_mc_device_enabled,
.enable = ga100_mc_device_enable,
.disable = ga100_mc_device_disable,
};

static void
ga100_mc_init(struct nvkm_mc *mc)
{
struct nvkm_device *device = mc->subdev.device;

nvkm_wr32(device, 0x000200, 0xffffffff);
nvkm_wr32(device, 0x000600, 0xffffffff);
}

static const struct nvkm_mc_func
ga100_mc = {
.init = nv50_mc_init,
.device = &nv04_mc_device,
.reset = gk104_mc_reset,
.init = ga100_mc_init,
.device = &ga100_mc_device,
};

int
Expand Down

0 comments on commit 565bfaf

Please sign in to comment.