<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c, branch linux-4.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.17.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.17.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2016-11-28T05:39:35Z</updated>
<entry>
<title>drm/nouveau/bios/volt: pointers are 32-bit</title>
<updated>2016-11-28T05:39:35Z</updated>
<author>
<name>Ben Skeggs</name>
<email>bskeggs@redhat.com</email>
</author>
<published>2016-11-18T01:18:45Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=ff5354120fa1e3c0654f7bda5a8614f37daf387c'/>
<id>urn:sha1:ff5354120fa1e3c0654f7bda5a8614f37daf387c</id>
<content type='text'>
Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/nouveau/bios/vmap: pointers are 32-bit</title>
<updated>2016-11-28T05:39:35Z</updated>
<author>
<name>Ben Skeggs</name>
<email>bskeggs@redhat.com</email>
</author>
<published>2016-11-18T01:22:33Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=60fb7064e495bd70dd2151b18536ed969806b98e'/>
<id>urn:sha1:60fb7064e495bd70dd2151b18536ed969806b98e</id>
<content type='text'>
Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/nouveau/volt: use kernel's 64-bit signed division function</title>
<updated>2016-10-12T07:29:30Z</updated>
<author>
<name>Alexandre Courbot</name>
<email>acourbot@nvidia.com</email>
</author>
<published>2016-09-16T09:09:12Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=321c258e9192377cff2cb34b9d12fca0ee60b13f'/>
<id>urn:sha1:321c258e9192377cff2cb34b9d12fca0ee60b13f</id>
<content type='text'>
Doing direct 64 bit divisions in kernel code leads to references to
undefined symbols on 32 bit architectures. Replace such divisions with
calls to div64_s64 to make the module usable on 32 bit archs.

Signed-off-by: Alexandre Courbot &lt;acourbot@nvidia.com&gt;
Reviewed-by: Karol Herbst &lt;karolherbst@gmail.com&gt;
Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/nouveau/volt: Make use of cvb coefficients</title>
<updated>2016-10-12T07:29:28Z</updated>
<author>
<name>Karol Herbst</name>
<email>karolherbst@gmail.com</email>
</author>
<published>2016-07-12T19:36:09Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=114653c7593a4dd52cc1721b0d325d43b00e2371'/>
<id>urn:sha1:114653c7593a4dd52cc1721b0d325d43b00e2371</id>
<content type='text'>
I'm quite sure that those coefficients are real close, because while
testing the biggest error compared to nvidia was around -1.5% (biggest
error with right coefficients is 12.5mV / 600mV = 2%).

These coefficients were REed by modifing the voltage map entries and by
calculating the set voltage back until I was able to forecast which voltage
nvidia sets for a given voltage map entry.

With these formulars I am able to precisely predict at which exact
temperature Nvidia down- or upvolts due to a changed therm reading.

That's why I am quite sure these are right, or at least really really
close.

v4: Use better coefficients and speedo.
v5: Add error message when speedo is missing.

Signed-off-by: Karol Herbst &lt;karolherbst@gmail.com&gt;
Reviewed-by: Martin Peres &lt;martin.peres@free.fr&gt;
Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/nouveau/volt/gf100-: Add speedo</title>
<updated>2016-10-12T07:29:27Z</updated>
<author>
<name>Karol Herbst</name>
<email>karolherbst@gmail.com</email>
</author>
<published>2016-07-17T18:05:45Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=08de5743db9250dc915d85f9f7d1a9016a8f8975'/>
<id>urn:sha1:08de5743db9250dc915d85f9f7d1a9016a8f8975</id>
<content type='text'>
v5: Squashed speedo related commits.

Signed-off-by: Karol Herbst &lt;karolherbst@gmail.com&gt;
Reviewed-by: Martin Peres &lt;martin.peres@free.fr&gt;
Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/nouveau/volt: Don't require perfect fit</title>
<updated>2016-10-12T07:29:25Z</updated>
<author>
<name>Karol Herbst</name>
<email>karolherbst@gmail.com</email>
</author>
<published>2016-07-12T19:36:08Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=5e00e3263ba68bd32337063a43aa8467b27acd1d'/>
<id>urn:sha1:5e00e3263ba68bd32337063a43aa8467b27acd1d</id>
<content type='text'>
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.
v5: Initialize best_err with volt-&gt;max_uv.

Signed-off-by: Karol Herbst &lt;karolherbst@gmail.com&gt;
Reviewed-by: Martin Peres &lt;martin.peres@free.fr&gt;
Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/nouveau/clk: Respect voltage limits in nvkm_cstate_prog</title>
<updated>2016-10-12T07:29:24Z</updated>
<author>
<name>Karol Herbst</name>
<email>karolherbst@gmail.com</email>
</author>
<published>2016-07-16T13:26:25Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=1f7f3d91ad38afc706f838fb5a642b21d28e4485'/>
<id>urn:sha1:1f7f3d91ad38afc706f838fb5a642b21d28e4485</id>
<content type='text'>
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.

v3: Use find_best for all cstates before actually trying.
    Add nvkm_cstate_get function to get cstate by index.
v5: Cstates with voltages lower then min_uv are valid.
    Move nvkm_cstate_get into the previous commit.

Signed-off-by: Karol Herbst &lt;karolherbst@gmail.com&gt;
Reviewed-by: Martin Peres &lt;martin.peres@free.fr&gt;
Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/nouveau/volt: Add temperature parameter to nvkm_volt_map</title>
<updated>2016-10-12T07:29:23Z</updated>
<author>
<name>Karol Herbst</name>
<email>karolherbst@gmail.com</email>
</author>
<published>2016-07-12T19:36:08Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8d08c264d2b26c7b9c10790f95464b21e28dc30d'/>
<id>urn:sha1:8d08c264d2b26c7b9c10790f95464b21e28dc30d</id>
<content type='text'>
The voltage entries actually may map to a different voltage depending on
the current temperature.

v2: Only read the temperature when actually needed.
v5: Be smarter about using max().
    Don't read the temperature anymore.

Signed-off-by: Karol Herbst &lt;karolherbst@gmail.com&gt;
Reviewed-by: Martin Peres &lt;martin.peres@free.fr&gt;
Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/nouveau/volt: Add min_id parameter to nvkm_volt_set_id</title>
<updated>2016-10-12T07:29:21Z</updated>
<author>
<name>Karol Herbst</name>
<email>karolherbst@gmail.com</email>
</author>
<published>2016-07-12T19:36:08Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=fa6c4d8e2c614817c956a4ab59ab8bb24fb3653f'/>
<id>urn:sha1:fa6c4d8e2c614817c956a4ab59ab8bb24fb3653f</id>
<content type='text'>
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 &lt;karolherbst@gmail.com&gt;
Reviewed-by: Martin Peres &lt;martin.peres@free.fr&gt;
Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/nouveau/volt: Parse the max voltage map entries</title>
<updated>2016-10-12T07:29:20Z</updated>
<author>
<name>Karol Herbst</name>
<email>karolherbst@gmail.com</email>
</author>
<published>2016-07-12T19:36:08Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=4a4555a7f1dd60fe34336f440ff1de73313820ee'/>
<id>urn:sha1:4a4555a7f1dd60fe34336f440ff1de73313820ee</id>
<content type='text'>
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 all three.

We shouldn't exceed those voltages at any given time.

v2: State what those entries do in the source.
v3: Add the third max entry.
v5: Better describe the entries.

Signed-off-by: Karol Herbst &lt;karolherbst@gmail.com&gt;
Reviewed-by: Martin Peres &lt;martin.peres@free.fr&gt;
Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&gt;
</content>
</entry>
</feed>
