#
0aec69c7 |
|
03-Dec-2020 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/therm: switch to instanced constructor Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
|
#
69cbbb7b |
|
01-Jul-2019 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/therm: don't attempt fan control where PMU is already managing it There's already a condition in place which attempts to detect this, but since we've begun to require a PMU subdev even on boards where we don't load a custom FW, it's become inaccurate. This will prevent unnecessarily running a periodic fan update thread on GP100 and newer, where we don't yet override the default PMU FW. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
11878006 |
|
11-Sep-2018 |
Takashi Iwai <tiwai@suse.de> |
drm/nouveau: Don't disable polling in fallback mode When a fan is controlled via linear fallback without cstate, we shouldn't stop polling. Otherwise it won't be adjusted again and keeps running at an initial crazy pace. Fixes: 800efb4c2857 ("drm/nouveau/drm/therm/fan: add a fallback if no fan control is specified in the vbios") Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1103356 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107447 Reported-by: Thomas Blume <thomas.blume@suse.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Reviewed-by: Martin Peres <martin.peres@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
92256269 |
|
07-Feb-2018 |
Thierry Reding <treding@nvidia.com> |
drm/nouveau: Make clock gate support conditional The recently introduced clock gate support breaks on Tegra chips because no thermal support is enabled for those devices. Conditionalize the code on the existence of thermal support to fix this. Fixes: b138eca661cc ("drm/nouveau: Add support for basic clockgating on Kepler1") Cc: Martin Peres <martin.peres@free.fr> Cc: Lyude Paul <lyude@redhat.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Reviewed-by: Lyude Paul <lyude@redhat.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
3ea74559 |
|
01-Feb-2018 |
Lyude Paul <lyude@redhat.com> |
drm/nouveau: Introduce NvPmEnableGating option This adds the NvPmEnableGating config option to nouveau, which can be used to enable or disable clockgating for supported chipsets. Enabling can be done by passing config=NvPmEnableGating=1 To nouveau. If your chipset supports it, you'll see a message in your kernel log indicating that clockgating is enabled. Since clockgating has only had limited testing thus far, we leave this option disabled by default for now. Signed-off-by: Lyude Paul <lyude@redhat.com> Reviewed-by: Martin Peres <martin.peres@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
1bab09ac |
|
01-Feb-2018 |
Lyude Paul <lyude@redhat.com> |
drm/nouveau: Add support for BLCG on Kepler1 This enables BLCG optimization for kepler1. When using clockgating, nvidia's firmware has a set of registers which are initially programmed by the vbios with various engine delays and other mysterious settings that are safe enough to bring up the GPU. However, the values used by the vbios are more power hungry then they need to be, so the nvidia driver writes it's own more optimized set of BLCG settings before enabling CG_CTRL. This adds support for programming the optimized BLCG values during engine/subdev init, which enables rather significant power savings. This introduces the nvkm_therm_clkgate_init() helper, which we use to program the optimized BLCG settings before enabling clockgating with nvkm_therm_clkgate_enable. As well, this commit shares a lot more code with Fermi since BLCG is mostly the same there as far as we can tell. In the future, it's likely we'll reformat the clkgate_packs for kepler1 so that they share a list of mmio packs with Fermi. Signed-off-by: Lyude Paul <lyude@redhat.com> Reviewed-by: Martin Peres <martin.peres@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
b138eca6 |
|
01-Feb-2018 |
Lyude Paul <lyude@redhat.com> |
drm/nouveau: Add support for basic clockgating on Kepler1 This adds support for enabling automatic clockgating on nvidia GPUs for Kepler1. While this is not technically a clockgating level, it does enable clockgating using the clockgating values initially set by the vbios (which should be safe to use). This introduces two therm helpers for controlling basic clockgating: nvkm_therm_clkgate_enable() - enables clockgating through CG_CTRL, done after initializing the GPU fully nvkm_therm_clkgate_fini() - prepares clockgating for suspend or driver unload A lot of this code was originally going to be based off of fermi; however it turns out that while Fermi's the first line of GPUs that introduced this kind of power saving, Fermi requires more fine tuned control of the CG_CTRL registers from the driver while reclocking that we don't entirely understand yet. For the simple parts we will be sharing with Fermi for certain however, we at least add those into a new subdev/therm/gf100.h header. Signed-off-by: Lyude Paul <lyude@redhat.com> Reviewed-by: Martin Peres <martin.peres@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
d3265637 |
|
31-Oct-2017 |
Rhys Kidd <rhyskidd@gmail.com> |
drm/nouveau/therm/gp100: initial implementation of new gp1xx temperature sensor v2: - add nv138 and drop nv13b chipsets (Ilia Mirkin) - refactor out status variable and instead mask tsensor (Ilia Mirkin) - switch SHADOWed state message away from nvkm_error() (Ilia Mirkin) - rename internal temperature variable (Karol Herbst) v3: - use nvkm_trace() for SHADOWed state message (Ben Skeggs) Signed-off-by: Rhys Kidd <rhyskidd@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
7eaf1198 |
|
11-May-2017 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/tmr: remove nvkm_timer_alarm_cancel() nvkm_timer_alarm() already handles this as part of protecting against callers passing in no timeout value. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
e4311ee5 |
|
11-May-2017 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/therm: remove ineffective workarounds for alarm bugs These were ineffective due to touching the list without the alarm lock, but should no longer be required. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Cc: stable@vger.kernel.org
|
#
800efb4c |
|
28-Sep-2016 |
Martin Peres <martin.peres@free.fr> |
drm/nouveau/drm/therm/fan: add a fallback if no fan control is specified in the vbios This seems to be absolutely necessary for a lot of NV40. Reported-by: gsgf on IRC/freenode Signed-off-by: Martin Peres <martin.peres@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
56d06fa2 |
|
08-Apr-2016 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/core: remove pmc_enable argument from subdev ctor These are now specified directly in the MC subdev. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
31649ecf |
|
19-Aug-2015 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/tmr: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
57113c01 |
|
19-Aug-2015 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/therm: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
3a8c3400 |
|
19-Aug-2015 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/subdev: rename some functions to avoid upcoming conflicts Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
b3c418bb |
|
19-Aug-2015 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/therm: switch to subdev printk macros Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
cb8bb9ce |
|
19-Aug-2015 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/tmr: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
da06b46b |
|
19-Aug-2015 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/therm: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
9ace404b |
|
19-Aug-2015 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/device: include core/device.h automatically for subdevs/engines Pretty much every subdev/engine is going to need access to nvkm_device shortly to touch registers and/or output messages. The odd placement of the includes is necessary to work around some inter-dependencies that currently exist. This will be fixed later. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
e1404611 |
|
13-Jan-2015 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/therm: namespace + nvidia gpu names (no binary change) The namespace of NVKM is being changed to nvkm_ instead of nouveau_, which will be used for the DRM part of the driver. This is being done in order to make it very clear as to what part of the driver a given symbol belongs to, and as a minor step towards splitting the DRM driver out to be able to stand on its own (for virt). Because there's already a large amount of churn here anyway, this is as good a time as any to also switch to NVIDIA's device and chipset naming to ease collaboration with them. A comparison of objdump disassemblies proves no code changes. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
d390b480 |
|
13-Jan-2015 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/bios: namespace + nvidia gpu names (no binary change) The namespace of NVKM is being changed to nvkm_ instead of nouveau_, which will be used for the DRM part of the driver. This is being done in order to make it very clear as to what part of the driver a given symbol belongs to, and as a minor step towards splitting the DRM driver out to be able to stand on its own (for virt). Because there's already a large amount of churn here anyway, this is as good a time as any to also switch to NVIDIA's device and chipset naming to ease collaboration with them. A comparison of objdump disassemblies proves no code changes. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
ebb58dc2 |
|
13-Jan-2015 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/pmu: rename from pwr (no binary change) Switch to NVIDIA's name for the device. The namespace of NVKM is being changed to nvkm_ instead of nouveau_, which will be used for the DRM part of the driver. This is being done in order to make it very clear as to what part of the driver a given symbol belongs to, and as a minor step towards splitting the DRM driver out to be able to stand on its own (for virt). Because there's already a large amount of churn here anyway, this is as good a time as any to also switch to NVIDIA's device and chipset naming to ease collaboration with them. A comparison of objdump disassemblies proves no code changes. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
c39f472e |
|
13-Jan-2015 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: remove symlinks, move core/ to nvkm/ (no code changes) The symlinks were annoying some people, and they're not used anywhere else in the kernel tree. The include directory structure has been changed so that symlinks aren't needed anymore. NVKM has been moved from core/ to nvkm/ to make it more obvious as to what the directory is for, and as some minor prep for when NVKM gets split out into its own module (virt) at a later date. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|