https://bugs.freedesktop.org/show_bug.cgi?id=94990
--- Comment #8 from Alexandre Courbot ---
Ok, md5sums are correct, so your firmware is not corrupted.
I will try to reproduce on the same setup as you (GTX970/4.6-rc4) - can you
confirm that you are using pure 4.6-rc4 without any extra patch? Al
https://bugs.freedesktop.org/show_bug.cgi?id=92126
--- Comment #6 from daemon32 ---
(In reply to Karol Herbst from comment #5)
> Is this bug fixed in recent kernels? (4.5 I think?)
Well, sort of, the fan spins up, but it takes off like a jet engine at a mere
50° C. (I'm using your out-of-tree mo
this makes the code easier, because we can compare the id with pstate->pstate
and safe us the trouble iterating over the entire pstate list
Signed-off-by: Karol Herbst
---
drm/nouveau/nouveau_debugfs.c | 6 ++---
drm/nouveau/nvkm/subdev/clk/base.c | 49 +++--
Signed-off-by: Karol Herbst
---
drm/nouveau/nvkm/subdev/clk/base.c | 19 +++
drm/nouveau/nvkm/subdev/clk/gf100.c | 4 ++--
drm/nouveau/nvkm/subdev/clk/nv40.c | 2 +-
drm/nouveau/nvkm/subdev/clk/priv.h | 6 +++---
4 files changed, 17 insertions(+), 14 deletions(-)
diff --git
Signed-off-by: Karol Herbst
Reviewed-by: Martin Peres
---
drm/nouveau/nouveau_debugfs.c | 76 +++
1 file changed, 76 insertions(+)
diff --git a/drm/nouveau/nouveau_debugfs.c b/drm/nouveau/nouveau_debugfs.c
index 3d0dc19..31b309f 100644
--- a/drm/nouveau/n
Signed-off-by: Karol Herbst
---
bin/nv_cmp_volt.c | 2 +-
drm/nouveau/include/nvkm/subdev/volt.h | 2 ++
drm/nouveau/nvkm/subdev/volt/base.c| 12
drm/nouveau/nvkm/subdev/volt/priv.h| 1 +
4 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/b
Each pstate has its own voltage map entry like each cstate has.
The voltages of those entries act as a floor value for the currently selected
pstate and nvidia never sets a voltage below them.
Signed-off-by: Karol Herbst
Reviewed-by: Martin Peres
---
drm/nouveau/include/nvkm/subdev/volt.h | 2
we don't want to reclock to the same pstate or cstate over and over again, so
only do things we actually have to do.
v4: move into gf100
Signed-off-by: Karol Herbst
---
drm/nouveau/nvkm/subdev/clk/base.c | 11 +--
drm/nouveau/nvkm/subdev/clk/gf100.c | 62 +++
depending on the temperature, cstates might become unreachable or the maped
voltage of a cstate changes. We want to adjust to that.
Signed-off-by: Karol Herbst
---
drm/nouveau/nvkm/subdev/therm/base.c | 5 +
1 file changed, 5 insertions(+)
diff --git a/drm/nouveau/nvkm/subdev/therm/base.c
this selects which formula is used to calculate the voltage.
depending on the value, the entry maps to a different voltage and even enables
if the temperature has any effect or not. This is easy to observe with the
binary driver.
Signed-off-by: Karol Herbst
---
drm/nouveau/include/nvkm/subdev/b
0: base clock from the vbios is max clock
1: boost only to boost clock from the vbios (default)
2: boost to max clock available
v2: moved into nvkm_cstate_valid
v4: check the existence of the clocks before limiting
Signed-off-by: Karol Herbst
Reviewed-by: Martin Peres
---
drm/nouveau/include/n
Signed-off-by: Karol Herbst
Reviewed-by: Martin Peres
Tested-by: Pierre Moreau
---
drm/nouveau/nvkm/subdev/clk/base.c | 4
1 file changed, 4 insertions(+)
diff --git a/drm/nouveau/nvkm/subdev/clk/base.c
b/drm/nouveau/nvkm/subdev/clk/base.c
index 7102c25..763e1bf 100644
--- a/drm/nouveau/
this tool can be run alongside the nvidia driver to print information about
the current p/cstate, which voltage was set by nvidia and what nouveau would
set in the same situation.
v4: parse default options
Signed-off-by: Karol Herbst
---
bin/nv_cmp_volt.c | 139 +
Signed-off-by: Karol Herbst
---
drm/nouveau/nvkm/subdev/mc/base.c | 7 ++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --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/nouvea
this table contains three important clocks:
base clock: this is the non boosted max clock
tdp clock: the clock at wich the vbios guarentees the TDP won't ever be
exceeded at max load (seems to be always the same as the base
clock, but behaves differently).
boost clock:
this gk104 volt implementation has to be reworked a little, because the speedo
readout in maxwell doesn't need those strange 0 and 41 writes into 0x122634,
but it needs this PWM thing.
Maybe Maxwell is PWM only and we could just simplify it there, but without
proper knowledge there has some refact
Signed-off-by: Karol Herbst
---
drm/nouveau/include/nvkm/subdev/volt.h | 1 +
drm/nouveau/nvkm/engine/device/base.c | 17 +-
drm/nouveau/nvkm/subdev/volt/Kbuild| 1 +
drm/nouveau/nvkm/subdev/volt/gf100.c | 59 ++
4 files changed, 70 insertions(+),
the voltage entries actually may map to a different voltage depending on the
current temperature.
v2: only read the temperatue when actually needed
Signed-off-by: Karol Herbst
---
bin/nv_cmp_volt.c | 2 +-
drm/nouveau/include/nvkm/subdev/volt.h | 2 +-
drm/nouveau/nvkm/su
this code will change for gf100 and newer
Signed-off-by: Karol Herbst
---
drm/nouveau/nvkm/subdev/clk/base.c | 14 ++
drm/nouveau/nvkm/subdev/clk/g84.c | 1 +
drm/nouveau/nvkm/subdev/clk/gf100.c | 1 +
drm/nouveau/nvkm/subdev/clk/gk104.c | 1 +
drm/nouveau/nvkm/subdev/clk/gk20a
Signed-off-by: Karol Herbst
---
drm/nouveau/include/nvkm/subdev/clk.h | 5 +
drm/nouveau/nvkm/subdev/clk/base.c| 32 +---
2 files changed, 30 insertions(+), 7 deletions(-)
diff --git a/drm/nouveau/include/nvkm/subdev/clk.h
b/drm/nouveau/include/nvkm/subdev/c
if we calculate the voltage in the table right, we get all kinds of values,
which never fit the hardware steps, so we use the closest higher value the
hardware can do.
v3: simplify the implementation
Signed-off-by: Karol Herbst
---
drm/nouveau/nvkm/subdev/volt/base.c | 22 +-
Some Fermi+ gpus have no usefull header in the voltage table, which means
nouveau has to read the voltages out of the entries directly.
The mask may be bigger than 0x1f, but this value is already >2V, so it will
be fine for now.
This patch fixes volting issues on those cards enabling them to
we will need a always running therm daemon to adjust the voltage/clocks on the
fly.
Signed-off-by: Karol Herbst
---
drm/nouveau/nvkm/subdev/therm/base.c | 9 ++---
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/drm/nouveau/nvkm/subdev/therm/base.c
b/drm/nouveau/nvkm/subdev/th
now the cstatei parameter can be used of the nvkm_cstate_prog function to
select a specific cstate.
-1 is a magic value, which will always select the highest currently possible
cstate
Signed-off-by: Karol Herbst
---
drm/nouveau/nvkm/subdev/clk/base.c | 12 ++--
1 file changed, 10 insert
This option can be used to adjust the calculated voltage or the cstate voltage
calculation
Signed-off-by: Karol Herbst
---
bin/nv_cmp_volt.c | 2 +-
drm/nouveau/include/nvkm/subdev/volt.h | 4 +++-
drm/nouveau/nvkm/subdev/clk/base.c | 8
drm/nouveau/nvkm/subd
we will access the current set cstate at least every second and this safes us
some CPU cycles looking them up every second.
Signed-off-by: Karol Herbst
---
drm/nouveau/include/nvkm/subdev/clk.h | 2 +-
drm/nouveau/nvkm/engine/device/ctrl.c | 5 -
drm/nouveau/nvkm/subdev/clk/base.c| 12
Signed-off-by: Karol Herbst
Reviewed-by: Martin Peres
---
drm/nouveau/include/nvif/if0001.h | 15 ++
drm/nouveau/nvkm/engine/device/ctrl.c | 55 +++
2 files changed, 70 insertions(+)
diff --git a/drm/nouveau/include/nvif/if0001.h
b/drm/nouveau/includ
before clocking to a cstate, we have to check if the voltage is within the
allowed range.
Signed-off-by: Karol Herbst
---
drm/nouveau/include/nvkm/subdev/volt.h | 1 +
drm/nouveau/nvkm/subdev/volt/base.c| 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/drm/nouveau/include
I am sure that those are a bit different, but while testing the biggest error
compared to nvidia was -1.5%.
Without this change we are most of the time around 10% below nvidias voltage,
so this change causes no harm and improves the situation a lot already.
These coefficients were REed by modifin
We are slowly getting there!
v4 of the series with some realy good improvements, so I am sure this is like
95% done and only needs some proper polishing and proper Reviews!
I also added the NvVoltOffsetmV module parameter, so that a user is able to
over and !under!-volt the GPU. Overvolting makes
this function will be used to update the current clock state.
This will happen for various reasons:
* temperature changes (may change cstate and/or voltage)
* user changes boost mode
* load changes
v2: add wait parameter
Signed-off-by: Karol Herbst
---
drm/nouveau/include/nvkm/subdev/clk.h
There are at least three "max" entries, which specify the max voltage. Because
they are actually normal voltage map entries, they can also be affected by the
temperature.
Nvidia respects those entries and if they get changed, nvidia uses the lower
voltage from both.
We shouldn't exceed those volt
there is a field in the voltage table which tells us if the VIDs are taken from
the entries or calculated through the header.
v2: don't break older versions
Signed-off-by: Karol Herbst
Reviewed-by: Martin Peres
Tested-by: Pierre Moreau
---
drm/nouveau/include/nvkm/subdev/bios/volt.h | 5 ++--
we should never allow to select a cstate which current voltage (depending on
the temperature) is higher than
1. the max volt entries in the voltage map table
2. what tha gpu actually can volt to.
this resolves all remaining volting errors on fermi and newer.
v3: use find_best for all cstates bef
Signed-off-by: Karol Herbst
---
drm/nouveau/nvkm/subdev/clk/base.c | 16
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/drm/nouveau/nvkm/subdev/clk/base.c
b/drm/nouveau/nvkm/subdev/clk/base.c
index 7f86e41..d6f239f 100644
--- a/drm/nouveau/nvkm/subdev/clk/base.c
Signed-off-by: Karol Herbst
---
drm/nouveau/include/nvkm/subdev/clk.h | 1 +
drm/nouveau/nvkm/subdev/clk/base.c| 1 +
2 files changed, 2 insertions(+)
diff --git a/drm/nouveau/include/nvkm/subdev/clk.h
b/drm/nouveau/include/nvkm/subdev/clk.h
index fb54417..6226f0d 100644
--- a/drm/nouveau/i
Signed-off-by: Karol Herbst
---
drm/nouveau/include/nvkm/subdev/clk.h | 1 +
drm/nouveau/nvkm/subdev/clk/base.c| 2 ++
2 files changed, 3 insertions(+)
diff --git a/drm/nouveau/include/nvkm/subdev/clk.h
b/drm/nouveau/include/nvkm/subdev/clk.h
index 99ee05c..61d99fd 100644
--- a/drm/nouveau/
we won't need them, because we will adjust the clocks depending on engine loads
later on anyway. It also simplifies the clocking logic.
Signed-off-by: Karol Herbst
---
drm/nouveau/include/nvkm/subdev/clk.h | 4
drm/nouveau/nvkm/subdev/clk/base.c| 28 ++--
2 file
this is a copy of nvkm_volt_map, which always returns the lowest possible
voltage for a cstate.
nvkm_volt_map will get a temperature parameter there later and also fix the
voltage calculation, so that this functions will be completly different later.
Signed-off-by: Karol Herbst
Reviewed-by: Mart
We shouldn't set voltages below the min or above the max voltage the gpu is
able to set, so save the range.
Signed-off-by: Karol Herbst
Reviewed-by: Martin Peres
Tested-by: Pierre Moreau
---
drm/nouveau/include/nvkm/subdev/volt.h | 3 +++
drm/nouveau/nvkm/subdev/volt/base.c| 14 ++
https://bugs.freedesktop.org/show_bug.cgi?id=91523
--- Comment #4 from Ilia Bozhinov ---
I tested a kernel build with the relevant code commented(right after the
comment I posted) and indeed the kernel module works! (it loads and DRI_PRIME=1
allows me to run glxgears/glxinfo). What is more, now I
https://bugs.freedesktop.org/show_bug.cgi?id=94990
Alexandre Courbot changed:
What|Removed |Added
Assignee|gnu...@gmail.com|nouveau@lists.freedesktop.o
https://bugs.freedesktop.org/show_bug.cgi?id=94990
Alexandre Courbot changed:
What|Removed |Added
Assignee|nouveau@lists.freedesktop.o |gnu...@gmail.com
|
https://bugs.freedesktop.org/show_bug.cgi?id=94990
--- Comment #2 from mirkorol...@googlemail.com ---
(In reply to Ilia Mirkin from comment #1)
> Does it work fine on a cold boot, but only fails on a warm boot? (Is that
> what you mean by "after rebooting"?)
No, its never working...
--
You are
https://bugs.freedesktop.org/show_bug.cgi?id=94990
--- Comment #1 from Ilia Mirkin ---
Does it work fine on a cold boot, but only fails on a warm boot? (Is that what
you mean by "after rebooting"?)
--
You are receiving this mail because:
You are the assignee for the bug.
https://bugs.freedesktop.org/show_bug.cgi?id=94990
Bug ID: 94990
Summary: Latest 4.6rc4 kernel, no booting on gtx970
Product: xorg
Version: git
Hardware: Other
OS: All
Status: NEW
Severity: normal
Is there anything I can do in this regard?
/smo
On 2016-03-31 23:12, Pierre Moreau wrote:
> Oh, hum, GM108 is NV118 and not NV108 which is Gk208… My bad!
>
> SMF from the bug report seemed to have some working setup, and since he didn't
> pinged back, I guess it's working nicely. But some more c
47 matches
Mail list logo