search for: nvkm_therm_clkgate_engine

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 &...