search for: min_uv

Displaying 20 results from an estimated 29 matches for "min_uv".

2017 Apr 22
3
[PATCH] volt: Improve min/max deteaction of range based volting
...m_bios *bios, struct nvkm_volt *volt) data = nvbios_volt_parse(bios, &ver, &hdr, &cnt, &len, &info); if (data && info.vidmask && info.base && info.step && info.ranged) { nvkm_debug(subdev, "found ranged based VIDs\n"); - volt->min_uv = info.min; - volt->max_uv = info.max; + volt->min_uv = 0xffffffff; + volt->max_uv = 0; for (i = 0; i < info.vidmask + 1; i++) { if (info.base >= info.min && info.base <= info.max) { volt->vid[volt->vid_nr].uv = info.base; volt->vid[volt-&...
2016 Apr 20
2
[PATCH 0/2] add min/max voltage to hwmon
The first patch is also part of my reclocking series Karol Herbst (2): volt: save the voltage range we are able to set hwmon: add in_min and in_max drm/nouveau/include/nvkm/subdev/volt.h | 3 +++ drm/nouveau/nouveau_hwmon.c | 36 ++++++++++++++++++++++++++++++++++ drm/nouveau/nvkm/subdev/volt/base.c | 14 ++++++++++++- 3 files changed, 52 insertions(+), 1 deletion(-) --
2017 Apr 22
0
[PATCH] volt: Improve min/max deteaction of range based volting
...km_volt *volt) > data = nvbios_volt_parse(bios, &ver, &hdr, &cnt, &len, &info); > if (data && info.vidmask && info.base && info.step && info.ranged) { > nvkm_debug(subdev, "found ranged based VIDs\n"); > - volt->min_uv = info.min; > - volt->max_uv = info.max; > + volt->min_uv = 0xffffffff; > + volt->max_uv = 0; > for (i = 0; i < info.vidmask + 1; i++) { > if (info.base >= info.min && > info.base <= info.max) { How bogus are info.min and info.max when y...
2016 Feb 29
9
[PATCH 0/9] Groundwork for clocking fixes
This series contains a lot of groundwork to finally fix reclocking issues on Kepler+ gpus. There shouldn't be any functional changes with the first patch being the only exception (fixes some voltage table parsing issues with of few kepler gpus) The most interessting thing is the tool in the last patch, which can be ran alongside the nvidia driver to test nouveaus volting code and print the
2016 Mar 28
1
[PATCH v2 06/22] volt: parse the both max voltage entries
...a/drm/nouveau/include/nvkm/subdev/volt.h b/drm/nouveau/include/nvkm/subdev/volt.h > index fc68825..3e0f8da 100644 > --- a/drm/nouveau/include/nvkm/subdev/volt.h > +++ b/drm/nouveau/include/nvkm/subdev/volt.h > @@ -15,6 +15,8 @@ struct nvkm_volt { > > u32 max_uv; > u32 min_uv; > + u8 max0_vid; > + u8 max1_vid; > }; > > int nvkm_volt_map_min(struct nvkm_volt *volt, u8 id); > diff --git a/drm/nouveau/nvkm/subdev/bios/vmap.c b/drm/nouveau/nvkm/subdev/bios/vmap.c > index 2f13db7..f5463b1 100644 > --- a/drm/nouveau/nvkm/subdev/bios/vmap.c >...
2017 Sep 15
0
[RFC PATCH 02/29] hwmon: properly check for errors
...P; @@ -499,7 +504,8 @@ nouveau_in_read(struct device *dev, u32 attr, int channel, long *val) switch (attr) { case hwmon_in_input: ret = nvkm_volt_get(volt); - *val = ret < 0 ? ret : (ret / 1000); + if (ret >= 0) + *val = ret / 1000; break; case hwmon_in_min: *val = volt->min_uv > 0 ? (volt->min_uv / 1000) : -ENODEV; @@ -511,7 +517,7 @@ nouveau_in_read(struct device *dev, u32 attr, int channel, long *val) return -EOPNOTSUPP; } - return 0; + return ret; } static int @@ -520,21 +526,26 @@ nouveau_pwm_read(struct device *dev, u32 attr, int channel, long *val)...
2016 Mar 21
0
[PATCH v2 06/22] volt: parse the both max voltage entries
...u8 *hdr, u8 *cnt, u8 *len); diff --git a/drm/nouveau/include/nvkm/subdev/volt.h b/drm/nouveau/include/nvkm/subdev/volt.h index fc68825..3e0f8da 100644 --- a/drm/nouveau/include/nvkm/subdev/volt.h +++ b/drm/nouveau/include/nvkm/subdev/volt.h @@ -15,6 +15,8 @@ struct nvkm_volt { u32 max_uv; u32 min_uv; + u8 max0_vid; + u8 max1_vid; }; int nvkm_volt_map_min(struct nvkm_volt *volt, u8 id); diff --git a/drm/nouveau/nvkm/subdev/bios/vmap.c b/drm/nouveau/nvkm/subdev/bios/vmap.c index 2f13db7..f5463b1 100644 --- a/drm/nouveau/nvkm/subdev/bios/vmap.c +++ b/drm/nouveau/nvkm/subdev/bios/vmap.c @@ -61...
2016 Apr 18
0
[PATCH v4 06/37] volt: parse the max voltage map entries
...8 *hdr, u8 *cnt, u8 *len); diff --git a/drm/nouveau/include/nvkm/subdev/volt.h b/drm/nouveau/include/nvkm/subdev/volt.h index fc68825..285c6bf 100644 --- a/drm/nouveau/include/nvkm/subdev/volt.h +++ b/drm/nouveau/include/nvkm/subdev/volt.h @@ -15,6 +15,11 @@ struct nvkm_volt { u32 max_uv; u32 min_uv; + + /* max voltage map entries, might be affected by temperature */ + u8 max0_id; + u8 max1_id; + u8 max2_id; }; int nvkm_volt_map_min(struct nvkm_volt *volt, u8 id); diff --git a/drm/nouveau/nvkm/subdev/bios/vmap.c b/drm/nouveau/nvkm/subdev/bios/vmap.c index 2f13db7..f2295e1 100644 --- a/drm/...
2016 Mar 21
28
[PATCH v2 00/22] Volting/Clocking improvements for Fermi and newer
This series fixes most of the issues regarding volting on GPUs with any form of GPU Boost inside their vbios, which is mainly Kepler and newer, but we find some boosting related tables in Fermi vbios' already In the end reclocking should work on most Kepler cards without any issues v2: boost_mode can now be changed at runtime minor fixups Karol Herbst (22): bios/volt: handle voltage
2016 Mar 17
22
[PATCH 00/19] Volting/Clocking improvements for Fermi and newer
This series fixes most of the issues regarding volting on GPUs with any form of GPU Boost inside their vbios, which is mainly Kepler and newer, but we find some boosting related tables in Fermi vbios' already In the end reclocking should work on most Kepler cards without any issues Karol Herbst (19): bios/volt: handle voltage table version 0x50 with 0ed header volt: properly detect entry
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
2017 Apr 26
0
[PATCH v5 3/5] nouveau_hwmon: Remove old code, add .write/.read operations
...- struct device_attribute *a, char *buf) +static int +nouveau_hwmon_get_in0_min(struct nouveau_drm *drm) { - struct drm_device *dev = dev_get_drvdata(d); - struct nouveau_drm *drm = nouveau_drm(dev); struct nvkm_volt *volt = nvxx_volt(&drm->client.device); if (!volt || !volt->min_uv) return -ENODEV; - return sprintf(buf, "%i\n", volt->min_uv / 1000); + return (volt->min_uv / 1000); } -static SENSOR_DEVICE_ATTR(in0_min, S_IRUGO, - nouveau_hwmon_get_in0_min, NULL, 0); - -static ssize_t -nouveau_hwmon_get_in0_max(struct device *d, - struct device...
2017 Apr 13
0
[PATCH 2/4] nouveau_hwmon: migrate to hwmon_device_register_with_info
...- struct device_attribute *a, char *buf) +static int +nouveau_hwmon_get_in0_min(struct nouveau_drm *drm) { - struct drm_device *dev = dev_get_drvdata(d); - struct nouveau_drm *drm = nouveau_drm(dev); struct nvkm_volt *volt = nvxx_volt(&drm->client.device); if (!volt || !volt->min_uv) return -ENODEV; - return sprintf(buf, "%i\n", volt->min_uv / 1000); + return (volt->min_uv / 1000); } -static SENSOR_DEVICE_ATTR(in0_min, S_IRUGO, - nouveau_hwmon_get_in0_min, NULL, 0); - -static ssize_t -nouveau_hwmon_get_in0_max(struct device *d, - struct device...
2016 Apr 18
0
[PATCH v4 13/37] clk: respect voltage limits in nvkm_cstate_prog
...struct nvkm_volt *volt = clk->subdev.device->volt; + int voltage; + + if (!volt) + return true; + + voltage = nvkm_volt_map(volt, cstate->voltage, temp); + if (voltage < 0) + return false; + return voltage <= min(max_volt, volt->max_uv) && + voltage >= volt->min_uv; +} + +static struct nvkm_cstate * +nvkm_cstate_find_best(struct nvkm_clk *clk, struct nvkm_pstate *pstate, + struct nvkm_cstate *start) +{ + struct nvkm_device *device = clk->subdev.device; + struct nvkm_therm *therm = device->therm; + struct nvkm_volt *volt = device->volt; + struc...
2017 Apr 11
2
[PATCH 1/1] nouveau_hwmon: migrate to hwmon_device_register_with_info
...- struct device_attribute *a, char *buf) +static int +nouveau_hwmon_get_in0_min(struct nouveau_drm *drm) { - struct drm_device *dev = dev_get_drvdata(d); - struct nouveau_drm *drm = nouveau_drm(dev); struct nvkm_volt *volt = nvxx_volt(&drm->client.device); if (!volt || !volt->min_uv) return -ENODEV; - return sprintf(buf, "%i\n", volt->min_uv / 1000); + return (volt->min_uv / 1000); } -static SENSOR_DEVICE_ATTR(in0_min, S_IRUGO, - nouveau_hwmon_get_in0_min, NULL, 0); - -static ssize_t -nouveau_hwmon_get_in0_max(struct device *d, - struct device...
2017 May 18
7
[PATCH v8 0/5] replace hwmon_device_register for hwmon_device_register_with_info
This v8 fixes removes dummy functions which only had a return and moves the code into the switch statements. Versions: v1 -> v2: * Keep temp attrs as read only v2 -> v3: * Code fix-ups: struct and string as const and add return within switch due to fallthrough * Add Signed-off-by to all commits v3 -> v4: * Rever const to struct attribute. Kbuild
2017 May 16
7
[PATCH v7 0/5] replace hwmon_device_register for hwmon_device_register_with_info
This v7 fixes removes dummy functions which only had a return and moves the code into the switch statements. Versions: v1 -> v2: * Keep temp attrs as read only v2 -> v3: * Code fix-ups: struct and string as const and add return within switch due to fallthrough * Add Signed-off-by to all commits v3 -> v4: * Rever const to struct attribute. Kbuild
2017 Sep 02
3
[PATCH 0/3] Several hwmon fixes
We should simply return errors while the GPU is turned off, because the sensors aren't accessable and setting any kind of value doesn't make any sense. Fixes sensors values reported by "sensors" Before: nouveau-pci-0100 Adapter: PCI adapter GPU core: +0.60 V (min = +0.60 V, max = +1.20 V) temp1: -0.0°C (high = +95.0°C, hyst = +3.0°C) (crit
2017 Apr 26
9
[PATCH v5 0/5] replace hwmon_device_register for hwmon_device_register_with_info
This v5 drops a check for attr_set. Versions: v1 -> v2: * Keep temp attrs as read only v2 -> v3: * Code fix-ups: struct and string as const and add return within switch due to fallthrough * Add Signed-off-by to all commits v3 -> v4: * Rever const to struct attribute. Kbuild complains. v4 -> v5: * Drops a check for attr_set in
2017 Apr 12
0
[PATCH 1/1] nouveau_hwmon: migrate to hwmon_device_register_with_info
...t > +nouveau_hwmon_get_in0_min(struct nouveau_drm *drm) > { > - struct drm_device *dev = dev_get_drvdata(d); > - struct nouveau_drm *drm = nouveau_drm(dev); > struct nvkm_volt *volt = nvxx_volt(&drm->client.device); > > if (!volt || !volt->min_uv) > return -ENODEV; > > - return sprintf(buf, "%i\n", volt->min_uv / 1000); > + return (volt->min_uv / 1000); > } > > -static SENSOR_DEVICE_ATTR(in0_min, S_IRUGO, > - nouveau_hwmon_get_in0_min, NULL, 0); &gt...