<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/hwtracing/intel_th/gth.c, branch linux-6.9.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.9.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.9.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2021-06-24T13:49:32Z</updated>
<entry>
<title>intel_th: Wait until port is in reset before programming it</title>
<updated>2021-06-24T13:49:32Z</updated>
<author>
<name>Alexander Shishkin</name>
<email>alexander.shishkin@linux.intel.com</email>
</author>
<published>2021-06-21T15:12:46Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=ab1afed701d2db7eb35c1a2526a29067a38e93d1'/>
<id>urn:sha1:ab1afed701d2db7eb35c1a2526a29067a38e93d1</id>
<content type='text'>
Some devices don't drain their pipelines if we don't make sure that
the corresponding output port is in reset before programming it for
a new trace capture, resulting in bits of old trace appearing in the
new trace capture. Fix that by explicitly making sure the reset is
asserted before programming new trace capture.

Reviewed-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
Signed-off-by: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20210621151246.31891-5-alexander.shishkin@linux.intel.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>intel_th: Consistency and off-by-one fix</title>
<updated>2021-04-16T05:26:50Z</updated>
<author>
<name>Pavel Machek</name>
<email>pavel@ucw.cz</email>
</author>
<published>2021-04-14T17:12:49Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=18ffbc47d45a1489b664dd68fb3a7610a6e1dea3'/>
<id>urn:sha1:18ffbc47d45a1489b664dd68fb3a7610a6e1dea3</id>
<content type='text'>
Consistently use "&lt; ... +1" in for loops.

Fix of-by-one in for_each_set_bit().

Signed-off-by: Pavel Machek &lt;pavel@denx.de&gt;
Signed-off-by: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;
Link: https://lore.kernel.org/lkml/20190724095841.GA6952@amd/
Reviewed-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20210414171251.14672-6-alexander.shishkin@linux.intel.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>intel_th: gth: Fix the window switching sequence</title>
<updated>2019-11-04T14:01:22Z</updated>
<author>
<name>Alexander Shishkin</name>
<email>alexander.shishkin@linux.intel.com</email>
</author>
<published>2019-10-28T07:06:45Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=87c0b9c79ec136ea76a14a88d675a746bc6a87f9'/>
<id>urn:sha1:87c0b9c79ec136ea76a14a88d675a746bc6a87f9</id>
<content type='text'>
Commit 8116db57cf16 ("intel_th: Add switch triggering support") added
a trigger assertion of the CTS, but forgot to de-assert it at the end
of the sequence. This results in window switches randomly not happening.

Fix that by de-asserting the trigger at the end of the window switch
sequence.

Signed-off-by: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;
Reviewed-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
Fixes: 8116db57cf16 ("intel_th: Add switch triggering support")
Cc: stable &lt;stable@vger.kernel.org&gt;
Link: https://lore.kernel.org/r/20191028070651.9770-2-alexander.shishkin@linux.intel.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>intel_th: Add switch triggering support</title>
<updated>2019-05-03T16:16:21Z</updated>
<author>
<name>Alexander Shishkin</name>
<email>alexander.shishkin@linux.intel.com</email>
</author>
<published>2019-05-03T08:44:48Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8116db57cf1618cb21dab957952e7bd1395430da'/>
<id>urn:sha1:8116db57cf1618cb21dab957952e7bd1395430da</id>
<content type='text'>
Add support for asserting window switch trigger when tracing to MSU output
ports. This allows for software controlled switching between windows of
the MSU buffer, which can be used for double buffering while exporting the
trace data further from the MSU.

Signed-off-by: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>intel_th: gth: Factor out trace start/stop</title>
<updated>2019-05-03T16:16:21Z</updated>
<author>
<name>Alexander Shishkin</name>
<email>alexander.shishkin@linux.intel.com</email>
</author>
<published>2019-05-03T08:44:47Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9958e02523eea424d4848ef426c5aa7e07e4e207'/>
<id>urn:sha1:9958e02523eea424d4848ef426c5aa7e07e4e207</id>
<content type='text'>
The trace enable/disable functions of the GTH include the code that starts
and stops trace flom from the sources. This start/stop functionality will
also be used in the window switch trigger sequence.

Factor out start/stop code from the larger trace enable/disable code in
preparation for the window switch sequence.

Signed-off-by: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>intel_th: msu: Factor out pipeline draining</title>
<updated>2019-05-03T16:16:21Z</updated>
<author>
<name>Alexander Shishkin</name>
<email>alexander.shishkin@linux.intel.com</email>
</author>
<published>2019-05-03T08:44:46Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8d4155126e32fdceda7e1520e77a7beac2217f4a'/>
<id>urn:sha1:8d4155126e32fdceda7e1520e77a7beac2217f4a</id>
<content type='text'>
The code that waits for the pipeline empty condition of the MSU is
currently called in the path that disables the trace. We will also
need this in the window switch trigger sequence. Therefore, factor
out this code and make it accessible to the GTH device.

Signed-off-by: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>intel_th: gth: Fix an off-by-one in output unassigning</title>
<updated>2019-03-01T08:20:38Z</updated>
<author>
<name>Alexander Shishkin</name>
<email>alexander.shishkin@linux.intel.com</email>
</author>
<published>2019-03-01T08:09:55Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=91d3f8a629849968dc91d6ce54f2d46abf4feb7f'/>
<id>urn:sha1:91d3f8a629849968dc91d6ce54f2d46abf4feb7f</id>
<content type='text'>
Commit 9ed3f22223c3 ("intel_th: Don't reference unassigned outputs")
fixes a NULL dereference for all masters except the last one ("256+"),
which keeps the stale pointer after the output driver had been unassigned.

Fix the off-by-one.

Signed-off-by: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;
Fixes: 9ed3f22223c3 ("intel_th: Don't reference unassigned outputs")
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>intel_th: Don't reference unassigned outputs</title>
<updated>2019-02-21T15:43:14Z</updated>
<author>
<name>Alexander Shishkin</name>
<email>alexander.shishkin@linux.intel.com</email>
</author>
<published>2019-01-24T13:11:53Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9ed3f22223c33347ed963e7c7019cf2956dd4e37'/>
<id>urn:sha1:9ed3f22223c33347ed963e7c7019cf2956dd4e37</id>
<content type='text'>
When an output port driver is removed, also remove references to it from
any masters. Failing to do this causes a NULL ptr dereference when
configuring another output port:

&gt; BUG: unable to handle kernel NULL pointer dereference at 000000000000000d
&gt; RIP: 0010:master_attr_store+0x9d/0x160 [intel_th_gth]
&gt; Call Trace:
&gt; dev_attr_store+0x1b/0x30
&gt; sysfs_kf_write+0x3c/0x50
&gt; kernfs_fop_write+0x125/0x1a0
&gt; __vfs_write+0x3a/0x190
&gt; ? __vfs_write+0x5/0x190
&gt; ? _cond_resched+0x1a/0x50
&gt; ? rcu_all_qs+0x5/0xb0
&gt; ? __vfs_write+0x5/0x190
&gt; vfs_write+0xb8/0x1b0
&gt; ksys_write+0x55/0xc0
&gt; __x64_sys_write+0x1a/0x20
&gt; do_syscall_64+0x5a/0x140
&gt; entry_SYSCALL_64_after_hwframe+0x44/0xa9

Signed-off-by: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;
Fixes: b27a6a3f97b9 ("intel_th: Add Global Trace Hub driver")
CC: stable@vger.kernel.org # v4.4+
Reported-by: Ammy Yi &lt;ammy.yi@intel.com&gt;
</content>
</entry>
<entry>
<title>intel_th: Add SPDX GPL-2.0 header to replace GPLv2 boilerplate</title>
<updated>2018-03-28T15:47:19Z</updated>
<author>
<name>Alexander Shishkin</name>
<email>alexander.shishkin@linux.intel.com</email>
</author>
<published>2018-03-28T15:46:15Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=50352fa730328b2e946fb912d495653b627c0bf9'/>
<id>urn:sha1:50352fa730328b2e946fb912d495653b627c0bf9</id>
<content type='text'>
This adds SPDX GPL-2.0 header to the Trace Hub driver and removes the
GPLv2 boilerplate text.

Signed-off-by: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>intel_th: Perform time resync on capture start</title>
<updated>2017-08-25T15:48:00Z</updated>
<author>
<name>Alexander Shishkin</name>
<email>alexander.shishkin@linux.intel.com</email>
</author>
<published>2017-02-24T14:09:40Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=a0e7df335afd2a8a8a688251ffee375b58b6517c'/>
<id>urn:sha1:a0e7df335afd2a8a8a688251ffee375b58b6517c</id>
<content type='text'>
On some devices (TH 2.x devices at the moment), the internal time counter
is initially not synchronized to the global crystal clock, so the time
stamps it produces will not be useful. In this case, the driver needs
to force the time counter resync.

This applies the workaround to relevant devices.

Signed-off-by: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;
</content>
</entry>
</feed>
