[RFC v3 0/4] Implement full clockgating for Kepler1 and 2

From: Lyude Paul
Date: Fri Jan 26 2018 - 16:00:41 EST


Next version of my patchseries 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 very important changes:
- Fix gf100_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 :). Reclocking while not
under load with powergating works A-OK.

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/gpu/drm/nouveau/nvkm/engine/gr/gf100.h | 1 +
drivers/gpu/drm/nouveau/nvkm/engine/gr/gk104.c | 207 +++++++++++++++++++++
drivers/gpu/drm/nouveau/nvkm/engine/gr/gk104.h | 55 ++++++
drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110.c | 155 +++++++++++++++
drivers/gpu/drm/nouveau/nvkm/subdev/fb/Kbuild | 1 +
drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.c | 6 +
drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk104.c | 47 +++++
drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk104.h | 35 ++++
drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk110.c | 71 +++++++
drivers/gpu/drm/nouveau/nvkm/subdev/fb/priv.h | 2 +
drivers/gpu/drm/nouveau/nvkm/subdev/therm/Kbuild | 2 +
drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c | 70 ++++++-
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf100.c | 75 ++++++++
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf100.h | 35 ++++
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c | 8 +-
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c | 136 ++++++++++++++
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.h | 48 +++++
drivers/gpu/drm/nouveau/nvkm/subdev/therm/gt215.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/subdev/therm/priv.h | 23 ++-
22 files changed, 996 insertions(+), 26 deletions(-)
create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/gr/gk104.h
create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk104.h
create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk110.c
create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf100.c
create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf100.h
create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.h

--
2.14.3