<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/thunderbolt/nhi.c, branch linux-4.4.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2019-11-06T11:09:17Z</updated>
<entry>
<title>thunderbolt: Use 32-bit writes when writing ring producer/consumer</title>
<updated>2019-11-06T11:09:17Z</updated>
<author>
<name>Mika Westerberg</name>
</author>
<published>2018-07-04T05:46:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6370781b38cf34b6f6a9bc5dce110bd89281c628'/>
<id>urn:sha1:6370781b38cf34b6f6a9bc5dce110bd89281c628</id>
<content type='text'>
[ Upstream commit 943795219d3cb9f8ce6ce51cad3ffe1f61e95c6b ]

The register access should be using 32-bit reads/writes according to the
datasheet. With the previous generation hardware 16-bit writes have been
working but starting with ICL this is not the case anymore so fix
producer/consumer register update to use correct width register address.

Signed-off-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Reviewed-by: Yehezkel Bernat &lt;YehezkelShB@gmail.com&gt;
Tested-by: Mario Limonciello &lt;mario.limonciello@dell.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>thunderbolt: Resume control channel after hibernation image is created</title>
<updated>2018-04-24T07:32:07Z</updated>
<author>
<name>Mika Westerberg</name>
</author>
<published>2017-12-19T09:44:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=00cf298fae0bcee000bad030574b70307175219b'/>
<id>urn:sha1:00cf298fae0bcee000bad030574b70307175219b</id>
<content type='text'>
commit f2a659f7d8d5da803836583aa16df06bdf324252 upstream.

The driver misses implementation of PM hook that undoes what
-&gt;freeze_noirq() does after the hibernation image is created. This means
the control channel is not resumed properly and the Thunderbolt bus
becomes useless in later stages of hibernation (when the image is stored
or if the operation fails).

Fix this by pointing -&gt;thaw_noirq to driver nhi_resume_noirq(). This
makes sure the control channel is resumed properly.

Fixes: 23dd5bb49d98 ("thunderbolt: Add suspend/hibernate support")
Signed-off-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Reviewed-by: Andy Shevchenko &lt;andy.shevchenko@gmail.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>thunderbolt: Allow loading of module on recent Apple MacBooks with thunderbolt 2 controller</title>
<updated>2015-09-20T22:20:11Z</updated>
<author>
<name>Knuth Posern</name>
</author>
<published>2015-09-20T19:25:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a42fb351ca1f340f8307468be765e3f77ddedda9'/>
<id>urn:sha1:a42fb351ca1f340f8307468be765e3f77ddedda9</id>
<content type='text'>
The pci device ids listed in the thunderbolt driver are to restrictive,
which prevents the driver from being loaded on recent Apple MacBooks
using a thunderbolt 2 controller. In particular this prevented any
hot-plugging functionality for thunderbolt based ethernet dongles
(i.e. Apples thunderbolt gigabit ethernet broadcom tg3 based dongle
Model A1433 EMC 2590).

Changing the subvendor and subdevice to PCI_ANY_ID the thunderbolt driver
loads and binds to the pci device 07:00.0 System peripheral:
Intel Corporation Device 156c which is the thunderbolt 2 controller on
the MacBookPro12,1.

Successfully tested on MacBookPro12,1. With the patch the thunderbolt
module gets now loaded on boot. And it provides hot-plugging support both
for a cold-plugged and a warm-plugged ethernet dongle.

Signed-off-by: Andreas Noever &lt;andreas.noever@gmail.com&gt;
Acked-by: Knuth Posern &lt;knuth@posern.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>thunderbolt: Use kcalloc</title>
<updated>2014-07-13T20:16:50Z</updated>
<author>
<name>Himangi Saraogi</name>
</author>
<published>2014-07-11T19:42:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2a211f320ee3d86835b40efd2948642482d3c933'/>
<id>urn:sha1:2a211f320ee3d86835b40efd2948642482d3c933</id>
<content type='text'>
The advantage of kcalloc is, that will prevent integer overflows
which could result from the multiplication of number of elements
and size and it is also a bit nicer to read.

Signed-off-by: Himangi Saraogi &lt;himangi774@gmail.com&gt;
Acked-by: Julia Lawall &lt;julia.lawall@lip6.fr&gt;
Acked-by: Andreas Noever &lt;andreas.noever@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>thunderbolt: Correct the size argument to devm_kzalloc</title>
<updated>2014-07-08T01:56:20Z</updated>
<author>
<name>Himangi Saraogi</name>
</author>
<published>2014-07-06T16:13:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fc51768ba24077c8148067036e1555a8a978bb99'/>
<id>urn:sha1:fc51768ba24077c8148067036e1555a8a978bb99</id>
<content type='text'>
nhi-&gt;rx_rings does not have type as struct tb_ring *, as it is a
double pointer so the elements of the array should have pointer type,
not structure type.

The Coccinelle semantic patch that makes this change is as follows:

// &lt;smpl&gt;
@disable sizeof_type_expr@
type T;
T **x;
@@

  x =
  &lt;+...sizeof(
- T
+ *x
  )...+&gt;
// &lt;/smpl&gt;

Signed-off-by: Himangi Saraogi &lt;himangi774@gmail.com&gt;
Acked-by: Julia Lawall &lt;julia.lawall@lip6.fr&gt;
Cc: Andreas Noever &lt;andreas.noever@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>thunderbolt: Staticize nhi_ids</title>
<updated>2014-06-20T16:44:42Z</updated>
<author>
<name>Sachin Kamat</name>
</author>
<published>2014-06-20T09:02:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=620863f71c46509e104729c75a199689e59cac47'/>
<id>urn:sha1:620863f71c46509e104729c75a199689e59cac47</id>
<content type='text'>
'nhi_ids' is local to this file.

Signed-off-by: Sachin Kamat &lt;sachin.kamat@samsung.com&gt;
Acked-by: Andreas Noever &lt;andreas.noever@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>thunderbolt: Use NULL instead of 0 in nhi.c</title>
<updated>2014-06-20T16:44:42Z</updated>
<author>
<name>Sachin Kamat</name>
</author>
<published>2014-06-20T09:02:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f19b72c6e8bb0bc257d09da6e324841d27a68528'/>
<id>urn:sha1:f19b72c6e8bb0bc257d09da6e324841d27a68528</id>
<content type='text'>
'descriptors' is a pointer. Use NULL isntead of 0.

Signed-off-by: Sachin Kamat &lt;sachin.kamat@samsung.com&gt;
Acked-by: Andreas Noever &lt;andreas.noever@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>thunderbolt: Add suspend/hibernate support</title>
<updated>2014-06-19T21:13:00Z</updated>
<author>
<name>Andreas Noever</name>
</author>
<published>2014-06-03T20:04:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=23dd5bb49d986f37977ed80dd2ca65040ead4392'/>
<id>urn:sha1:23dd5bb49d986f37977ed80dd2ca65040ead4392</id>
<content type='text'>
We use _noirq since we have to restore the pci tunnels before the pci
core wakes the tunneled devices.

Signed-off-by: Andreas Noever &lt;andreas.noever@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>thunderbolt: Setup control channel</title>
<updated>2014-06-19T21:07:07Z</updated>
<author>
<name>Andreas Noever</name>
</author>
<published>2014-06-03T20:04:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d6cc51cd1a4aed1d9e2dd66d643d729acb4be560'/>
<id>urn:sha1:d6cc51cd1a4aed1d9e2dd66d643d729acb4be560</id>
<content type='text'>
Add struct tb which will contain our view of the thunderbolt bus.  For
now it just contains a pointer to the control channel and a workqueue
for hotplug events.

Add thunderbolt_alloc_and_start() and thunderbolt_shutdown_and_free()
which are responsible for setup and teardown of struct tb.

Signed-off-by: Andreas Noever &lt;andreas.noever@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>thunderbolt: Add initial cactus ridge NHI support</title>
<updated>2014-06-19T21:04:52Z</updated>
<author>
<name>Andreas Noever</name>
</author>
<published>2014-06-03T20:03:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=16603153666d22df544ae9f9b3764fd18da28eeb'/>
<id>urn:sha1:16603153666d22df544ae9f9b3764fd18da28eeb</id>
<content type='text'>
Thunderbolt hotplug is supposed to be handled by the firmware. But Apple
decided to implement thunderbolt at the operating system level. The
firmare only initializes thunderbolt devices that are present at boot
time. This driver enables hotplug of thunderbolt of non-chained
thunderbolt devices on Apple systems with a cactus ridge controller.

This first patch adds the Kconfig file as well the parts of the driver
which talk directly to the hardware (that is pci device setup, interrupt
handling and RX/TX ring management).

Signed-off-by: Andreas Noever &lt;andreas.noever@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
