Displaying 16 results from an estimated 16 matches for "nouveau_clock_ast".
2015 Jan 07
1
[PATCH V2 1/4] clk: allow non-blocking for nouveau_clock_astate()
...es?
Hey Vince,
Ah sorry, I thought my comment on the other patch indicated I was fine
with it. I'll merge them now so they don't get lost :)
Thanks,
Ben.
>
> Thanks,
> Vince
>
>
> On 12/22/2014 05:11 PM, Vince Hsu wrote:
>>
>> There might be some callers of nouveau_clock_astate(), and they are from
>> inetrrupt context. So we must ensure that this function can be atomic in
>> that condition. This patch adds one parameter which is subsequently passed
>> to nouveau_pstate_calc(). Therefore we can choose whether we want to wait
>> for the pstate wo...
2015 Jan 07
0
[PATCH V2 1/4] clk: allow non-blocking for nouveau_clock_astate()
Hello Ben and Martin,
Any comments for this series?
Thanks,
Vince
On 12/22/2014 05:11 PM, Vince Hsu wrote:
> There might be some callers of nouveau_clock_astate(), and they are from
> inetrrupt context. So we must ensure that this function can be atomic in
> that condition. This patch adds one parameter which is subsequently passed
> to nouveau_pstate_calc(). Therefore we can choose whether we want to wait
> for the pstate work's complet...
2014 Dec 22
7
[PATCH V2 1/4] clk: allow non-blocking for nouveau_clock_astate()
There might be some callers of nouveau_clock_astate(), and they are from
inetrrupt context. So we must ensure that this function can be atomic in
that condition. This patch adds one parameter which is subsequently passed
to nouveau_pstate_calc(). Therefore we can choose whether we want to wait
for the pstate work's completion or not.
Signed-...
2015 Jan 07
1
[PATCH V2 1/4] clk: allow non-blocking for nouveau_clock_astate()
On 07/01/15 07:10, Vince Hsu wrote:
> Hello Ben and Martin,
>
> Any comments for this series?
>
> Thanks,
> Vince
Hello Vince,
I have not really settled yet, so I don't think I have the time to
review your patches right now as I have more urgent personnal priorities.
Sorry, hope to be available soon!
Martin
2014 Dec 18
4
[RFC PATCH 0/3] introduce DVFS for GK20A
...amework, we create a simple subdev in Nouveau for the same purpose. That's
because we don't want to make the DVFS implementation for GK20A far more
than enough in the beginning and hinder the implementation for dGPU in the
future.
Thanks,
Vince
Vince Hsu (3):
clk: allow non-blocking for nouveau_clock_astate()
dvfs: add support for GK20A
clk: allow users to enable auto mode when loading driver
drm/Kbuild | 2 +
drm/core/include/subdev/dvfs.h | 1 +
drm/core/subdev/dvfs/base.c | 1 +
drm/core/subdev/dvfs/gk20a.c | 1 +
drm/core/subdev/dvfs/priv.h | 1 +
nvk...
2014 Aug 23
2
RESEND NVA3 clock tree improvements
Resend of patch #7 to fix behaviour when failing to pause parts of the GPU
2014 Aug 21
0
[PATCH 7/7] clock/nva3: Pause the GPU before reclocking
...lc(struct nouveau_clock *, struct nvbios_pll *,
int clk, struct nouveau_pll_vals *);
+int nva3_clock_pre(struct nouveau_clock *clk, unsigned long *flags);
+void nva3_clock_post(struct nouveau_clock *clk, unsigned long *flags);
+
int nouveau_clock_ustate(struct nouveau_clock *, int req);
int nouveau_clock_astate(struct nouveau_clock *, int req, int rel);
int nouveau_clock_dstate(struct nouveau_clock *, int req, int rel);
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/nva3.c b/drivers/gpu/drm/nouveau/core/subdev/clock/nva3.c
index 14a5060..cd31cf3 100644
--- a/drivers/gpu/drm/nouveau/core/subdev...
2014 Aug 23
0
[PATCH] clock/nva3: Pause the GPU before reclocking
...lc(struct nouveau_clock *, struct nvbios_pll *,
int clk, struct nouveau_pll_vals *);
+int nva3_clock_pre(struct nouveau_clock *clk, unsigned long *flags);
+void nva3_clock_post(struct nouveau_clock *clk, unsigned long *flags);
+
int nouveau_clock_ustate(struct nouveau_clock *, int req);
int nouveau_clock_astate(struct nouveau_clock *, int req, int rel);
int nouveau_clock_dstate(struct nouveau_clock *, int req, int rel);
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/nva3.c b/drivers/gpu/drm/nouveau/core/subdev/clock/nva3.c
index 14a5060..1d1915b 100644
--- a/drivers/gpu/drm/nouveau/core/subdev...
2019 Feb 18
0
[PATCH] pci/quirks: Add quirk to reset nvgpu at boot for the Lenovo ThinkPad P50
...code changes)")
cb8bb9cedb60 ("drm/nouveau/tmr: cosmetic changes")
d38ceaf99ed0 ("drm/amdgpu: add core driver (v4)")
f3867f439fd6 ("drm/nouveau/clk: rename from clock (no binary change)")
f8a8546194d7 ("drm/nouveau/clk: allow non-blocking for nouveau_clock_astate()")
How should we proceed with this patch?
--
Thanks,
Sasha
2019 Feb 12
7
[PATCH] pci/quirks: Add quirk to reset nvgpu at boot for the Lenovo ThinkPad P50
On a very specific subset of ThinkPad P50 SKUs, particularly ones that
come with a Quadro M1000M chip instead of the M2000M variant, the BIOS
seems to have a very nasty habit of not always resetting the secondary
Nvidia GPU between full reboots if the laptop is configured in Hybrid
Graphics mode. The reason for this happening is unknown, but the
following steps and possibly a good bit of patience
2014 Dec 18
2
[RFC PATCH 2/3] dvfs: add support for GK20A
...gt; +#define CLK_SLOT 7
> +
> +struct gk20a_dvfs_priv {
> + struct nouveau_dvfs base;
> +};
> +
> +static int
> +gk20a_dvfs_target(struct nouveau_dvfs *dvfs, int *state)
> +{
> + struct nouveau_clock *clk = nouveau_clock(dvfs);
> +
> + return nouveau_clock_astate(clk, *state, 0, false);
> +}
> +
> +static int
> +gk20a_dvfs_get_cur_state(struct nouveau_dvfs *dvfs, int *state)
> +{
> + struct nouveau_clock *clk = nouveau_clock(dvfs);
> +
> + *state = clk->pstate;
> + return 0;
> +}
> +
> +static int...
2014 Aug 21
9
NVA3 clock tree improvements
Following a series of patches to improve nouveaus clock tree parsing. Reclocking these engines (all but memory) is pretty stable on the cards I've tested. Please review and merge when approved.
These patches do not solve the problem that core/shader engine doesn't like to be clocked up too far without fb following, with visible corruption as a result. I suspect this problem is unrelated
2014 Dec 18
3
[RFC PATCH 2/3] dvfs: add support for GK20A
...>> + struct nouveau_dvfs base;
>>> +};
>>> +
>>> +static int
>>> +gk20a_dvfs_target(struct nouveau_dvfs *dvfs, int *state)
>>> +{
>>> + struct nouveau_clock *clk = nouveau_clock(dvfs);
>>> +
>>> + return nouveau_clock_astate(clk, *state, 0, false);
>>> +}
>>> +
>>> +static int
>>> +gk20a_dvfs_get_cur_state(struct nouveau_dvfs *dvfs, int *state)
>>> +{
>>> + struct nouveau_clock *clk = nouveau_clock(dvfs);
>>> +
>>> + *state = clk->...
2014 Dec 18
0
[RFC PATCH 2/3] dvfs: add support for GK20A
...nclude <subdev/volt.h>
+
+#include "priv.h"
+
+#define BUSY_SLOT 0
+#define CLK_SLOT 7
+
+struct gk20a_dvfs_priv {
+ struct nouveau_dvfs base;
+};
+
+static int
+gk20a_dvfs_target(struct nouveau_dvfs *dvfs, int *state)
+{
+ struct nouveau_clock *clk = nouveau_clock(dvfs);
+
+ return nouveau_clock_astate(clk, *state, 0, false);
+}
+
+static int
+gk20a_dvfs_get_cur_state(struct nouveau_dvfs *dvfs, int *state)
+{
+ struct nouveau_clock *clk = nouveau_clock(dvfs);
+
+ *state = clk->pstate;
+ return 0;
+}
+
+static int
+gk20a_dvfs_get_target_state(struct nouveau_dvfs *dvfs, int *state, int load)...
2014 Dec 18
0
[RFC PATCH 2/3] dvfs: add support for GK20A
...;> +struct gk20a_dvfs_priv {
>> + struct nouveau_dvfs base;
>> +};
>> +
>> +static int
>> +gk20a_dvfs_target(struct nouveau_dvfs *dvfs, int *state)
>> +{
>> + struct nouveau_clock *clk = nouveau_clock(dvfs);
>> +
>> + return nouveau_clock_astate(clk, *state, 0, false);
>> +}
>> +
>> +static int
>> +gk20a_dvfs_get_cur_state(struct nouveau_dvfs *dvfs, int *state)
>> +{
>> + struct nouveau_clock *clk = nouveau_clock(dvfs);
>> +
>> + *state = clk->pstate;
>> + return...
2014 Dec 18
0
[RFC PATCH 2/3] dvfs: add support for GK20A
...dvfs base;
>>>> +};
>>>> +
>>>> +static int
>>>> +gk20a_dvfs_target(struct nouveau_dvfs *dvfs, int *state)
>>>> +{
>>>> + struct nouveau_clock *clk = nouveau_clock(dvfs);
>>>> +
>>>> + return nouveau_clock_astate(clk, *state, 0, false);
>>>> +}
>>>> +
>>>> +static int
>>>> +gk20a_dvfs_get_cur_state(struct nouveau_dvfs *dvfs, int *state)
>>>> +{
>>>> + struct nouveau_clock *clk = nouveau_clock(dvfs);
>>>> +
>>&...