Displaying 20 results from an estimated 46 matches for "nvkm_cstate".
2016 Apr 18
0
[PATCH v4 32/37] clk: only do partial reclocks as required
...km/subdev/clk/priv.h | 4 +++
5 files changed, 77 insertions(+), 5 deletions(-)
diff --git a/drm/nouveau/nvkm/subdev/clk/base.c b/drm/nouveau/nvkm/subdev/clk/base.c
index 3c40f67..2776d79 100644
--- a/drm/nouveau/nvkm/subdev/clk/base.c
+++ b/drm/nouveau/nvkm/subdev/clk/base.c
@@ -107,7 +107,7 @@ nvkm_cstate_valid(struct nvkm_clk *clk, struct nvkm_cstate *cstate, u32 max_volt
voltage >= volt->min_uv;
}
-static struct nvkm_cstate *
+struct nvkm_cstate *
nvkm_cstate_find_best(struct nvkm_clk *clk, struct nvkm_pstate *pstate,
struct nvkm_cstate *start)
{
@@ -148,7 +148,7 @@ nv...
2016 Apr 18
0
[PATCH v4 13/37] clk: respect voltage limits in nvkm_cstate_prog
...lect a cstate which current voltage (depending on
the temperature) is higher than
1. the max volt entries in the voltage map table
2. what tha gpu actually can volt to.
this resolves all remaining volting errors on fermi and newer.
v3: use find_best for all cstates before actually trying
add nvkm_cstate_get function to get cstate by index
Signed-off-by: Karol Herbst <nouveau at karolherbst.de>
---
drm/nouveau/nvkm/subdev/clk/base.c | 83 +++++++++++++++++++++++++++++++++-----
1 file changed, 74 insertions(+), 9 deletions(-)
diff --git a/drm/nouveau/nvkm/subdev/clk/base.c b/drm/nouveau/nvk...
2018 Mar 27
0
[PATCH v2] gpu: drm: nouveau: Use list_for_each_entry_from_reverse
...4 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
index 81c3567..ba6a868 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
@@ -109,18 +109,17 @@ nvkm_cstate_valid(struct nvkm_clk *clk, struct nvkm_cstate *cstate,
static struct nvkm_cstate *
nvkm_cstate_find_best(struct nvkm_clk *clk, struct nvkm_pstate *pstate,
- struct nvkm_cstate *start)
+ struct nvkm_cstate *cstate)
{
struct nvkm_device *device = clk->subdev.device;
struct...
2018 Mar 27
2
[PATCH] gpu: drm: nouveau: Use list_for_each_entry_from_reverse
..., 3 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
index 81c3567..5e56f74 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
@@ -113,7 +113,6 @@ nvkm_cstate_find_best(struct nvkm_clk *clk, struct nvkm_pstate *pstate,
{
struct nvkm_device *device = clk->subdev.device;
struct nvkm_volt *volt = device->volt;
- struct nvkm_cstate *cstate;
int max_volt;
if (!pstate || !start)
@@ -133,13 +132,12 @@ nvkm_cstate_find_best(struct nvkm_clk *clk,...
2016 Apr 18
0
[PATCH v4 28/37] clk: hold information about the current cstate status
...m/nouveau/include/nvkm/subdev/clk.h
+++ b/drm/nouveau/include/nvkm/subdev/clk.h
@@ -95,6 +95,11 @@ struct nvkm_clk {
int ustate_ac; /* user-requested (-1 disabled, -2 perfmon) */
int ustate_dc; /* user-requested (-1 disabled, -2 perfmon) */
int astate; /* perfmon adjustment (base) */
+ struct nvkm_cstate *set_cstate;
+#define NVKM_CLK_CSTATE_DEFAULT -1
+#define NVKM_CLK_CSTATE_BASE -2
+#define NVKM_CLK_CSTATE_HIGHEST -3
+ int exp_cstate;
bool allow_reclock;
#define NVKM_CLK_BOOST_NONE 0x0
diff --git a/drm/nouveau/nvkm/subdev/clk/base.c b/drm/nouveau/nvkm/subdev/clk/base.c
index 762dfe2..23f...
2017 Sep 15
0
[RFC PATCH 07/29] clk: Hold information about the current cstate status
.../nouveau/include/nvkm/subdev/clk.h
+++ b/drm/nouveau/include/nvkm/subdev/clk.h
@@ -101,6 +101,8 @@ struct nvkm_clk {
int ustate_ac; /* user-requested (-1 disabled, -2 perfmon) */
int ustate_dc; /* user-requested (-1 disabled, -2 perfmon) */
int astate; /* perfmon adjustment (base) */
+ struct nvkm_cstate *cstate;
+ int exp_cstateid;
u8 temp;
bool allow_reclock;
diff --git a/drm/nouveau/nvkm/subdev/clk/base.c b/drm/nouveau/nvkm/subdev/clk/base.c
index 0d4d9fdf..d37c13b7 100644
--- a/drm/nouveau/nvkm/subdev/clk/base.c
+++ b/drm/nouveau/nvkm/subdev/clk/base.c
@@ -146,9 +146,14 @@ static struct...
2016 Apr 18
63
[PATCH v4 00/37] Volting/Clocking improvements for Fermi and newer
...voltage range we are able to set
volt: add nvkm_volt_map_min function
clk: don't create cstates whit voltages higher than what the gpu can
do
volt: parse the max voltage map entries
volt: add min_id parameter to nvkm_volt_set_id
clk: export nvkm_volt_map
clk: add index field to nvkm_cstate
add daemon to compare nouveau with blob voltage
volt: add temperature parameter to nvkm_volt_map
clk: fixup cstate selection
clk: respect voltage limits in nvkm_cstate_prog
bios: add parsing of BASE CLOCK table
clk: allow boosting only when NvBoost is set
volt: don't require perfe...
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
2018 Mar 27
0
[PATCH] gpu: drm: nouveau: Use list_for_each_entry_from_reverse
...s(-)
>
> diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
> index 81c3567..5e56f74 100644
> --- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
> +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
> @@ -113,7 +113,6 @@ nvkm_cstate_find_best(struct nvkm_clk *clk, struct nvkm_pstate *pstate,
> {
> struct nvkm_device *device = clk->subdev.device;
> struct nvkm_volt *volt = device->volt;
> - struct nvkm_cstate *cstate;
> int max_volt;
>
> if (!pstate || !start)
&g...
2016 Apr 07
29
[PATCH v3 00/29] Volting/Clocking improvements for Fermi and newer
...voltage range we are able to set
volt: add nvkm_volt_map_min function
clk: don't create cstates whit voltages higher than what the gpu can
do
volt: parse the max voltage map entries
volt: add min_id parameter to nvkm_volt_set_id
clk: export nvkm_volt_map
clk: add index field to nvkm_cstate
add daemon to compare nouveau with blob voltage
volt: add temperature parameter to nvkm_volt_map
clk: fixup cstate selection
clk: respect voltage limits in nvkm_cstate_prog
bios: add parsing of BASE CLOCK table
clk: allow boosting only when NvBoost is set
volt: don't require perfe...
2016 Aug 16
21
[PATCH v5 00/20] Engine Reclocking Fixes for Fermi-Maxwell2
...Handle voltage table version 0x50 with 0ed header
volt: Properly detect entry based voltage tables
clk: Don't create cstates with voltages higher than what the gpu can
do
volt: Parse the max voltage map entries
volt: Add min_id parameter to nvkm_volt_set_id
clk: Add index field to nvkm_cstate
clk: Let nvkm_clk_tstate take a temperature value
volt: Add temperature parameter to nvkm_volt_map
clk: Fixup cstate selection
clk: Respect voltage limits in nvkm_cstate_prog
bios: Add parsing of VPSTATE table
clk: Allow boosting only when NvBoost is set
volt: Don't require perfec...
2017 Jul 22
1
[RFC PATCH 12/13] clk: parse thermal policies for throttling thresholds
...>
> diff --git a/drm/nouveau/include/nvkm/subdev/clk.h b/drm/nouveau/include/nvkm/subdev/clk.h
> index f35518c3..f5ff1fd9 100644
> --- a/drm/nouveau/include/nvkm/subdev/clk.h
> +++ b/drm/nouveau/include/nvkm/subdev/clk.h
> @@ -104,6 +104,8 @@ struct nvkm_clk {
> struct nvkm_cstate *cstate;
> int exp_cstateid;
> u8 temp;
> + u8 max_temp;
> + u8 relax_temp;
>
> bool allow_reclock;
> #define NVKM_CLK_BOOST_NONE 0x0
> diff --git a/drm/nouveau/nvkm/subdev/clk/base.c b/drm/nouveau/nvkm/subdev/clk/base.c
> index 810...
2017 Oct 08
1
[RFC PATCH 16/29] clk: parse thermal policies for throttling thresholds
...ns(+)
>
> diff --git a/drm/nouveau/include/nvkm/subdev/clk.h b/drm/nouveau/include/nvkm/subdev/clk.h
> index f35518c3..f5ff1fd9 100644
> --- a/drm/nouveau/include/nvkm/subdev/clk.h
> +++ b/drm/nouveau/include/nvkm/subdev/clk.h
> @@ -104,6 +104,8 @@ struct nvkm_clk {
> struct nvkm_cstate *cstate;
> int exp_cstateid;
> u8 temp;
> + u8 max_temp;
> + u8 relax_temp;
I guess those should be int, similar to the changes you made in patch 1.
>
> bool allow_reclock;
> #define NVKM_CLK_BOOST_NONE 0x0
> diff --git a/drm/nouveau/nvkm/subdev/clk/base.c b/dr...
2017 Nov 17
35
[PATCH 00/32] Updated State of my clk patches
...d NVKM_CLK_PSTATE_BOOT
clk: Rename NVKM_CLK_CSTATE_HIGHEST to NVKM_CLK_CSTATE_AUTO
clk: Rename nvkm_clk.states to pstates
clk: Rename nvkm_pstate.list to cstates
clk: Remove dstate
clk: Rename nvkm_pstate_calc to nvkm_clk_update and export it
clk: Use list_for_each_entry_from_reverse in nvkm_cstate_find_best
clk: We should pass the pstate id around not the index in the list
clk: Hold information about the current cstate status
clk: Refactor the base and boost clock limits so that we can limit
pstates
therm: Move the temp readout into nvkm_therm_update
core/device: Move therm beh...
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
2023 Mar 01
5
[PATCH 0/2] drm/nouveau: avoid usage of list iterator after loop
This patch set includes two instances where the list iterator variable
'pstate' is implicitly assumed to be valid after the iterator loop.
While in pratice that is most likely the case (if
'pstatei'/'args->v0.state' is <= the elements in clk->states), we should
explicitly only allow 'pstate' to always point to correct 'nvkm_pstate'
structs.
That
2017 Jul 01
7
[PATCH v2 0/7] 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
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 changing the clock state due to temperature
changes and dynamic reclocking.
v2: remove commits
2017 Sep 03
8
[PATCH 0/8] 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. racy reclocking while GPU is suspending and leading to hangs
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 changing the clock state due to
2017 Sep 15
42
[RFC PATCH 00/29] Current State of my clk patches
...bios/vpstate: there are some fermi vbios with no boost or tdp entry
bios/vpstate: parse max battery id
clk: refactor the base and boost clock limits so that we can limit
pstates as well
clk: implement limiting pstates just like we do for cstates
clk: move the switch out of the loop in nvkm_cstate_valid
clk: limit clocks on battery
drm/nouveau/include/nvif/if0001.h | 15 +
drm/nouveau/include/nvkm/core/device.h | 2 +-
.../include/nvkm/subdev/bios/thermal_policies.h | 27 ++
drm/nouveau/include/nvkm/subdev/bios/vpstate.h | 1 +
drm/nouveau/includ...
2017 Jul 21
0
[RFC PATCH 12/13] clk: parse thermal policies for throttling thresholds
...+++++
2 files changed, 44 insertions(+)
diff --git a/drm/nouveau/include/nvkm/subdev/clk.h b/drm/nouveau/include/nvkm/subdev/clk.h
index f35518c3..f5ff1fd9 100644
--- a/drm/nouveau/include/nvkm/subdev/clk.h
+++ b/drm/nouveau/include/nvkm/subdev/clk.h
@@ -104,6 +104,8 @@ struct nvkm_clk {
struct nvkm_cstate *cstate;
int exp_cstateid;
u8 temp;
+ u8 max_temp;
+ u8 relax_temp;
bool allow_reclock;
#define NVKM_CLK_BOOST_NONE 0x0
diff --git a/drm/nouveau/nvkm/subdev/clk/base.c b/drm/nouveau/nvkm/subdev/clk/base.c
index 81093e13..60edb57b 100644
--- a/drm/nouveau/nvkm/subdev/clk/base.c
+++ b/drm...