Displaying 20 results from an estimated 20 matches for "gk20a_pmu_dvfs_data".
2015 Mar 20
2
[PATCH 1/3] platform: release IOMMU's mm upon exit
nvkm_mm_fini() was not called when exiting the driver, resulting in a
memory leak. Fix this.
Signed-off-by: Alexandre Courbot <acourbot at nvidia.com>
---
drm/nouveau/nouveau_platform.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drm/nouveau/nouveau_platform.c b/drm/nouveau/nouveau_platform.c
index 3691982452a9..f83aa12ee5c6 100644
--- a/drm/nouveau/nouveau_platform.c
+++
2016 Apr 20
2
[PATCH v4 27/37] clk: make pstate a pointer to nvkm_pstate
...*pmu, int *state)
> -{
> - struct nvkm_clk *clk = pmu->base.subdev.device->clk;
> -
> - *state = clk->pstate;
> - return 0;
> -}
> -
> -static int
> gk20a_pmu_dvfs_get_target_state(struct gk20a_pmu *pmu,
> int *state, int load)
> {
> struct gk20a_pmu_dvfs_data *data = pmu->data;
> struct nvkm_clk *clk = pmu->base.subdev.device->clk;
> + struct nvkm_pstate *pstate = clk->pstate;
> int cur_level, level;
>
> + if (!pstate) {
> + *state = 0;
> + return 1;
> + }
> +
> /* For GK20A, the performance level...
2015 Apr 13
3
[PATCH v4] pmu/gk20a: PMU boot support
...sg_unhandled_cmd {
+ u8 msg_type;
+ u8 unit_id;
+};
+
+struct pmu_rc_msg {
+ u8 msg_type;
+ struct pmu_rc_msg_unhandled_cmd unhandled_cmd;
+};
+
+/*pmu generic msg format*/
+struct pmu_msg {
+ struct pmu_hdr hdr;
+ union {
+ struct pmu_init_msg init;
+ struct pmu_rc_msg rc;
+ } msg;
+};
struct gk20a_pmu_dvfs_data {
int p_load_target;
@@ -39,8 +211,19 @@ struct gk20a_pmu_priv {
struct nvkm_pmu base;
struct nvkm_alarm alarm;
struct gk20a_pmu_dvfs_data *data;
+ struct pmu_ucode_desc *desc;
+ struct pmu_buf_desc ucode;
+ struct pmu_buf_desc trace_buf;
+ struct mutex pmu_copy_lock;
+ bool pmu_ready;
+ in...
2017 Oct 08
1
[RFC PATCH 06/29] clk: Make pstate a pointer to nvkm_pstate
...tate(struct gk20a_pmu *pmu, int *state)
> -{
> - struct nvkm_clk *clk = pmu->base.subdev.device->clk;
> -
> - *state = clk->pstate;
> -}
> -
> static int
> gk20a_pmu_dvfs_get_target_state(struct gk20a_pmu *pmu,
> int *state, int load)
> {
> struct gk20a_pmu_dvfs_data *data = pmu->data;
> struct nvkm_clk *clk = pmu->base.subdev.device->clk;
> + struct nvkm_pstate *pstate = clk->pstate;
> int cur_level, level;
>
> + if (!pstate) {
> + *state = 0;
> + return 1;
> + }
> +
> /* For GK20A, the performance level is d...
2016 Apr 18
0
[PATCH v4 27/37] clk: make pstate a pointer to nvkm_pstate
...}
static int
-gk20a_pmu_dvfs_get_cur_state(struct gk20a_pmu *pmu, int *state)
-{
- struct nvkm_clk *clk = pmu->base.subdev.device->clk;
-
- *state = clk->pstate;
- return 0;
-}
-
-static int
gk20a_pmu_dvfs_get_target_state(struct gk20a_pmu *pmu,
int *state, int load)
{
struct gk20a_pmu_dvfs_data *data = pmu->data;
struct nvkm_clk *clk = pmu->base.subdev.device->clk;
+ struct nvkm_pstate *pstate = clk->pstate;
int cur_level, level;
+ if (!pstate) {
+ *state = 0;
+ return 1;
+ }
+
/* For GK20A, the performance level is directly mapped to pstate */
- level = cur_level =...
2016 Apr 20
0
[PATCH v4 27/37] clk: make pstate a pointer to nvkm_pstate
...->clk;
>> -
>> - *state = clk->pstate;
>> - return 0;
>> -}
>> -
>> -static int
>> gk20a_pmu_dvfs_get_target_state(struct gk20a_pmu *pmu,
>> int *state, int load)
>> {
>> struct gk20a_pmu_dvfs_data *data = pmu->data;
>> struct nvkm_clk *clk = pmu->base.subdev.device->clk;
>> + struct nvkm_pstate *pstate = clk->pstate;
>> int cur_level, level;
>> + if (!pstate) {
>> + *state = 0;
>> + return...
2017 Mar 05
0
[PATCH 3/9] clk: Make pstate a pointer to nvkm_pstate
...0, false);
}
-static void
-gk20a_pmu_dvfs_get_cur_state(struct gk20a_pmu *pmu, int *state)
-{
- struct nvkm_clk *clk = pmu->base.subdev.device->clk;
-
- *state = clk->pstate;
-}
-
static int
gk20a_pmu_dvfs_get_target_state(struct gk20a_pmu *pmu,
int *state, int load)
{
struct gk20a_pmu_dvfs_data *data = pmu->data;
struct nvkm_clk *clk = pmu->base.subdev.device->clk;
+ struct nvkm_pstate *pstate = clk->pstate;
int cur_level, level;
+ if (!pstate) {
+ *state = 0;
+ return 1;
+ }
+
/* For GK20A, the performance level is directly mapped to pstate */
- level = cur_level =...
2017 Sep 15
0
[RFC PATCH 06/29] clk: Make pstate a pointer to nvkm_pstate
...0, false);
}
-static void
-gk20a_pmu_dvfs_get_cur_state(struct gk20a_pmu *pmu, int *state)
-{
- struct nvkm_clk *clk = pmu->base.subdev.device->clk;
-
- *state = clk->pstate;
-}
-
static int
gk20a_pmu_dvfs_get_target_state(struct gk20a_pmu *pmu,
int *state, int load)
{
struct gk20a_pmu_dvfs_data *data = pmu->data;
struct nvkm_clk *clk = pmu->base.subdev.device->clk;
+ struct nvkm_pstate *pstate = clk->pstate;
int cur_level, level;
+ if (!pstate) {
+ *state = 0;
+ return 1;
+ }
+
/* For GK20A, the performance level is directly mapped to pstate */
- level = cur_level =...
2015 Apr 30
2
[PATCH v4] pmu/gk20a: PMU boot support
...>> +
>> +/*pmu generic msg format*/
>> +struct pmu_msg {
>> + struct pmu_hdr hdr;
>> + union {
>> + struct pmu_init_msg init;
>> + struct pmu_rc_msg rc;
>> + } msg;
>> +};
>>
>> struct gk20a_pmu_dvfs_data {
>> int p_load_target;
>> @@ -39,8 +211,19 @@ struct gk20a_pmu_priv {
>> struct nvkm_pmu base;
>> struct nvkm_alarm alarm;
>> struct gk20a_pmu_dvfs_data *data;
>> + struct pmu_ucode_desc *desc;
>> + struct pmu_bu...
2015 Apr 08
3
[PATCH V2] pmu/gk20a: PMU boot support.
...{
+ u8 msg_type;
+ struct pmu_rc_msg_unhandled_cmd unhandled_cmd;
+};
+
+struct pmu_msg {
+ struct pmu_hdr hdr;
+ union {
+ struct pmu_init_msg init;
+ struct pmu_rc_msg rc;
+ } msg;
+};
+
#define BUSY_SLOT 0
#define CLK_SLOT 7
+#define GK20A_PMU_UCODE_IMAGE "gpmu_ucode.bin"
struct gk20a_pmu_dvfs_data {
int p_load_target;
@@ -39,8 +206,22 @@ struct gk20a_pmu_priv {
struct nvkm_pmu base;
struct nvkm_alarm alarm;
struct gk20a_pmu_dvfs_data *data;
+ struct pmu_ucode_desc *desc;
+ struct pmu_buf_desc ucode;
+ struct pmu_buf_desc trace_buf;
+ struct mutex pmu_copy_lock;
+ bool pmu_ready;
+ in...
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 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
2015 Mar 11
0
[PATCH] pmu/gk20a: PMU boot support.
...t; +static int gk20a_init_pmu_setup_sw(struct nvkm_pmu *ppmu);
> +static int gk20a_init_pmu_setup_hw1(struct nvkm_pmu *ppmu, struct nvkm_mc *pmc);
> +static void gk20a_pmu_intr(struct nvkm_subdev *subdev);
>
> +static void gk20a_pmu_pgob(struct nvkm_pmu *ppmu, bool enable);
> struct gk20a_pmu_dvfs_data {
> int p_load_target;
> int p_load_max;
> int p_smooth;
> unsigned int avg_load;
> };
> -
> struct gk20a_pmu_priv {
> struct nvkm_pmu base;
> struct nvkm_alarm alarm;
> @@ -46,7 +92,30 @@ struct gk20a_pmu_dvfs_dev_stat...
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 Mar 11
3
[PATCH] pmu/gk20a: PMU boot support.
...t struct firmware **pfw);
+static int gk20a_init_pmu_setup_sw(struct nvkm_pmu *ppmu);
+static int gk20a_init_pmu_setup_hw1(struct nvkm_pmu *ppmu, struct nvkm_mc *pmc);
+static void gk20a_pmu_intr(struct nvkm_subdev *subdev);
+static void gk20a_pmu_pgob(struct nvkm_pmu *ppmu, bool enable);
struct gk20a_pmu_dvfs_data {
int p_load_target;
int p_load_max;
int p_smooth;
unsigned int avg_load;
};
-
struct gk20a_pmu_priv {
struct nvkm_pmu base;
struct nvkm_alarm alarm;
@@ -46,7 +92,30 @@ struct gk20a_pmu_dvfs_dev_status {
unsigned long busy;
int cur_state;
};
-
+int gk20a_pmu_debugfs_init(struct n...
2015 Mar 12
2
[PATCH] pmu/gk20a: PMU boot support.
...t; +static int gk20a_init_pmu_setup_sw(struct nvkm_pmu *ppmu);
> +static int gk20a_init_pmu_setup_hw1(struct nvkm_pmu *ppmu, struct nvkm_mc *pmc);
> +static void gk20a_pmu_intr(struct nvkm_subdev *subdev);
>
> +static void gk20a_pmu_pgob(struct nvkm_pmu *ppmu, bool enable);
> struct gk20a_pmu_dvfs_data {
> int p_load_target;
> int p_load_max;
> int p_smooth;
> unsigned int avg_load;
> };
> -
> struct gk20a_pmu_priv {
> struct nvkm_pmu base;
> struct nvkm_alarm alarm;
> @@ -46,7 +92,30 @@ struct gk20a_pmu_dvfs_dev_stat...
2016 Apr 07
29
[PATCH v3 00/29] Volting/Clocking improvements for Fermi and newer
This is an updated series for the old clocking improvement one.
I think I got everything needed in place and also a simple update mechanism for
updating the cstates/voltage on temperature changes.
If anything is unclear how I REed or got the information, please leave a note
so that I can provide additional information in the commits.
Besides that I think we are pretty close now and only some
2016 Apr 18
63
[PATCH v4 00/37] Volting/Clocking improvements for Fermi and newer
We are slowly getting there!
v4 of the series with some realy good improvements, so I am sure this is like
95% done and only needs some proper polishing and proper Reviews!
I also added the NvVoltOffsetmV module parameter, so that a user is able to
over and !under!-volt the GPU. Overvolting makes sense, when there are still
some reclocking issues left, which might be solved by a higher voltage.