Displaying 13 results from an estimated 13 matches for "pmc_enable".
2016 Dec 13
0
[PATCH v2 2/15] mc: add nvkm_mc_enabled() function
...ex 6b25e25f9eba..09f669ac6630 100644
--- a/drm/nouveau/nvkm/subdev/mc/base.c
+++ b/drm/nouveau/nvkm/subdev/mc/base.c
@@ -161,6 +161,16 @@ nvkm_mc_enable(struct nvkm_device *device, enum nvkm_devidx devidx)
 	}
 }
 
+bool
+nvkm_mc_enabled(struct nvkm_device *device, enum nvkm_devidx devidx)
+{
+	u64 pmc_enable = nvkm_mc_reset_mask(device, false, devidx);
+
+	return (pmc_enable != 0) &&
+	       ((nvkm_rd32(device, 0x000200) & pmc_enable) == pmc_enable);
+}
+
+
 static int
 nvkm_mc_fini(struct nvkm_subdev *subdev, bool suspend)
 {
-- 
git-series 0.8.10
2016 Apr 18
0
[PATCH v4 34/37] mc: fix NULL pointer access in libnouveau
...+++ b/drm/nouveau/nvkm/subdev/mc/base.c
@@ -90,10 +90,15 @@ nvkm_mc_intr(struct nvkm_mc *mc, bool *handled)
 void
 nvkm_mc_reset(struct nvkm_mc *mc, enum nvkm_devidx devidx)
 {
-	struct nvkm_device *device = mc->subdev.device;
+	struct nvkm_device *device;
 	const struct nvkm_mc_map *map;
 	u64 pmc_enable;
 
+	if (!mc)
+		return;
+
+	device = mc->subdev.device;
+
 	if (!(pmc_enable = nvkm_top_reset(device->top, devidx))) {
 		for (map = mc->func->reset; map && map->stat; map++) {
 			if (map->unit == devidx) {
-- 
2.8.1
2008 Mar 09
7
[Bug 14921] New: NV25 doesn' t work after commit 71adbfc874517efbba8b9f7c3f90baad0d7fb707
http://bugs.freedesktop.org/show_bug.cgi?id=14921
           Summary: NV25 doesn't work after commit
                    71adbfc874517efbba8b9f7c3f90baad0d7fb707
           Product: xorg
           Version: unspecified
          Platform: Other
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: medium
         Component: Driver/nouveau
       
2015 Apr 13
3
[PATCH v4] pmu/gk20a: PMU boot support
..._idle(struct gk20a_pmu_priv *priv)
+{
+	if (!nv_wait(priv, 0x0010a04c, 0x0000ffff, 0x00000000)) {
+		nv_error(priv, "timeout waiting pmu idle\n");
+		return -EBUSY;
+	}
+
+	return 0;
+}
+
+static int
+gk20a_pmu_enable(struct gk20a_pmu_priv *priv, struct nvkm_mc *pmc, bool enable)
+{
+	u32 pmc_enable;
+	int err;
+
+	if (enable) {
+		err = gk20a_pmu_enable_hw(priv, pmc, true);
+		if (err)
+			return err;
+
+		err = gk20a_pmu_idle(priv);
+		if (err)
+			return err;
+
+		gk20a_pmu_enable_irq(priv, pmc, true);
+	} else {
+		pmc_enable = nv_rd32(pmc, 0x200);
+		if ((pmc_enable & 0x2000) != 0x0)...
2009 Aug 19
1
[PATCH] drm/nouveau: Add a MM for mappable VRAM that isn't usable as scanout.
...v_priv=dev->dev_private;
+	uint64_t vram_size = dev_priv->fb_available_size;
+
+	if (dev_priv->card_type == NV_04)
+		return min(16ull*1024*1024, vram_size);
+
+	return vram_size;
+}
+
 static void nouveau_mem_reset_agp(struct drm_device *dev)
 {
 	uint32_t saved_pci_nv_1, saved_pci_nv_19, pmc_enable;
@@ -482,7 +495,7 @@ nouveau_mem_init(struct drm_device *dev)
 {
 	struct drm_nouveau_private *dev_priv = dev->dev_private;
 	struct ttm_bo_device *bdev = &dev_priv->ttm.bdev;
-	uint32_t vram_size, bar1_size, text_size;
+	uint32_t vram_size, bar1_size, text_size, scanout_size;
 	int ret,...
2015 Apr 08
3
[PATCH V2] pmu/gk20a: PMU boot support.
...+static int
+pmu_idle(struct nvkm_pmu *ppmu)
+{
+	if (!nv_wait(ppmu, 0x0010a04c, 0x0000ffff, 0x00000000)) {
+		nv_error(ppmu, "timedout waiting pmu idle\n");
+		return -EBUSY;
+	}
+
+	return 0;
+}
+
+static int
+pmu_enable(struct nvkm_pmu *ppmu, struct nvkm_mc *pmc, bool enable)
+{
+	u32 pmc_enable;
+	int err;
+
+	if (enable) {
+		err = gk20a_pmu_enable_hw(ppmu, pmc, true);
+		if (err)
+			return err;
+
+		err = pmu_idle(ppmu);
+		if (err)
+			return err;
+
+		pmu_enable_irq(ppmu, pmc, true);
+	} else {
+		pmc_enable = nv_rd32(pmc, 0x200);
+		if ((pmc_enable & 0x2000) != 0x0) {
+			pmu_en...
2015 Apr 30
2
[PATCH v4] pmu/gk20a: PMU boot support
...waiting pmu idle\n");
>> +               return -EBUSY;
>> +       }
>> +
>> +       return 0;
>> +}
>> +
>> +static int
>> +gk20a_pmu_enable(struct gk20a_pmu_priv *priv, struct nvkm_mc *pmc, bool
>> enable)
>> +{
>> +       u32 pmc_enable;
>> +       int err;
>> +
>> +       if (enable) {
>> +               err = gk20a_pmu_enable_hw(priv, pmc, true);
>> +               if (err)
>> +                       return err;
>> +
>> +               err = gk20a_pmu_idle(priv);
>> +...
2016 Dec 06
9
[PATCH 0/8] Falcon library
This was the first step of the secure boot refactoring - as Ben asked for some
fixes, I now submit it as its own series to make it easier to review (and also
because rebasing secure boot on top of this takes time and I don't want to do
it until this is validated!).
This series attempts to factorize the duplicate falcon-related code into a
single library, using the existing nvkm_falcon
2015 Mar 11
0
[PATCH] pmu/gk20a: PMU boot support.
...0;
> +               nv_wr32(pmc, 0x00000200, reg);
> +               return 0;
> +       }
> +error:
> +       return -ETIMEDOUT;
> +}
> +
> +static int pmu_enable(struct nvkm_pmu *ppmu, struct nvkm_mc *pmc,
> +                       bool enable)
> +{
> +       u32 pmc_enable;
> +       int err;
> +
> +       if (!enable) {
> +               pmc_enable = nv_rd32(pmc, 0x200);
> +               if ((pmc_enable & 0x2000) != 0x0) {
> +                       pmu_enable_irq(ppmu, pmc, false);
> +                       pmu_enable_hw(ppmu, pmc, false);...
2015 Mar 11
3
[PATCH] pmu/gk20a: PMU boot support.
...con mem scrubbing timeout\n");
+
+		goto error;
+	} else {
+		reg = nv_rd32(pmc, 0x00000200);
+		reg &= ~0x2000;
+		nv_wr32(pmc, 0x00000200, reg);
+		return 0;
+	}
+error:
+	return -ETIMEDOUT;
+}
+
+static int pmu_enable(struct nvkm_pmu *ppmu, struct nvkm_mc *pmc,
+			bool enable)
+{
+	u32 pmc_enable;
+	int err;
+
+	if (!enable) {
+		pmc_enable = nv_rd32(pmc, 0x200);
+		if ((pmc_enable & 0x2000) != 0x0) {
+			pmu_enable_irq(ppmu, pmc, false);
+			pmu_enable_hw(ppmu, pmc, false);
+		}
+	} else {
+		err = pmu_enable_hw(ppmu, pmc, true);
+		if (err)
+			return err;
+
+		/* TBD: post reset */
+...
2016 Dec 13
15
[PATCH v2 0/15] Falcon library
This was the first step of the secure boot refactoring - as Ben asked for some
fixes, I now submit it as its own series to make it easier to review (and also
because rebasing secure boot on top of this takes time and I don't want to do
it until this is validated!).
This series attempts to factorize the duplicate falcon-related code into a
single library, using the existing nvkm_falcon
2015 Mar 12
2
[PATCH] pmu/gk20a: PMU boot support.
...0;
> +               nv_wr32(pmc, 0x00000200, reg);
> +               return 0;
> +       }
> +error:
> +       return -ETIMEDOUT;
> +}
> +
> +static int pmu_enable(struct nvkm_pmu *ppmu, struct nvkm_mc *pmc,
> +                       bool enable)
> +{
> +       u32 pmc_enable;
> +       int err;
> +
> +       if (!enable) {
> +               pmc_enable = nv_rd32(pmc, 0x200);
> +               if ((pmc_enable & 0x2000) != 0x0) {
> +                       pmu_enable_irq(ppmu, pmc, false);
> +                       pmu_enable_hw(ppmu, pmc, false);...
2016 Apr 18
63
[PATCH v4 00/37] Volting/Clocking improvements for Fermi and newer
We are slowly getting there!
v4 of the series with some realy good improvements, so I am sure this is like
95% done and only needs some proper polishing and proper Reviews!
I also added the NvVoltOffsetmV module parameter, so that a user is able to
over and !under!-volt the GPU. Overvolting makes sense, when there are still
some reclocking issues left, which might be solved by a higher voltage.