Displaying 20 results from an estimated 43 matches for "nvkm_clk_func".
2016 Jan 13
5
[PATCH 0/2] allow partly reclocking on chipset
some chipset have working engine reclocking, but broken memory reclocking like
Fermi. We should for now, add the functionality to allow partly reclocking for
those.
Allthough this doesn't give as much performance as one might wish, it is till
noticeable and may improve performance enough to be noted.
Karol Herbst (2):
clk: seperate engine and memory reclock toggles
clk: allow engine
2017 Jul 22
1
[RFC PATCH 12/13] clk: parse thermal policies for throttling thresholds
...t; +
> + clk->max_temp = mt;
> + clk->relax_temp = rt;
> +
> + nvkm_debug(subdev, "setting up sw throttling thresholds (%u/%u°C)\n",
> + clk->max_temp, clk->relax_temp);
> +}
> +
> int
> nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
> int index, bool allow_reclock, struct nvkm_clk *clk)
> @@ -743,6 +782,9 @@ nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
>
> clk->boost_mode = nvkm_longopt(device->cfgopt, "NvBoost",...
2017 Oct 08
1
[RFC PATCH 16/29] clk: parse thermal policies for throttling thresholds
...rt == 0xff)
> + return;
> +
> + clk->max_temp = mt;
> + clk->relax_temp = rt;
> +
> + nvkm_debug(subdev, "setting up sw throttling thresholds (%u/%u°C)\n",
> + clk->max_temp, clk->relax_temp);
> +}
> +
> int
> nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
> int index, bool allow_reclock, struct nvkm_clk *clk)
> @@ -733,6 +772,9 @@ nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
>
> clk->boost_mode = nvkm_longopt(device->cfgopt, "NvBoost",
>...
2016 Apr 18
0
[PATCH v4 31/37] clk: split out update code to nv40
...t pstate)
+{
+ struct nvkm_subdev *subdev = &clk->subdev;
+ int ret;
+
+ nvkm_trace(subdev, "-> %d\n", pstate);
+ ret = nvkm_pstate_prog(clk, pstate);
+ if (ret) {
+ nvkm_error(subdev, "error setting pstate %d: %d\n",
+ pstate, ret);
+ }
+}
+
static const struct nvkm_clk_func
nv40_clk = {
.read = nv40_clk_read,
.calc = nv40_clk_calc,
.prog = nv40_clk_prog,
.tidy = nv40_clk_tidy,
+ .update = nv40_clk_update,
.domains = {
{ nv_clk_src_crystal, 0xff },
{ nv_clk_src_href , 0xff },
diff --git a/drm/nouveau/nvkm/subdev/clk/nv50.c b/drm/nouveau/nvkm/subdev/c...
2015 Dec 02
2
[RFC PATCH 4/5] subdev/clk: print the base clocks
...uot;priv.h"
>
> #include <subdev/bios.h>
> +#include <subdev/bios/baseclock.h>
> #include <subdev/bios/boost.h>
> #include <subdev/bios/cstep.h>
> #include <subdev/bios/perf.h>
> @@ -562,10 +563,25 @@ int
> nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
> int index, bool allow_reclock, struct nvkm_clk *clk)
> {
> + struct nvkm_bios *bios;
> int ret, idx, arglen;
> const char *mode;
> + struct nvbios_baseclock_header header;
>
> nvkm_subdev_ctor(&nvkm_clk, device, index...
2017 Jul 21
0
[RFC PATCH 12/13] clk: parse thermal policies for throttling thresholds
...t0 + entry.up_offset) / 32));
+ }
+
+ if (mt == 0xff || rt == 0xff)
+ return;
+
+ clk->max_temp = mt;
+ clk->relax_temp = rt;
+
+ nvkm_debug(subdev, "setting up sw throttling thresholds (%u/%u°C)\n",
+ clk->max_temp, clk->relax_temp);
+}
+
int
nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
int index, bool allow_reclock, struct nvkm_clk *clk)
@@ -743,6 +782,9 @@ nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
clk->boost_mode = nvkm_longopt(device->cfgopt, "NvBoost",
NVKM_CLK_BOOST_NO...
2017 Sep 15
0
[RFC PATCH 16/29] clk: parse thermal policies for throttling thresholds
....t0 + entry.up_offset) / 32);
+ }
+
+ if (mt == 0xff || rt == 0xff)
+ return;
+
+ clk->max_temp = mt;
+ clk->relax_temp = rt;
+
+ nvkm_debug(subdev, "setting up sw throttling thresholds (%u/%u°C)\n",
+ clk->max_temp, clk->relax_temp);
+}
+
int
nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
int index, bool allow_reclock, struct nvkm_clk *clk)
@@ -733,6 +772,9 @@ nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
clk->boost_mode = nvkm_longopt(device->cfgopt, "NvBoost",
NVKM_CLK_BOOST_NO...
2016 Apr 18
0
[PATCH v4 35/37] clk: set clocks to pre suspend state after suspend
...nit)
return clk->func->init(clk);
- clk->astate = -1;
- clk->pstate = NULL;
- clk->exp_cstate = NVKM_CLK_CSTATE_DEFAULT;
- clk->set_cstate = NULL;
- nvkm_clk_update(clk, true);
+ nvkm_clk_update_impl(clk, true);
return 0;
}
@@ -672,8 +668,15 @@ nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
clk->func = func;
INIT_LIST_HEAD(&clk->states);
clk->domains = func->domains;
+
+ clk->pstate = NULL;
+ clk->astate = -1;
clk->ustate_ac = -1;
clk->ustate_dc = -1;
+
+ clk->exp_cstate = NVKM_CLK_CSTATE_DEFAULT;
+ clk->se...
2017 Mar 05
15
[PATCH 0/9] clk subdev updates
This series addresses various issues inside the reclocking code:
1. after resume the set clocks are reset
2. reclocking not possible while GPU is suspended
3. nouveau always does full reclocks even if only a change of the voltage is
required
Some of the patches were part of the bigger reclocking series I sent months
ago, some things have changed though.
This is also preparation work of
2017 Jul 21
15
[RFC PATCH 00/13] Thermal throttling
Adds Nouveau controlled thermal throttling for Kepler+ GPUs. With this I feel
safe enough to add support for Maxwell2 reclocking later on (still hidden
behind a switch, but we can be fairly sure to not overheat hardware if a user
isn't carefull enough)
Contains all patches from my clk update series, but I thought it makes sense
to include those in this series as well for completness.
Please
2016 Apr 18
0
[PATCH v4 32/37] clk: only do partial reclocks as required
...vkm_cstate_prog(clk, clk->pstate, cstate->cstate);
+ if (ret) {
+ nvkm_error(subdev, "error setting cstate %d: %d\n",
+ cstate->cstate, ret);
+ }
+ } else {
+ gf100_clk_update_volt(clk);
+ }
+ } else {
+ gf100_clk_update_volt(clk);
+ }
+}
+
static const struct nvkm_clk_func
gf100_clk = {
.read = gf100_clk_read,
.calc = gf100_clk_calc,
.prog = gf100_clk_prog,
.tidy = gf100_clk_tidy,
- .update = nv40_clk_update,
+ .update = gf100_clk_update,
.domains = {
{ nv_clk_src_crystal, 0xff },
{ nv_clk_src_href , 0xff },
diff --git a/drm/nouveau/nvkm/subdev/clk...
2015 Dec 01
7
[RFC PATCH 0/5] stabilize kepler reclocking
this series solves different issues we encounter on kepler cards while reclocking:
1. core clock doesn't change at all and produces a volting error (patch 1)
this can happen when the voltage table has only 0ed values in the header
so we have to parse the entries itself, which contain the right voltages
2. kepler won't clock to highest cstates (patch 2)
this happens, because there are
2017 Oct 08
1
[RFC PATCH 04/29] clk: Rename nvkm_pstate_calc to nvkm_clk_update and export it
...tate_calc()` did not return any error code, but `nvkm_clk_update()` now
can, so shouldn’t the function return the return value of `nvkm_clk_update()`
instead? Or at least do some error checking on what `nvkm_clk_update()`
returned?
> }
>
> @@ -675,7 +681,7 @@ nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
> clk->ustate_dc = -1;
> clk->allow_reclock = allow_reclock;
>
> - INIT_WORK(&clk->work, nvkm_pstate_work);
> + INIT_WORK(&clk->work, nvkm_clk_update_work);
> init_waitqueue_head(&clk->wait);
> atomic_set(&...
2015 Dec 02
2
[RFC PATCH 5/5] clk: allow boosting only when NvBoost is set
...te)
>
> list_add(&cstate->head, &pstate->list);
> return 0;
> +err:
> + kfree(cstate);
> + return -EINVAL;
> }
>
> /******************************************************************************
> @@ -573,13 +582,19 @@ nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
>
> if (bios && !nvbios_baseclock_parse(bios, &header)) {
> struct nvbios_baseclock_entry base_entry, boost_entry;
> + clk->boost_mode = nvkm_longopt(device->cfgopt, "NvBoost", 0);
> if (nvbios_baseclock_get_en...
2015 Dec 01
0
[RFC PATCH 4/5] subdev/clk: print the base clocks
...lk/base.c
@@ -24,6 +24,7 @@
#include "priv.h"
#include <subdev/bios.h>
+#include <subdev/bios/baseclock.h>
#include <subdev/bios/boost.h>
#include <subdev/bios/cstep.h>
#include <subdev/bios/perf.h>
@@ -562,10 +563,25 @@ int
nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
int index, bool allow_reclock, struct nvkm_clk *clk)
{
+ struct nvkm_bios *bios;
int ret, idx, arglen;
const char *mode;
+ struct nvbios_baseclock_header header;
nvkm_subdev_ctor(&nvkm_clk, device, index, 0, &clk->subdev);
+ bios = devi...
2015 Dec 02
0
[RFC PATCH 4/5] subdev/clk: print the base clocks
...gt; #include <subdev/bios.h>
> > +#include <subdev/bios/baseclock.h>
> > #include <subdev/bios/boost.h>
> > #include <subdev/bios/cstep.h>
> > #include <subdev/bios/perf.h>
> > @@ -562,10 +563,25 @@ int
> > nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
> > int index, bool allow_reclock, struct nvkm_clk *clk)
> > {
> > + struct nvkm_bios *bios;
> > int ret, idx, arglen;
> > const char *mode;
> > + struct nvbios_baseclock_header header;
> >
> > nvkm_subdev_ctor(&...
2016 Mar 17
0
[PATCH 04/19] clk: print the base clocks
...lk/base.c
@@ -24,6 +24,7 @@
#include "priv.h"
#include <subdev/bios.h>
+#include <subdev/bios/baseclock.h>
#include <subdev/bios/boost.h>
#include <subdev/bios/cstep.h>
#include <subdev/bios/perf.h>
@@ -561,10 +562,24 @@ int
nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
int index, bool allow_reclock, struct nvkm_clk *clk)
{
+ struct nvkm_subdev *subdev = &clk->subdev;
+ struct nvkm_bios *bios = device->bios;
int ret, idx, arglen;
const char *mode;
+ struct nvbios_baseclk_header h;
+
+ nvkm_subdev_ctor(&...
2017 Mar 05
0
[PATCH 8/9] clk: Set clocks to pre suspend state after suspend
...e we have no idea what clocks are set, reset the state
clk->pstate = NULL;
- clk->exp_cstateid = NVKM_CLK_CSTATE_DEFAULT;
clk->cstate = NULL;
- clk->temp = 90; /* reasonable default value */
nvkm_clk_update(clk, true);
return 0;
}
@@ -685,8 +683,13 @@ nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
clk->func = func;
INIT_LIST_HEAD(&clk->states);
clk->domains = func->domains;
+
+ clk->astate = NVKM_CLK_PSTATE_DEFAULT;
clk->ustate_ac = -1;
clk->ustate_dc = -1;
+ clk->exp_cstateid = NVKM_CLK_CSTATE_DEFAULT;
+ clk->temp =...
2017 Sep 15
0
[RFC PATCH 09/29] clk: Set clocks to pre suspend state after suspend
...ave no idea what clocks are set, reset the state
+ */
clk->pstate = NULL;
- clk->exp_cstateid = NVKM_CLK_CSTATE_DEFAULT;
clk->cstate = NULL;
- clk->temp = 90; /* reasonable default value */
nvkm_clk_update(clk, true);
return 0;
}
@@ -683,8 +682,13 @@ nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
clk->func = func;
INIT_LIST_HEAD(&clk->states);
clk->domains = func->domains;
+
+ clk->astate = NVKM_CLK_PSTATE_DEFAULT;
clk->ustate_ac = -1;
clk->ustate_dc = -1;
+ clk->exp_cstateid = NVKM_CLK_CSTATE_DEFAULT;
+ clk->temp =...
2017 Sep 15
42
[RFC PATCH 00/29] Current State of my clk patches
Just wanted to post updated versions of my last series/patches. Reviews
welcomed.
It would be also nice if we agree on features I should focus upstreaming, so
that this work can be better splitted or reordered.
Sadly most of my patches depend on the rather big clk subdev rework and I think
those patches shows best, why I think this rework is actually needed and makes
things much easier to add