Displaying 5 results from an estimated 5 matches for "clkgate_engine".
2017 Apr 26
1
[PATCH] drm/nouveau: Add support for clockgating on Fermi+
...bdev/therm.h
> > @@ -84,6 +84,9 @@ struct nvkm_therm {
> > 
> >         int (*attr_get)(struct nvkm_therm *, enum
> > nvkm_therm_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 functi...
2017 Apr 25
6
[PATCH] drm/nouveau: Add support for clockgating on Fermi+
...drivers/gpu/drm/nouveau/include/nvkm/subdev/therm.h
+++ b/drivers/gpu/drm/nouveau/include/nvkm/subdev/therm.h
@@ -84,6 +84,9 @@ struct nvkm_therm {
 
 	int (*attr_get)(struct nvkm_therm *, enum nvkm_therm_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);
 };
 
 int nvkm_therm_temp_get(struct nvkm_therm *);
@@ -94,6 +97,7 @@ int nv40_therm_new(struct nvkm_device *, int, struct nvkm_therm **);
 int nv50_therm_new(struct nvkm_device *, int,...
2017 Apr 25
0
[PATCH] drm/nouveau: Add support for clockgating on Fermi+
...> +++ b/drivers/gpu/drm/nouveau/include/nvkm/subdev/therm.h
> @@ -84,6 +84,9 @@ struct nvkm_therm {
>
>         int (*attr_get)(struct nvkm_therm *, enum nvkm_therm_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 func...
2017 Apr 25
0
[PATCH] drm/nouveau: Add support for clockgating on Fermi+
...ubdev/therm.h
> +++ b/drivers/gpu/drm/nouveau/include/nvkm/subdev/therm.h
> @@ -84,6 +84,9 @@ struct nvkm_therm {
>   
>   	int (*attr_get)(struct nvkm_therm *, enum nvkm_therm_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);
>   };
>   
>   int nvkm_therm_temp_get(struct nvkm_therm *);
> @@ -94,6 +97,7 @@ int nv40_therm_new(struct nvkm_device *, int, struct nvkm_therm **);
>   int nv50_the...
2017 Apr 26
0
[PATCH v2] drm/nouveau: Add support for clockgating on Fermi+
...5W.
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...