clk/gm20b: add basic driver

Submitted by Alexandre Courbot on March 11, 2016, 2:12 p.m.


Reviewer None
Submitted March 11, 2016, 2:12 p.m.
Last Updated March 11, 2016, 2:13 p.m.
Revision 1

Cover Letter(s)

Revision 1
      This series does some refactoring in the GK20A's volt and clk drivers
(fixing a few things while we are at it) to let GM20B benefit from the
GK20A's logic with which it is compatible.

GM20B is capable of more sophisticated (and power-efficient) reclocking
which will follow later. Even after this more fancy reclocking is merged,
the present logic will remain used in the lowest speedo of Tegra X1.

Ben, it would be super-duper great if you could take these in for 4.6.
Not too big a deal if you cannot however.

Alexandre Courbot (15):
  volt/gk20a: split constructor
  volt: add GM20B driver
  clk/gk20a: convert parameters to Khz
  clk/gk20a: reorganize variables in gk20a_pllg_calc_mnp()
  clk/gk20a: rename enable/disable functions
  clk/gk20a: fix VCO bit mask
  clk/gk20a: only compute n_lo if needed
  clk/gk20a: only restore divider to 1:1 if needed
  clk/gk20a: emit parent rate as debug message
  clk/gk20a: put mnp values into their own struct
  clk/gk20a: abstract pl_to_div
  clk/gk20a: split gk20a_clk_new()
  clk/gk20a: set lowest frequency during init()
  clk/gk20a: share reusable structures/functions
  clk/gm20b: add basic driver

Vince Hsu (1):
  volt/gk20a: share reusable members & functions

 drm/nouveau/include/nvkm/subdev/clk.h  |   1 +
 drm/nouveau/include/nvkm/subdev/volt.h |   1 +
 drm/nouveau/nvkm/engine/device/base.c  |   2 +
 drm/nouveau/nvkm/subdev/clk/Kbuild     |   1 +
 drm/nouveau/nvkm/subdev/clk/gk20a.c    | 292 ++++++++++++++++++---------------
 drm/nouveau/nvkm/subdev/clk/gk20a.h    |  65 ++++++++
 drm/nouveau/nvkm/subdev/clk/gm20b.c    | 198 ++++++++++++++++++++++
 drm/nouveau/nvkm/subdev/volt/Kbuild    |   1 +
 drm/nouveau/nvkm/subdev/volt/gk20a.c   |  57 +++----
 drm/nouveau/nvkm/subdev/volt/gk20a.h   |  49 ++++++
 drm/nouveau/nvkm/subdev/volt/gm20b.c   |  56 +++++++
 11 files changed, 560 insertions(+), 163 deletions(-)
 create mode 100644 drm/nouveau/nvkm/subdev/clk/gk20a.h
 create mode 100644 drm/nouveau/nvkm/subdev/clk/gm20b.c
 create mode 100644 drm/nouveau/nvkm/subdev/volt/gk20a.h
 create mode 100644 drm/nouveau/nvkm/subdev/volt/gm20b.c