search for: nvkm_devidx

Displaying 20 results from an estimated 50 matches for "nvkm_devidx".

Did you mean: nvkm_device
2016 Dec 13
0
[PATCH v2 2/15] mc: add nvkm_mc_enabled() function
...diff --git a/drm/nouveau/include/nvkm/subdev/mc.h b/drm/nouveau/include/nvkm/subdev/mc.h index 27d25b18d85c..e68ba636741b 100644 --- a/drm/nouveau/include/nvkm/subdev/mc.h +++ b/drm/nouveau/include/nvkm/subdev/mc.h @@ -9,6 +9,7 @@ struct nvkm_mc { void nvkm_mc_enable(struct nvkm_device *, enum nvkm_devidx); void nvkm_mc_disable(struct nvkm_device *, enum nvkm_devidx); +bool nvkm_mc_enabled(struct nvkm_device *, enum nvkm_devidx); void nvkm_mc_reset(struct nvkm_device *, enum nvkm_devidx); void nvkm_mc_intr(struct nvkm_device *, bool *handled); void nvkm_mc_intr_unarm(struct nvkm_device *); diff...
2017 Apr 25
6
[PATCH] drm/nouveau: Add support for clockgating on Fermi+
...v/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, struct nvkm_therm **); int g84_therm_n...
2017 Apr 26
1
[PATCH] drm/nouveau: Add support for clockgating on Fermi+
..._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 fun...
2017 Apr 26
0
[PATCH v2] drm/nouveau: Add support for clockgating on Fermi+
...drivers/gpu/drm/nouveau/include/nvkm/subdev/therm.h @@ -89,11 +89,13 @@ struct nvkm_therm { int nvkm_therm_temp_get(struct nvkm_therm *); int nvkm_therm_fan_sense(struct nvkm_therm *); int nvkm_therm_cstate(struct nvkm_therm *, int, int); +void nvkm_therm_clkgate_engine(struct nvkm_therm *, enum nvkm_devidx, bool); int nv40_therm_new(struct nvkm_device *, int, struct nvkm_therm **); int nv50_therm_new(struct nvkm_device *, int, struct nvkm_therm **); int g84_therm_new(struct nvkm_device *, int, struct nvkm_therm **); int gt215_therm_new(struct nvkm_device *, int, struct nvkm_therm **); +int gf10...
2017 Apr 25
0
[PATCH] drm/nouveau: Add support for clockgating on Fermi+
...e/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 function pointers like you currently do in...
2017 Apr 25
0
[PATCH] drm/nouveau: Add support for clockgating on Fermi+
...ouveau/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, struc...
2016 Dec 06
9
[PATCH 0/8] 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
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
2016 Apr 18
0
[PATCH v4 34/37] mc: fix NULL pointer access in libnouveau
...git a/drm/nouveau/nvkm/subdev/mc/base.c b/drm/nouveau/nvkm/subdev/mc/base.c index aa394af..88bc1cc 100644 --- a/drm/nouveau/nvkm/subdev/mc/base.c +++ b/drm/nouveau/nvkm/subdev/mc/base.c @@ -90,10 +90,15 @@ nvkm_mc_intr(struct nvkm_mc *mc, bool *handled) void nvkm_mc_reset(struct nvkm_mc *mc, enum nvkm_devidx devidx) { - struct nvkm_device *device = mc->subdev.device; + struct nvkm_device *device; const struct nvkm_mc_map *map; u64 pmc_enable; + if (!mc) + return; + + device = mc->subdev.device; + if (!(pmc_enable = nvkm_top_reset(device->top, devidx))) { for (map = mc->func-&gt...
2016 Dec 06
0
[PATCH 3/8] core: add falcon library functions
..._DMAIDX_VIRT = 1, + FALCON_DMAIDX_PHYS_VID = 2, + FALCON_DMAIDX_PHYS_SYS_COH = 3, + FALCON_DMAIDX_PHYS_SYS_NCOH = 4, +}; + +extern const char *nvkm_falcon_name[]; + struct nvkm_falcon { const struct nvkm_falcon_func *func; + const struct nvkm_subdev *subdev; struct nvkm_engine engine; + enum nvkm_devidx devidx; + enum nvkm_falconidx id; + struct list_head head; u32 addr; u8 version; u8 secret; + bool debug; struct nvkm_memory *core; bool external; @@ -19,12 +45,14 @@ struct nvkm_falcon { u32 limit; u32 *data; u32 size; + u8 ports; } code; struct { u32 limit;...
2020 Oct 06
0
[RFC PATCH v2 2/3] nouveau: Add kernel-docs for module parameters
...debug (string) + * + * Like the "config" parameter, this is a string of comma-separated key=values. + * Valid keys include: + * + * * CLIENT + * * <subdevice> + * + * The list of current sub-device and engine names is in the %nvkm_subdev_name + * array and is enumerated in &enum nvkm_devidx. + * + * Valid values are log levels to use for messages from the given key: + * + * * fatal + * * error + * * warn + * * info + * * debug + * * trace + * * paranoia + * * spam + */ + MODULE_PARM_DESC(debug, "debug string to pass to driver core"); static char *nouveau_debug; module_par...
2019 Nov 08
1
[PATCH] RFC: drm/nouveau: Make BAR1 support optional
...@ gk104_fifo_oneinit(struct nvkm_fifo *base) struct gk104_fifo *fifo = gk104_fifo(base); struct nvkm_subdev *subdev = &fifo->base.engine.subdev; struct nvkm_device *device = subdev->device; - struct nvkm_vmm *bar = nvkm_bar_bar1_vmm(device); int engn, runl, pbid, ret, i, j; enum nvkm_devidx engidx; u32 *map; @@ -967,12 +966,19 @@ gk104_fifo_oneinit(struct nvkm_fifo *base) if (ret) return ret; - ret = nvkm_vmm_get(bar, 12, nvkm_memory_size(fifo->user.mem), - &fifo->user.bar); - if (ret) - return ret; + if (device->bar) { + struct nvkm_vmm *bar = nvkm_bar_ba...
2016 Aug 10
3
[PATCH v5 0/7] lib: string: add functions to case-convert strings
This series introduces a family of generic string case conversion functions. This kind of functionality is needed in several places in the kernel. Right now, everybody seems to be implementing their own copy of this functionality. Based on the discussion of the previous version of this series[1] and the use cases found in the kernel, it does look like having several flavours of case conversion
2016 Jul 22
3
[PATCH v4 0/7] lib: string: add functions to case-convert strings
This series introduces a family of generic string case conversion functions. This kind of functionality is needed in several places in the kernel. Right now, everybody seems to be implementing their own copy of this functionality. Based on the discussion of the previous version of this series[1] and the use cases found in the kernel, it does look like having several flavours of case conversion
2020 Sep 11
6
[RFC] Documentation: nouveau: Introduce some nouveau documentation
...debug (string) + * + * Like the "config" parameter, this is a string of comma-separated key=values. + * Valid keys include: + * + * * CLIENT + * * <subdevice> + * + * The list of current sub-device and engine names is in the %nvkm_subdev_name + * array and is enumerated in &enum nvkm_devidx. + * + * Valid values are log levels to use for messages from the given key: + * + * * fatal + * * error + * * warn + * * info + * * debug + * * trace + * * paranoia + * * spam + */ + MODULE_PARM_DESC(debug, "debug string to pass to driver core"); static char *nouveau_debug; module_par...
2020 Sep 23
0
[RFC] Documentation: nouveau: Introduce some nouveau documentation
...ot;config" parameter, this is a string of comma-separated key=values. > + * Valid keys include: > + * > + * * CLIENT > + * * <subdevice> > + * > + * The list of current sub-device and engine names is in the %nvkm_subdev_name > + * array and is enumerated in &enum nvkm_devidx. > + * > + * Valid values are log levels to use for messages from the given key: > + * > + * * fatal > + * * error > + * * warn > + * * info > + * * debug > + * * trace > + * * paranoia > + * * spam > + */ > + > MODULE_PARM_DESC(debug, "debug string t...
2016 Jul 05
7
[PATCH v2 0/7] lib: string: add functions to case-convert strings
This series introduces a family of generic string case conversion functions. This kind of functionality is needed in several places in the kernel. Right now, everybody seems to be implementing their own copy of this functionality. Based on the discussion of the previous version of this series[1] and the use cases found in the kernel, it does look like having several flavours of case conversion
2018 Jan 26
1
[RFC v2 1/4] drm/nouveau: Add support for basic clockgating on Kepler1
...04_THERM_H__ > +#define __GK104_THERM_H__ > +#define gk104_therm(p) (container_of((p), struct gk104_therm, base)) > + > +#include <subdev/therm.h> > +#include "priv.h" > +#include "gf100.h" > + > +struct gk104_clkgate_engine_info { > + enum nvkm_devidx engine; > + u8 offset; > +}; > + > +struct gk104_therm { > + struct nvkm_therm base; > + > + const struct gk104_clkgate_engine_info *clkgate_order; > + const struct gf100_idle_filter *idle_filter; > +}; > + > +extern const struct gk104_clkgat...
2016 Jan 18
0
[PATCH v2 2/5] core: add support for secure boot
...e mode 100644 drm/nouveau/nvkm/subdev/secboot/priv.h diff --git a/drm/nouveau/include/nvkm/core/device.h b/drm/nouveau/include/nvkm/core/device.h index 913192c94876..d154a75e93a9 100644 --- a/drm/nouveau/include/nvkm/core/device.h +++ b/drm/nouveau/include/nvkm/core/device.h @@ -24,6 +24,7 @@ enum nvkm_devidx { NVKM_SUBDEV_VOLT, NVKM_SUBDEV_THERM, NVKM_SUBDEV_CLK, + NVKM_SUBDEV_SECBOOT, NVKM_ENGINE_DMAOBJ, NVKM_ENGINE_IFB, @@ -119,6 +120,7 @@ struct nvkm_device { struct nvkm_therm *therm; struct nvkm_timer *timer; struct nvkm_volt *volt; + struct nvkm_secboot *secboot; struct nvkm_...
2016 Feb 19
0
[PATCH v2 1/4] subdev/iccsense: add new subdev for power sensors
....c create mode 100644 drm/nouveau/nvkm/subdev/iccsense/priv.h diff --git a/drm/nouveau/include/nvkm/core/device.h b/drm/nouveau/include/nvkm/core/device.h index 913192c..0940442 100644 --- a/drm/nouveau/include/nvkm/core/device.h +++ b/drm/nouveau/include/nvkm/core/device.h @@ -22,6 +22,7 @@ enum nvkm_devidx { NVKM_SUBDEV_BAR, NVKM_SUBDEV_PMU, NVKM_SUBDEV_VOLT, + NVKM_SUBDEV_ICCSENSE, NVKM_SUBDEV_THERM, NVKM_SUBDEV_CLK, @@ -109,6 +110,7 @@ struct nvkm_device { struct nvkm_gpio *gpio; struct nvkm_i2c *i2c; struct nvkm_subdev *ibus; + struct nvkm_iccsense *iccsense; struct nvkm_instme...