Displaying 20 results from an estimated 47 matches for "nvkm_clk_ctor".
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
2015 Sep 23
2
[PATCH 1/2] fb/ramgf100: disable memory reclocking by default
Although memory reclocking seems to be completely broken on my GF119, we
can at least allow users to enable reclocking for the core clock.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
drm/nouveau/nvkm/subdev/fb/ramgf100.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drm/nouveau/nvkm/subdev/fb/ramgf100.c b/drm/nouveau/nvkm/subdev/fb/ramgf100.c
2017 Jul 22
1
[RFC PATCH 12/13] clk: parse thermal policies for throttling thresholds
...+ 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->c...
2017 Oct 08
1
[RFC PATCH 16/29] clk: parse thermal policies for throttling thresholds
...+
> + 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, &qu...
2019 Sep 06
1
[PATCH v3] clk: Restore BYPASS_PLL_CHECK from PLLs
...vkm_mask(device, addr + 0x00, 0x00000010, 0x00000010);
/* Enable sync mode */
nvkm_mask(device, addr + 0x00, 0x00000004, 0x00000004);
@@ -476,5 +479,5 @@ gf100_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk)
return -ENOMEM;
*pclk = &clk->base;
- return nvkm_clk_ctor(&gf100_clk, device, index, false, &clk->base);
+ return nvkm_clk_ctor(&gf100_clk, device, index, true, &clk->base);
}
diff --git a/drm/nouveau/nvkm/subdev/clk/gk104.c b/drm/nouveau/nvkm/subdev/clk/gk104.c
index 0b37e3da..c9ede404 100644
--- a/drm/nouveau/nvkm/subdev/clk/gk104...
2015 Dec 02
2
[RFC PATCH 4/5] subdev/clk: print the base clocks
...+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(&...
2016 Jan 13
0
[PATCH 2/2] clk: allow engine reclock on fermi
...uveau/nvkm/subdev/clk/gf100.c
index ad93350..2ce902f 100644
--- a/drm/nouveau/nvkm/subdev/clk/gf100.c
+++ b/drm/nouveau/nvkm/subdev/clk/gf100.c
@@ -535,6 +535,6 @@ gf100_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk)
return -ENOMEM;
*pclk = &clk->base;
- return nvkm_clk_ctor(&gf100_clk, device, index, false, false,
+ return nvkm_clk_ctor(&gf100_clk, device, index, true, false,
&clk->base);
}
--
2.7.0
2017 Jul 21
0
[RFC PATCH 12/13] clk: parse thermal policies for throttling thresholds
...rt = min(rt, (s16)((entry.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",...
2017 Sep 15
0
[RFC PATCH 16/29] clk: parse thermal policies for throttling thresholds
...rt = min_t(s16, rt, (entry.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",...
2019 Sep 09
0
[PATCH v4] clk: Restore BYPASS_PLL_CHECK from PLLs
...vkm_mask(device, addr + 0x00, 0x00000010, 0x00000010);
/* Enable sync mode */
nvkm_mask(device, addr + 0x00, 0x00000004, 0x00000004);
@@ -476,5 +478,5 @@ gf100_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk)
return -ENOMEM;
*pclk = &clk->base;
- return nvkm_clk_ctor(&gf100_clk, device, index, false, &clk->base);
+ return nvkm_clk_ctor(&gf100_clk, device, index, true, &clk->base);
}
diff --git a/drm/nouveau/nvkm/subdev/clk/gk104.c b/drm/nouveau/nvkm/subdev/clk/gk104.c
index 0b37e3da..de3e00c9 100644
--- a/drm/nouveau/nvkm/subdev/clk/gk104...
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
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
...> return 0;
`nvkm_pstate_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->...
2015 Dec 02
2
[RFC PATCH 5/5] clk: allow boosting only when NvBoost is set
...x, struct nvkm_pstate *pstate)
>
> 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);
>...
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
2015 Dec 01
0
[RFC PATCH 4/5] subdev/clk: print the base clocks
...b/drm/nouveau/nvkm/subdev/clk/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...
2015 Dec 02
0
[RFC PATCH 4/5] subdev/clk: print the base clocks
...v.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;
> >
>...
2016 Mar 17
0
[PATCH 04/19] clk: print the base clocks
...b/drm/nouveau/nvkm/subdev/clk/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;...
2017 Mar 05
0
[PATCH 8/9] clk: Set clocks to pre suspend state after suspend
...DEFAULT;
+ // after a resume 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_CSTAT...
2017 Sep 15
0
[RFC PATCH 09/29] clk: Set clocks to pre suspend state after suspend
...T;
+ /* after a resume 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;
}
@@ -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_CSTAT...