Displaying 12 results from an estimated 12 matches for "blcg".
2017 Apr 25
0
[PATCH] drm/nouveau: Add support for clockgating on Fermi+
Thanks for the work so far.
A quick scan through the first NVC4 trace at hand, using upstream
demmio, reveals at least 20 writes to the BLCG registers of PGRAPH and a
few in PXBAR prior to altering the value of register 0x20200 (see
below). We know that these are related to the clock gating you enable.
Are you 110% sure that fiddling with 0x20200 bits without first setting
these values can *never* cause any issues with stability or...
2017 Apr 25
6
[PATCH] drm/nouveau: Add support for clockgating on Fermi+
This adds support for enabling automatic clockgating on nvidia GPUs for
Fermi and later generations. This saves a little bit of power, bringing
my fermi GPU's power consumption from ~28.3W on idle to ~27W, and my
kepler's idle power consumption from ~23.6W to ~21.65W.
Similar to how the nvidia driver seems to handle this, we enable
clockgating for each engine that supports it after
2018 Jan 16
1
[RFC 0/4] Implement full clockgating for Kepler1 and 2
...a added two
clockgating levels that are handled mostly in firmware (with the
exception of course, of the driver initially programming all of the
register values containing engine delays and that stuff):
- CG_CTRL - Main register for enabling/disabling clockgating for
engines and hw blocks
- BLCG - "Block-level clockgating", a deeper level of clockgating
Starting with kepler2 as well, nvidia also introduced:
- SLCG - "??? clockgating" even deeper level of clockgating
Originally this patchset was going to include work for making this work
on Fermi, however on closer in...
2018 Jan 26
0
[RFC v3 2/4] drm/nouveau: Add support for BLCG on Kepler1
This enables BLCG optimization for kepler1. When using clockgating,
nvidia's firmware has a set of registers which are initially programmed
by the vbios with various engine delays and other mysterious settings
that are safe enough to bring up the GPU. However, the values used by
the vbios are more power hungry t...
2018 Jan 26
0
[RFC v2 3/4] drm/nouveau: Add support for BLCG on Kepler2
...@@
* Authors: Ben Skeggs <bskeggs at redhat.com>
*/
#include "gf100.h"
+#include "gk104.h"
#include "ctxgf100.h"
#include <subdev/timer.h>
@@ -156,6 +157,66 @@ gk110_gr_pack_mmio[] = {
{}
};
+const struct nvkm_therm_clkgate_init
+gk110_clkgate_blcg_init_sked_0[] = {
+ { 0x407000, 1, 0x00004041 },
+ {}
+};
+
+const struct nvkm_therm_clkgate_init
+gk110_clkgate_blcg_init_gpc_gcc_0[] = {
+ { 0x419020, 1, 0x00000042 },
+ { 0x419038, 1, 0x00000042 },
+ {}
+};
+
+const struct nvkm_therm_clkgate_init
+gk110_clkgate_blcg_init_gpc_l1c_0[] = {
+ { 0x41...
2018 Jan 26
1
[RFC v2 3/4] drm/nouveau: Add support for BLCG on Kepler2
...quot;
> +#include "gk104.h"
> #include "ctxgf100.h"
>
> #include <subdev/timer.h>
> @@ -156,6 +157,66 @@ gk110_gr_pack_mmio[] = {
> {}
> };
>
> +const struct nvkm_therm_clkgate_init
These should all be static, no?
> +gk110_clkgate_blcg_init_sked_0[] = {
> + { 0x407000, 1, 0x00004041 },
> + {}
> +};
> +
> +const struct nvkm_therm_clkgate_init
> +gk110_clkgate_blcg_init_gpc_gcc_0[] = {
> + { 0x419020, 1, 0x00000042 },
> + { 0x419038, 1, 0x00000042 },
> + {}
> +};
> +
&g...
2018 Jan 15
6
[RFC 0/4] Implement full clockgating for Kepler1 and 2
...a added two
clockgating levels that are handled mostly in firmware (with the
exception of course, of the driver initially programming all of the
register values containing engine delays and that stuff):
- CG_CTRL - Main register for enabling/disabling clockgating for
engines and hw blocks
- BLCG - "Block-level clockgating", a deeper level of clockgating
Starting with kepler2 as well, nvidia also introduced:
- SLCG - "??? clockgating" even deeper level of clockgating
Originally this patchset was going to include work for making this work
on Fermi, however on closer in...
2018 Jan 26
6
[RFC v3 0/4] Implement full clockgating for Kepler1 and 2
...clkgate_init() to actually write registers! This got broken
in the last version by accident
- Dump the register packs and the resulting register writes into
nvkm_trace() in gf100_clkgate_init() so we can make sure this doesn't
happen again
And some more minor changes:
- Make all SLCG/BLCG mmiopacks for kepler2 static
Additionally, I just discovered that these patches have a higher chance of
crashing your card if you reclock under load. However, reclocking under
load has never been supported by nouveau in the first place and has
always caused trouble so that's nothing new :). Re...
2018 Jan 29
5
[RFC v4 0/5] Implement full clockgating for Kepler1 and 2
...und
here:
https://patchwork.freedesktop.org/series/36504/
One small change:
- Set therm->clkgate_enabled to false until the last patch, where we
introduce the NvPmEnableGating option
Lyude Paul (5):
drm/nouveau: Add support for basic clockgating on Kepler1
drm/nouveau: Add support for BLCG on Kepler1
drm/nouveau: Add support for BLCG on Kepler2
drm/nouveau: Add support for SLCG for Kepler2
drm/nouveau: Introduce NvPmEnableGating option
drivers/gpu/drm/nouveau/include/nvkm/subdev/fb.h | 1 +
.../gpu/drm/nouveau/include/nvkm/subdev/therm.h | 17 ++
drivers/gpu/drm/nouve...
2018 Jan 30
5
[RFC v5 0/5] Implement full clockgating for Kepler1 and 2
...g support for
kepler1 and 2 on nouveau. The first version of this series can be found
here:
https://patchwork.freedesktop.org/series/36504/
One small change:
- Add Martin's R-B, whoops
Lyude Paul (5):
drm/nouveau: Add support for basic clockgating on Kepler1
drm/nouveau: Add support for BLCG on Kepler1
drm/nouveau: Add support for BLCG on Kepler2
drm/nouveau: Add support for SLCG for Kepler2
drm/nouveau: Introduce NvPmEnableGating option
drivers/gpu/drm/nouveau/include/nvkm/subdev/fb.h | 1 +
.../gpu/drm/nouveau/include/nvkm/subdev/therm.h | 17 ++
drivers/gpu/drm/nouve...
2018 Feb 01
5
[RFC v6 0/5] Implement full clockgating for Kepler1 and 2
...es for adding clockgating support for
kepler1 and 2 on nouveau. The first version of this series can be found
here:
https://patchwork.freedesktop.org/series/36504/
Some small changes (shouldn't change anything functionally):
- Made gf100_therm_new, gk104_clkgate_pack, and
gk110_fb_clkgate_blcg_init_unk_0 static (re: kbuild test bot)
- Making all three of these things static made it apparent that we
create gf100_therm_new() and gf100_therm_func in
nvkm/subdev/therm/gf100.c, but never actually use them anywhere. So,
get rid of these two things entirely and also since we no longer...
2018 Jan 26
6
[RFC v2 0/4] Implement full clockgating for Kepler1 and 2
...ention powergating in
them, since this isn't actually added in this series (and may not be
for a while, only time will tell :)
- Don't export unused function gk104_therm_new_()
Lyude Paul (4):
drm/nouveau: Add support for basic clockgating on Kepler1
drm/nouveau: Add support for BLCG on Kepler1
drm/nouveau: Add support for BLCG on Kepler2
drm/nouveau: Add support for SLCG for Kepler2
drivers/gpu/drm/nouveau/include/nvkm/subdev/fb.h | 1 +
.../gpu/drm/nouveau/include/nvkm/subdev/therm.h | 17 ++
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 25 +--
drivers/...