Displaying 10 results from an estimated 10 matches for "nvkm_timer_alarm_cancel".
2016 Apr 18
0
[PATCH v4 26/37] therm: don't cancel the timer
...mer *tmr = subdev->device->timer;
unsigned long flags;
bool immd = true;
- bool poll = true;
int duty = -1;
spin_lock_irqsave(&therm->lock, flags);
@@ -102,11 +101,9 @@ nvkm_therm_update(struct nvkm_therm *therm, int mode)
switch (mode) {
case NVKM_THERM_CTRL_MANUAL:
- nvkm_timer_alarm_cancel(tmr, &therm->alarm);
duty = nvkm_therm_fan_get(therm);
if (duty < 0)
duty = 100;
- poll = false;
break;
case NVKM_THERM_CTRL_AUTO:
switch(therm->fan->bios.fan_mode) {
@@ -119,18 +116,16 @@ nvkm_therm_update(struct nvkm_therm *therm, int mode)
case NVBIOS_THERM_...
2015 Apr 13
3
[PATCH v4] pmu/gk20a: PMU boot support
...pmc, 0x00000640, 0x1000000, 0x1000000);
+ nv_mask(pmc, 0x00000644, 0x1000000, 0x1000000);
+ } else {
+ nv_debug(priv, "disable pmu irq\n");
+ nv_mask(pmc, 0x00000640, 0x1000000, 0x00000000);
+ nv_mask(pmc, 0x00000644, 0x1000000, 0x00000000);
+ nv_wr32(priv, 0x0010a014, 0xff);
+ }
- nvkm_timer_alarm_cancel(priv, &priv->alarm);
+}
- return nvkm_subdev_fini(&pmu->base, suspend);
+static int
+gk20a_pmu_idle(struct gk20a_pmu_priv *priv)
+{
+ if (!nv_wait(priv, 0x0010a04c, 0x0000ffff, 0x00000000)) {
+ nv_error(priv, "timeout waiting pmu idle\n");
+ return -EBUSY;
+ }
+
+ return...
2015 Apr 30
2
[PATCH v4] pmu/gk20a: PMU boot support
...nv_debug(priv, "disable pmu irq\n");
>> + nv_mask(pmc, 0x00000640, 0x1000000, 0x00000000);
>> + nv_mask(pmc, 0x00000644, 0x1000000, 0x00000000);
>> + nv_wr32(priv, 0x0010a014, 0xff);
>> + }
>>
>> - nvkm_timer_alarm_cancel(priv, &priv->alarm);
>> +}
>>
>> - return nvkm_subdev_fini(&pmu->base, suspend);
>> +static int
>> +gk20a_pmu_idle(struct gk20a_pmu_priv *priv)
>> +{
>> + if (!nv_wait(priv, 0x0010a04c, 0x0000ffff, 0x00000000)) {
>> +...
2016 Dec 13
15
[PATCH v2 0/15] Falcon library
This was the first step of the secure boot refactoring - as Ben asked for some
fixes, I now submit it as its own series to make it easier to review (and also
because rebasing secure boot on top of this takes time and I don't want to do
it until this is validated!).
This series attempts to factorize the duplicate falcon-related code into a
single library, using the existing nvkm_falcon
2015 Apr 08
3
[PATCH V2] pmu/gk20a: PMU boot support.
...99,601 @@ static int
gk20a_pmu_fini(struct nvkm_object *object, bool suspend)
{
struct nvkm_pmu *pmu = (void *)object;
- struct gk20a_pmu_priv *priv = (void *)pmu;
-
+ struct gk20a_pmu_priv *priv = to_gk20a_priv(pmu);
+ nv_wr32(pmu, 0x10a014, 0x00000060);
+ flush_work(&pmu->recv.work);
nvkm_timer_alarm_cancel(priv, &priv->alarm);
return nvkm_subdev_fini(&pmu->base, suspend);
}
static int
+gk20a_pmu_enable_hw(struct nvkm_pmu *ppmu, struct nvkm_mc *pmc,
+ bool enable)
+{
+ if (enable) {
+ nv_mask(pmc, 0x000200, 0x00002000, 0x00002000);
+ nv_rd32(pmc, 0x00000200);
+ if (nv_wait(p...
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.
2015 Mar 11
0
[PATCH] pmu/gk20a: PMU boot support.
...3,145 @@ gk20a_pmu_fini(struct nvkm_object *object, bool suspend)
> {
> struct nvkm_pmu *pmu = (void *)object;
> struct gk20a_pmu_priv *priv = (void *)pmu;
> -
> + nv_wr32(pmu, 0x10a014, 0x00000060);
> + flush_work(&pmu->recv.work);
> nvkm_timer_alarm_cancel(priv, &priv->alarm);
>
> return nvkm_subdev_fini(&pmu->base, suspend);
> }
> +static bool find_hex_in_string(char *strings, u32 *hex_pos)
> +{
> + u32 i = 0, j = strlen(strings);
> + for (; i < j; i++) {
> + if (strings[i]...
2015 Mar 11
3
[PATCH] pmu/gk20a: PMU boot support.
...target(struct gk20a_pmu_priv *priv, int *state)
{
@@ -164,31 +233,145 @@ gk20a_pmu_fini(struct nvkm_object *object, bool suspend)
{
struct nvkm_pmu *pmu = (void *)object;
struct gk20a_pmu_priv *priv = (void *)pmu;
-
+ nv_wr32(pmu, 0x10a014, 0x00000060);
+ flush_work(&pmu->recv.work);
nvkm_timer_alarm_cancel(priv, &priv->alarm);
return nvkm_subdev_fini(&pmu->base, suspend);
}
+static bool find_hex_in_string(char *strings, u32 *hex_pos)
+{
+ u32 i = 0, j = strlen(strings);
+ for (; i < j; i++) {
+ if (strings[i] == '%')
+ if (strings[i + 1] == 'x' || strings[i +...
2015 Mar 12
2
[PATCH] pmu/gk20a: PMU boot support.
...3,145 @@ gk20a_pmu_fini(struct nvkm_object *object, bool suspend)
> {
> struct nvkm_pmu *pmu = (void *)object;
> struct gk20a_pmu_priv *priv = (void *)pmu;
> -
> + nv_wr32(pmu, 0x10a014, 0x00000060);
> + flush_work(&pmu->recv.work);
> nvkm_timer_alarm_cancel(priv, &priv->alarm);
>
> return nvkm_subdev_fini(&pmu->base, suspend);
> }
> +static bool find_hex_in_string(char *strings, u32 *hex_pos)
> +{
> + u32 i = 0, j = strlen(strings);
> + for (; i < j; i++) {
> + if (strings[i]...