Displaying 5 results from an estimated 5 matches for "nvkm_therm_clkgate_engine".
2017 Apr 26
1
[PATCH] drm/nouveau: Add support for clockgating on Fermi+
...therm *, enum
> > nvkm_therm_attr_type, int);
> > +
> > + int (*clkgate_engine)(struct nvkm_therm *, enum
> > nvkm_devidx);
> > + void (*clkgate_set)(struct nvkm_therm *, int gate_idx, bool
> > enable);
>
> remove those and have a simple "nvkm_therm_clkgate_engine" function
>
> This way you know that every user calls this function and don't have
> to check for silly function pointers like you currently do in
> engine.c
>
> > };
> >
> > int nvkm_therm_temp_get(struct nvkm_therm *);
> > @@ -94,6 +97,7 @@ int...
2017 Apr 25
0
[PATCH] drm/nouveau: Add support for clockgating on Fermi+
...m_attr_type);
> int (*attr_set)(struct nvkm_therm *, enum nvkm_therm_attr_type, int);
> +
> + int (*clkgate_engine)(struct nvkm_therm *, enum nvkm_devidx);
> + void (*clkgate_set)(struct nvkm_therm *, int gate_idx, bool enable);
remove those and have a simple "nvkm_therm_clkgate_engine" function
This way you know that every user calls this function and don't have
to check for silly function pointers like you currently do in engine.c
> };
>
> int nvkm_therm_temp_get(struct nvkm_therm *);
> @@ -94,6 +97,7 @@ int nv40_therm_new(struct nvkm_device *, int, str...
2017 Apr 25
6
[PATCH] drm/nouveau: Add support for clockgating on Fermi+
...rm/nouveau/nvkm/subdev/therm/base.c
@@ -393,6 +393,8 @@ nvkm_therm_new_(const struct nvkm_therm_func *func, struct nvkm_device *device,
therm->fan_set = nvkm_therm_fan_user_set;
therm->attr_get = nvkm_therm_attr_get;
therm->attr_set = nvkm_therm_attr_set;
+ therm->clkgate_engine = nvkm_therm_clkgate_engine;
+ therm->clkgate_set = nvkm_therm_clkgate_set;
therm->mode = therm->suspend = -1; /* undefined */
return 0;
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/clkgate.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/clkgate.c
new file mode 100644
index 0000000..c030ea9
--- /dev/nu...
2017 Apr 26
0
[PATCH v2] drm/nouveau: Add support for clockgating on Fermi+
...6W to ~21.65W.
Similar to how the nvidia driver seems to handle this, we enable
clockgating for each engine that supports it after it's initialization.
Changes since v1:
- Move function pointers for clockgating functions out of nvkm_therm,
just expose one less complex function to callers:
nvkm_therm_clkgate_engine()
- Use 0x44 for disabling clockgating instead of just shutting all of
nvidia's power management for each gate off, since that's what the
nvidia blob does
Signed-off-by: Lyude <lyude at redhat.com>
---
.../gpu/drm/nouveau/include/nvkm/subdev/therm.h | 2 +
drivers/gpu/drm/no...
2017 Apr 25
0
[PATCH] drm/nouveau: Add support for clockgating on Fermi+
.../base.c
> @@ -393,6 +393,8 @@ nvkm_therm_new_(const struct nvkm_therm_func *func, struct nvkm_device *device,
> therm->fan_set = nvkm_therm_fan_user_set;
> therm->attr_get = nvkm_therm_attr_get;
> therm->attr_set = nvkm_therm_attr_set;
> + therm->clkgate_engine = nvkm_therm_clkgate_engine;
> + therm->clkgate_set = nvkm_therm_clkgate_set;
> therm->mode = therm->suspend = -1; /* undefined */
> return 0;
> }
> diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/clkgate.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/clkgate.c
> new file mode 100644
&...