Displaying 20 results from an estimated 21 matches for "nvkm_iccsense_read_all".
2016 Mar 28
4
[PATCH v2 0/4] Configure Power Sensors
The power sensors can be configured to sample the readout values over time.
Nvidia does this too, so nouveau should probably do that too.
v2: use list_del and rework an error message
Karol Herbst (4):
iccsense: remove read function
iccsense: convert to linked list
iccsense: split sensor into own struct
iccsense: configure sensors like nvidia does
2017 Sep 15
0
[RFC PATCH 02/29] hwmon: properly check for errors
...ong *val)
struct drm_device *drm_dev = dev_get_drvdata(dev);
struct nouveau_drm *drm = nouveau_drm(drm_dev);
struct nvkm_iccsense *iccsense = nvxx_iccsense(&drm->client.device);
+ int ret;
if (!iccsense)
return -EOPNOTSUPP;
switch (attr) {
case hwmon_power_input:
- *val = nvkm_iccsense_read_all(iccsense);
+ ret = nvkm_iccsense_read_all(iccsense);
+ if (ret < 0)
+ return ret;
+ *val = ret;
break;
case hwmon_power_max:
+ if (iccsense->power_w_max <= 0)
+ return -ENODEV;
*val = iccsense->power_w_max;
break;
case hwmon_power_crit:
+ if (iccsense->power_w_c...
2016 Mar 25
7
[PATCH 0/4] Configure Power Sensors
The power sensors can be configured to sample the readout values over time.
Nvidia does this too, so nouveau should probably do that too.
Karol Herbst (4):
iccsense: remove read function
iccsense: convert to linked list
iccsense: split sensor into own struct
iccsense: configure sensors like nvidia does
drm/nouveau/include/nvkm/subdev/iccsense.h | 6 +-
drm/nouveau/nouveau_hwmon.c
2019 Jun 18
1
[PATCH] hwmon: return EINVAL if the GPU is powered down for sensors reads
...rn -EINVAL;
*val = therm->fan_get(therm);
break;
default:
@@ -546,6 +554,8 @@ nouveau_power_read(struct device *dev, u32 attr, int channel, long *val)
switch (attr) {
case hwmon_power_input:
+ if (drm_dev->switch_power_state != DRM_SWITCH_POWER_ON)
+ return -EINVAL;
*val = nvkm_iccsense_read_all(iccsense);
break;
case hwmon_power_max:
--
2.21.0
2016 Mar 25
0
[PATCH 4/4] iccsense: configure sensors like nvidia does
...csense_sensor *sensor)
+{
+ switch (sensor->type) {
+ case NVBIOS_EXTDEV_INA209:
+ case NVBIOS_EXTDEV_INA219:
+ nvkm_iccsense_ina2x9_config(iccsense, sensor);
+ break;
+ case NVBIOS_EXTDEV_INA3221:
+ nvkm_iccsense_ina3221_config(iccsense, sensor);
+ break;
+ default:
+ break;
+ }
+}
+
int
nvkm_iccsense_read_all(struct nvkm_iccsense *iccsense)
{
@@ -257,8 +314,19 @@ nvkm_iccsense_oneinit(struct nvkm_subdev *subdev)
return 0;
}
+static int
+nvkm_iccsense_init(struct nvkm_subdev *subdev)
+{
+ struct nvkm_iccsense *iccsense = nvkm_iccsense(subdev);
+ struct nvkm_iccsense_sensor *sensor;
+ list_for_each_...
2016 Mar 25
0
[PATCH 2/4] iccsense: convert to linked list
...ff --git a/drm/nouveau/nvkm/subdev/iccsense/base.c b/drm/nouveau/nvkm/subdev/iccsense/base.c
index bf1b94e..6fde68d 100644
--- a/drm/nouveau/nvkm/subdev/iccsense/base.c
+++ b/drm/nouveau/nvkm/subdev/iccsense/base.c
@@ -98,25 +98,21 @@ nvkm_iccsense_ina3221_read(struct nvkm_iccsense *iccsense,
int
nvkm_iccsense_read_all(struct nvkm_iccsense *iccsense)
{
- int result = 0, i;
+ int result = 0;
+ struct nvkm_iccsense_rail *rail;
if (!iccsense)
return -EINVAL;
- if (iccsense->rail_count == 0)
- return -ENODEV;
-
- for (i = 0; i < iccsense->rail_count; ++i) {
+ list_for_each_entry(rail, &iccsens...
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
0
[PATCH v5 3/5] nouveau_hwmon: Remove old code, add .write/.read operations
...evice_attribute *a,
- char *buf)
+static int
+nouveau_hwmon_get_power1_input(struct nouveau_drm *drm)
{
- struct drm_device *dev = dev_get_drvdata(d);
- struct nouveau_drm *drm = nouveau_drm(dev);
struct nvkm_iccsense *iccsense = nvxx_iccsense(&drm->client.device);
- int result = nvkm_iccsense_read_all(iccsense);
- if (result < 0)
- return result;
-
- return sprintf(buf, "%i\n", result);
+ return nvkm_iccsense_read_all(iccsense);
}
-static SENSOR_DEVICE_ATTR(power1_input, S_IRUGO,
- nouveau_hwmon_get_power1_input, NULL, 0);
-
-static ssize_t
-nouveau_hwmon_get_power1_max(st...
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
2016 Feb 24
7
[PATCH v5 0/6] Suppor for various power sensors on GF100+
This is a complete rework from the first version I sent out.
Now the implementation is more centered around the power_rails we find in the
SENSE table instead of extdev centered. This makes the implementation a lot
easier and straightforward.
I've added support for the INA219, INA209 and INA3221 sensors found on multiple
Fermi and Kepler cards.
The power consumption is also exported via
2017 May 08
5
[PATCH v6 0/5] replace hwmon_device_register for hwmon_device_register_with_info
This v6 fixes some comments pointed out by Martin Peres.
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
2017 Apr 22
6
[PATCH v4 0/5] replace hwmon_device_register for hwmon_device_register_with_info
Kbuild sent me an e-mail due to a fixup I introduced in v3.
It complains due to an incompatible pointer type and it doesn't build.
This version reverts it.
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:
2017 Apr 21
6
[PATCH v3 0/5] replace hwmon_device_register for hwmon_device_register_with_info
Hi, this is version v3 with some fix-ups:
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
This patchseries replaces the deprecated hwmon_device_register function with the
new one hwmon_device_register_with_info.
It also does some cleanup.
Here
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 Apr 13
0
[PATCH 2/4] nouveau_hwmon: migrate to hwmon_device_register_with_info
...evice_attribute *a,
- char *buf)
+static int
+nouveau_hwmon_get_power1_input(struct nouveau_drm *drm)
{
- struct drm_device *dev = dev_get_drvdata(d);
- struct nouveau_drm *drm = nouveau_drm(dev);
struct nvkm_iccsense *iccsense = nvxx_iccsense(&drm->client.device);
int result = nvkm_iccsense_read_all(iccsense);
- if (result < 0)
- return result;
-
- return sprintf(buf, "%i\n", result);
+ return result;
}
-static SENSOR_DEVICE_ATTR(power1_input, S_IRUGO,
- nouveau_hwmon_get_power1_input, NULL, 0);
-
-static ssize_t
-nouveau_hwmon_get_power1_max(struct device *d, struct dev...
2017 Apr 11
2
[PATCH 1/1] nouveau_hwmon: migrate to hwmon_device_register_with_info
...ic ssize_t
-nouveau_hwmon_get_power1_input(struct device *d, struct device_attribute *a,
- char *buf)
-{
- struct drm_device *dev = dev_get_drvdata(d);
- struct nouveau_drm *drm = nouveau_drm(dev);
struct nvkm_iccsense *iccsense = nvxx_iccsense(&drm->client.device);
int result = nvkm_iccsense_read_all(iccsense);
- if (result < 0)
- return result;
-
- return sprintf(buf, "%i\n", result);
+ return result;
}
-static SENSOR_DEVICE_ATTR(power1_input, S_IRUGO,
- nouveau_hwmon_get_power1_input, NULL, 0);
-
-static ssize_t
-nouveau_hwmon_get_power1_max(struct device *d, struct dev...
2017 Apr 12
0
[PATCH 1/1] nouveau_hwmon: migrate to hwmon_device_register_with_info
...attribute
*a,
> - char *buf)
> -{
> - struct drm_device *dev = dev_get_drvdata(d);
> - struct nouveau_drm *drm = nouveau_drm(dev);
> struct nvkm_iccsense *iccsense = nvxx_iccsense(&drm->client.
device);
> int result = nvkm_iccsense_read_all(iccsense);
>
> - if (result < 0)
> - return result;
> -
> - return sprintf(buf, "%i\n", result);
> + return result;
> }
>
> -static SENSOR_DEVICE_ATTR(power1_input, S_IRUGO,
> - nouveau_hwmon_get_pow...
2017 Sep 15
42
[RFC PATCH 00/29] Current State of my clk patches
Just wanted to post updated versions of my last series/patches. Reviews
welcomed.
It would be also nice if we agree on features I should focus upstreaming, so
that this work can be better splitted or reordered.
Sadly most of my patches depend on the rather big clk subdev rework and I think
those patches shows best, why I think this rework is actually needed and makes
things much easier to add
2017 Apr 17
9
[PATCH v2 0/5] replace hwmon_device_register for hwmon_device_register_with_info
Hi!
This patchseries replaces the deprecated hwmon_device_register function with the
new one hwmon_device_register_with_info.
It also does some cleanup.
Here is the list of patches and what they do:
1/ Adds config structures for all sensors and their possible settings. This patch
and the next one are just preparing the code for what it comes.
2/ Now everything goes through