search for: blcg

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/...