search for: nouveau_therm

Displaying 20 results from an estimated 28 matches for "nouveau_therm".

2014 Mar 24
4
[PATCH 1/4] pm/fan: drop the fan lock in fan_update() before rescheduling
From: Martin Peres <martin.peres at labri.fr> This should fix a deadlock that has been reported to us where fan_update() would hold the fan lock and try to grab the alarm_program_lock to reschedule an update. On an other CPU, the alarm_program_lock would have been taken before calling fan_update(), leading to a deadlock. We should Cc: <stable at vger.kernel.org> # 3.9+ Reported-by:
2013 Aug 12
5
[PATCH 0/5] Thermal management fixes
From: Martin Peres <martin.peres at labri.fr> This patchset is mostly about fixing fdo bug #66177, reported by Dash Four. This bug is about fan/temp management not working after a suspend/resume cycle. Fan/therm management relies on ptimer's alarm feature to call periodically multiple callbacks that poll the temperature and update the fan speed if needed. The problem is that there is
2013 Sep 08
3
[PATCH 1/2] drm/nouveau/therm: ack any pending IRQ at init
...subdev *subdev) spin_lock_irqsave(&priv->sensor.alarm_program_lock, flags); - intr = nv_rd32(therm, 0x20100); + intr = nv_rd32(therm, 0x20100) & 0x3ff; /* THRS_4: downclock */ if (intr & 0x002) { @@ -209,6 +209,19 @@ nv84_therm_ctor(struct nouveau_object *parent, return nouveau_therm_preinit(&priv->base.base); } +int +nv84_therm_fini(struct nouveau_object *object, bool suspend) +{ + /* Disable PTherm IRQs */ + nv_wr32(object, 0x20000, 0x00000000); + + /* ACK all PTherm IRQs */ + nv_wr32(object, 0x20100, 0xffffffff); + nv_wr32(object, 0x1100, 0x10000); /* PBUS */ + + r...
2014 Aug 16
3
[PATCH 1/3] bios/fan: add support for maxwell's fan management table
...-23,6 +23,12 @@ struct nvbios_therm_sensor { struct nvbios_therm_threshold thrs_shutdown; }; +enum nvbios_therm_fan_type { + NVBIOS_THERM_FAN_UNK = 0, + NVBIOS_THERM_FAN_TOGGLE = 1, + NVBIOS_THERM_FAN_PWM = 2, +}; + /* no vbios have more than 6 */ #define NOUVEAU_TEMP_FAN_TRIP_MAX 10 struct nouveau_therm_trip_point { @@ -38,7 +44,9 @@ enum nvbios_therm_fan_mode { }; struct nvbios_therm_fan { - u16 pwm_freq; + enum nvbios_therm_fan_type type; + + u32 pwm_freq; u8 min_duty; u8 max_duty; diff --git a/nvkm/subdev/bios/Makefile.am b/nvkm/subdev/bios/Makefile.am index 120b941..3ad1daf 100644 --...
2014 Aug 16
0
[PATCH 3/3] gm107/therm: add PWM fan support
...100644 --- a/nvkm/subdev/therm/fan.c +++ b/nvkm/subdev/therm/fan.c @@ -31,6 +31,8 @@ #include <subdev/gpio.h> #include <subdev/timer.h> +#include <subdev/bios/fan.h> + static int nouveau_fan_update(struct nouveau_fan *fan, bool immediate, int target) { @@ -275,8 +277,11 @@ nouveau_therm_fan_ctor(struct nouveau_therm *therm) /* other random init... */ nouveau_therm_fan_set_defaults(therm); nvbios_perf_fan_parse(bios, &priv->fan->perf); - if (nvbios_therm_fan_parse(bios, &priv->fan->bios)) - nv_error(therm, "parsing the thermal table failed\n");...
2009 Nov 19
2
[RFC] nouveau: Add basic i2c sensor chip support
...1 + drivers/gpu/drm/nouveau/nouveau_bios.c | 64 +++++++++- drivers/gpu/drm/nouveau/nouveau_bios.h | 10 ++ drivers/gpu/drm/nouveau/nouveau_drv.h | 3 + drivers/gpu/drm/nouveau/nouveau_reg.h | 1 + drivers/gpu/drm/nouveau/nouveau_state.c | 9 +- drivers/gpu/drm/nouveau/nouveau_thermal.c | 218 +++++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nouveau_thermal.h | 17 +++ 8 files changed, 320 insertions(+), 3 deletions(-) create mode 100644 drivers/gpu/drm/nouveau/nouveau_thermal.c create mode 100644 drivers/gpu/drm/nouveau/nouveau_thermal.h diff --git a/drivers/gpu/dr...
2013 Feb 03
1
[PATCH 1/3] drm/nouveau/therm: turn on a fan only when crossing threshold in positive direction
...s(+), 4 deletions(-) diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/temp.c b/drivers/gpu/drm/nouveau/core/subdev/therm/temp.c index bf9b3ce..8f27b44 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/therm/temp.c +++ b/drivers/gpu/drm/nouveau/core/subdev/therm/temp.c @@ -105,7 +105,7 @@ void nouveau_therm_sensor_event(struct nouveau_therm *therm, return; if (dir == NOUVEAU_THERM_THRS_FALLING) - nv_info(therm, "temperature (%u C) went bellow the '%s' threshold\n", + nv_info(therm, "temperature (%u C) went below the '%s' threshold\n", temperature, thres...
2014 Jun 09
0
[PATCH] drm/nouveau/doc: update the thermal documentation
...(the labri address will expire soon); - Drop the note about not all families supporting all fan modes; - Add a note about the reported RPM not being accurate when driven outside the vbios-defined PWM range. Signed-off-by: Martin Peres <martin.peres at free.fr> --- Documentation/thermal/nouveau_thermal | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Documentation/thermal/nouveau_thermal b/Documentation/thermal/nouveau_thermal index efceb78..60bc293 100644 --- a/Documentation/thermal/nouveau_thermal +++ b/Documentation/thermal/nouveau_thermal @@ -4,7 +4,7 @@ Kernel dri...
2012 May 20
16
nouveau_subdev & misc patches
...drivers/gpu/drm/nouveau/nouveau_gpio.h | 3 --- drivers/gpu/drm/nouveau/nouveau_gpuobj.c | 12 ++++-------- drivers/gpu/drm/nouveau/nouveau_perf.c | 2 +- drivers/gpu/drm/nouveau/nouveau_pm.c | 6 +++--- drivers/gpu/drm/nouveau/nouveau_state.c | 2 ++ drivers/gpu/drm/nouveau/nouveau_therm.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++-------------- drivers/gpu/drm/nouveau/nv04_instmem.c | 3 +-- drivers/gpu/drm/nouveau/nv10_fb.c | 4 ---- drivers/gpu/drm/nouveau/nv10_gpio.c | 16 ++++++++-------- drivers/gpu/drm/nouveau/nv30_fb.c | 3 +--...
2013 Aug 30
13
[Bug 68768] New: [nv50] error during boot
https://bugs.freedesktop.org/show_bug.cgi?id=68768 Priority: medium Bug ID: 68768 Assignee: nouveau at lists.freedesktop.org Summary: [nv50] error during boot QA Contact: xorg-team at lists.x.org Severity: normal Classification: Unclassified OS: Linux (All) Reporter: mattia.b89 at gmail.com
2012 Dec 17
0
Request for nv40-c0 testing thermal/fan management
...op the fan without fiddling with pwm_min - Non-linear fan speed with PWM value Please report if one of these issues occur. If you experience something strange that isn't on the list, please inform us too :) Complete documentation for thermal management is available at /Documentation/thermal/nouveau_thermal (http://cgit.freedesktop.org/nouveau/linux-2.6/tree/Documentation/thermal/nouveau_thermal). Looking forward to your feedback! Cheers, Martin (AKA mupuf)
2013 Feb 03
2
[PATCH 2/3] drm/nv40/therm: reset temperature sensor on init
...uveau/core/subdev/therm/nv40.c b/drivers/gpu/drm/nouveau/core/subdev/therm/nv40.c index accc628..7d90844 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/therm/nv40.c +++ b/drivers/gpu/drm/nouveau/core/subdev/therm/nv40.c @@ -173,13 +173,23 @@ nv40_therm_ctor(struct nouveau_object *parent, return nouveau_therm_preinit(&priv->base.base); } +int +nv40_therm_init(struct nouveau_object *object) +{ + struct nouveau_therm *therm = (void *)object; + + nv40_sensor_setup(therm); + + return _nouveau_therm_init(object); +} + struct nouveau_oclass nv40_therm_oclass = { .handle = NV_SUBDEV(THERM, 0x40),...
2018 Sep 14
2
[PATCH] drm/nouveau: Don't disable polling in fallback mode
.../bugzilla.suse.com/show_bug.cgi?id=1103356 >> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107447 I see that Thomas has been having issues with the noise level anyway. I suggest he should bump the value of temp1_auto_point1_temp (see https://www.kernel.org/doc/Documentation/thermal/nouveau_thermal). The default value is set to 90°C which is quite safe on these old GPUs (NVIDIA G71 / nv49). I would say that it is safe to go up to 110°C. Which should reduce the noise level. Another technique may be to reduce the minimum fan speed to something lower than 30°C. It should increase the slope b...
2013 Oct 03
4
GeForce 8400 GS
Hi everyone. I read on a 2011 article - http://www.phoronix.com/scan.php?page=article&item=nouveau_comp_2011&num=19 - that my particular card, GeForce 8400 GS, overheats with nouveau. (So, I never tried using if for long, before, as soon as possible, installing the proprietary drivers...) But, because it's a 2-year-old article, I was wondering if that problem could have been, in the
2013 Sep 08
0
[PATCH 2/2] drm/nouveau/therm: enable fan management by default
...sertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/base.c b/drivers/gpu/drm/nouveau/core/subdev/therm/base.c index f1de7a9..aaf8285 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/therm/base.c +++ b/drivers/gpu/drm/nouveau/core/subdev/therm/base.c @@ -335,7 +335,7 @@ nouveau_therm_preinit(struct nouveau_therm *therm) nouveau_therm_ic_ctor(therm); nouveau_therm_fan_ctor(therm); - nouveau_therm_fan_mode(therm, NOUVEAU_THERM_CTRL_NONE); + nouveau_therm_fan_mode(therm, NOUVEAU_THERM_CTRL_AUTO); nouveau_therm_sensor_preinit(therm); return 0; } -- 1.8.4
2014 May 12
0
[PATCH] drm/nvd7/therm: handle another kind of PWM fans
...nsertion(+) diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/nvd0.c b/drivers/gpu/drm/nouveau/core/subdev/therm/nvd0.c index 43fec17..bbf117b 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/therm/nvd0.c +++ b/drivers/gpu/drm/nouveau/core/subdev/therm/nvd0.c @@ -40,6 +40,7 @@ pwm_info(struct nouveau_therm *therm, int line) case 0x00: return 2; case 0x19: return 1; case 0x1c: return 0; + case 0x1e: return 2; default: break; } -- 1.9.2
2014 May 12
0
[PATCH] therm/fan/tach: default to 2 pulses per revolution
...free.fr> --- nvkm/subdev/therm/nva3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvkm/subdev/therm/nva3.c b/nvkm/subdev/therm/nva3.c index 3b2c458..0478b2e 100644 --- a/nvkm/subdev/therm/nva3.c +++ b/nvkm/subdev/therm/nva3.c @@ -36,7 +36,7 @@ nva3_therm_fan_sense(struct nouveau_therm *therm) u32 tach = nv_rd32(therm, 0x00e728) & 0x0000ffff; u32 ctrl = nv_rd32(therm, 0x00e720); if (ctrl & 0x00000001) - return tach * 60; + return tach * 60 / 2; return -ENODEV; } -- 1.9.2
2014 Aug 24
0
[PATCH 3/3] therm/nv84+: do not expose non-calibrated internal temp sensor
...erm/nv84.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nvkm/subdev/therm/nv84.c b/nvkm/subdev/therm/nv84.c index 38b16d9..14e2e09 100644 --- a/nvkm/subdev/therm/nv84.c +++ b/nvkm/subdev/therm/nv84.c @@ -33,7 +33,12 @@ struct nv84_therm_priv { int nv84_temp_get(struct nouveau_therm *therm) { - return nv_rd32(therm, 0x20400); + struct nouveau_fuse *fuse = nouveau_fuse(therm); + + if (nv_ro32(fuse, 0x1a8) == 1) + return nv_rd32(therm, 0x20400); + else + return -ENODEV; } void -- 2.0.0
2014 Aug 24
8
[PATCH 1/3] subdev: add a pfuse subdev
We will use this subdev to disable temperature reading on cards that did not get a sensor calibration in the factory. Signed-off-by: Martin Peres <martin.peres at free.fr> --- configure.ac | 1 + drm/Kbuild | 4 ++ drm/core/include/subdev/fuse.h | 1 + drm/core/subdev/fuse/base.c | 1 + drm/core/subdev/fuse/g80.c | 1 +
2018 Nov 14
0
[PATCH] drm/nouveau: Don't disable polling in fallback mode
...ug.cgi?id=1103356 > >> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107447 > > I see that Thomas has been having issues with the noise level anyway. I > suggest he should bump the value of temp1_auto_point1_temp (see > https://www.kernel.org/doc/Documentation/thermal/nouveau_thermal). > > The default value is set to 90°C which is quite safe on these old GPUs > (NVIDIA G71 / nv49). I would say that it is safe to go up to 110°C. > Which should reduce the noise level. > > Another technique may be to reduce the minimum fan speed to something > lower than 3...