<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/gpu/drm/etnaviv/etnaviv_buffer.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>2018-03-09T11:22:38Z</updated>
<entry>
<title>drm/etnaviv: add function to load the initial PTA state</title>
<updated>2018-03-09T11:22:38Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2018-01-22T11:28:10Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=1137bef67a11d2e5a4f44ce87b6e4dd1fb7a0163'/>
<id>urn:sha1:1137bef67a11d2e5a4f44ce87b6e4dd1fb7a0163</id>
<content type='text'>
On GPUs with the security feature the MTLB config is stored in the PTA.
Add a function to trigger the initial PTA load through the FE.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: move cmdbuf into submit object</title>
<updated>2018-01-02T16:33:36Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2017-11-24T15:56:37Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=2f9225dbc09abe7cacb9820ebdeef5b6c0eb9c72'/>
<id>urn:sha1:2f9225dbc09abe7cacb9820ebdeef5b6c0eb9c72</id>
<content type='text'>
Less dynamic allocations and slims down the cmdbuf object to only the
required information, as everything else is already available in the
submit object.

This also simplifies buffer and mappings lifetime management, as they
are now exlusively attached to the submit object and not additionally
to the cmdbuf.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: move exec_state to submit object</title>
<updated>2018-01-02T16:32:40Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2017-11-24T14:16:58Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=797b0159e6b9124c24968c9b2b4631eba7c112b9'/>
<id>urn:sha1:797b0159e6b9124c24968c9b2b4631eba7c112b9</id>
<content type='text'>
We'll need this in some places where only the submit is available. Also
this is a first step at slimming down the cmdbuf object.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: add lockdep annotations to buffer manipulation functions</title>
<updated>2018-01-02T16:25:44Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2017-11-17T16:51:19Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=b6d6223f5029d3c4fe466ce1711fe4cb23d06013'/>
<id>urn:sha1:b6d6223f5029d3c4fe466ce1711fe4cb23d06013</id>
<content type='text'>
When manipulating the kernel command buffer the GPU mutex must be held, as
otherwise different callers might try to replace the same part of the
buffer, wreacking havok in the GPU execution.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Reviewed-by: Philipp Zabel &lt;p.zabel@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: remove switch_context member from etnaviv_gpu</title>
<updated>2018-01-02T16:21:37Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2017-11-17T16:19:50Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=4375ffffbf099f14815380a3d9e5784ffc55bf31'/>
<id>urn:sha1:4375ffffbf099f14815380a3d9e5784ffc55bf31</id>
<content type='text'>
There is no need to store this in the gpu struct. MMU flushes are triggered
correctly in reaction to MMU maps and unmaps, independent of the current ctx.
Any required pipe switches can be infered from the current and the desired
GPU exec state.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Reviewed-by: Philipp Zabel &lt;p.zabel@pengutronix.de&gt;
Reviewed-by: Christian Gmeiner &lt;christian.gmeiner@gmail.com&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: add 'sync point' support</title>
<updated>2017-10-10T09:45:45Z</updated>
<author>
<name>Christian Gmeiner</name>
<email>christian.gmeiner@gmail.com</email>
</author>
<published>2017-09-24T13:15:28Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=357713ce9bc86c1ae7ba804731d8db542944463c'/>
<id>urn:sha1:357713ce9bc86c1ae7ba804731d8db542944463c</id>
<content type='text'>
In order to support performance counters in a sane way we need to provide
a method to sync the GPU with the CPU. The GPU can process multpile command
buffers/events per irq. With the help of a 'sync point' we can trigger an event
and stop the GPU/FE immediately. When the CPU is done with is processing it
simply needs to restart the FE and the GPU will process the command stream.

Changes from v1 -&gt; v2:
- process sync point with a work item to keep irq as fast as possible

Changes from v4 -&gt; v5:
- renamed pmrs_* to sync_point_*
- call event_free(..) in sync_point_worker(..)

Signed-off-by: Christian Gmeiner &lt;christian.gmeiner@gmail.com&gt;
Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: wire up iova handling in new cmdbuf abstraction</title>
<updated>2017-02-02T09:30:20Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2017-01-16T15:52:44Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c3ef4b8c3e108397980014a4616c56f50026d547'/>
<id>urn:sha1:c3ef4b8c3e108397980014a4616c56f50026d547</id>
<content type='text'>
Don't call the IOMMU directly, but go through the new cmdbuf abstraction.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Reviewed-by: Christian Gmeiner &lt;christian.gmeiner@gmail.com&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: move cmdbuf de-/allocation into own file</title>
<updated>2017-02-02T09:30:15Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2017-01-16T15:09:51Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=ea1f5729aa1bbe68f9a394e259288d6ff894b0aa'/>
<id>urn:sha1:ea1f5729aa1bbe68f9a394e259288d6ff894b0aa</id>
<content type='text'>
This will get more complex with the following changes, so move it
into its own place.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Reviewed-by: Christian Gmeiner &lt;christian.gmeiner@gmail.com&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: ensure write caches are flushed at end of user cmdstream</title>
<updated>2016-10-10T13:26:38Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2016-10-05T16:30:43Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8c136b590f79f7f4f60ae4709fc1340885ca2eba'/>
<id>urn:sha1:8c136b590f79f7f4f60ae4709fc1340885ca2eba</id>
<content type='text'>
If the GPU is done with one user command stream the buffers referenced
by this command stream may go away and get unmapped from the MMU. If
the write caches are still dirty at this point later evictions will run
into MMU faults, killing the GPU.

Make sure the write caches are flushed before signaling completion
of the user command stream.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>drm/etnaviv: add flushing logic for MMUv2</title>
<updated>2016-09-15T13:29:41Z</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2016-08-19T22:01:24Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=2e145a22486610100cb2c6d789f56bd0c6f27718'/>
<id>urn:sha1:2e145a22486610100cb2c6d789f56bd0c6f27718</id>
<content type='text'>
Flushing works differently on MMUv2, in that it's only necessary
to set a single bit in the control register to flush all translation
units. A semaphore stall then makes sure that the flush has propagated
properly.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
</content>
</entry>
</feed>
