[Nouveau] [PATCH 00/15] clk/tegra: improve code and add DFS support

Alexandre Courbot acourbot at nvidia.com
Wed Jun 1 08:39:14 UTC 2016


This series adds support for GM20B PLL's Maxwell features, namely glitchless
switch and (more importantly) DFS support. DFS lets the PLL lower its output
speed according to input current variations, making the clock more stable and
allowing it to run safely at lower voltage.

All GM20B additions are done in the last patch, which consequently ends up
being considerably big ; fortunately, it only consists of code additions thanks
to the big refactoring work done by the first 14 patches.

This refactoring makes GK20A's clock code much simpler to read and understand,
and flexible enough to be reused by GM20B's when relevant. Note that the sliding
and MNP programming had to be re-implemented due to the differences introduced
by DFS - trying to factor them out with more abstractions resulted in rather
ugly code IMHO.

The first few patches also improve GK20A's volt driver a bit, mainly in order
to support a minimum voltage that GM20B requires.

Alexandre Courbot (15):
  tegra: fetch gpu_speedo_id
  volt/gk20a: make unused public functions static
  volt/gk20a: constify and name v_scale
  volt/gk20a: rename constructor
  volt/gm20b: add support for vmin parameter
  clk/gk20a: properly protect macro argument
  clk/gk20a: setup slide once during init
  clk/gk20a: reorganize MNP calculation a bit
  clk/gk20a: use nvkm_ functions in slide()
  clk/gk20a: add and use MNP programming functions
  clk/gk20a: parameterize PLL settings
  clk/gk20a: factorize n_lo computation code
  clk/gk20a: improve MNP programming
  clk/gk20a: rename constructor
  clk/gm20b: add glitchless and DFS support

 drm/nouveau/include/nvkm/core/tegra.h  |   1 +
 drm/nouveau/nvkm/engine/device/tegra.c |   1 +
 drm/nouveau/nvkm/subdev/clk/gk20a.c    | 394 +++++++--------
 drm/nouveau/nvkm/subdev/clk/gk20a.h    |  96 +++-
 drm/nouveau/nvkm/subdev/clk/gm20b.c    | 894 ++++++++++++++++++++++++++++++++-
 drm/nouveau/nvkm/subdev/volt/gk20a.c   |  27 +-
 drm/nouveau/nvkm/subdev/volt/gk20a.h   |  11 +-
 drm/nouveau/nvkm/subdev/volt/gm20b.c   |  40 +-
 lib/include/nvif/os.h                  |   1 +
 9 files changed, 1216 insertions(+), 249 deletions(-)

-- 
2.8.3



More information about the Nouveau mailing list