<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git, branch toradex_vf_4.1-next</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>tty: serial: fsl_lpuart: lock port on console write</title>
<updated>2018-06-04T15:36:25+00:00</updated>
<author>
<name>Stefan Agner</name>
<email>stefan.agner@toradex.com</email>
</author>
<published>2017-03-24T19:44:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8500b6c5d691ddaba42ac2fa649c5699eaa70d35'/>
<id>8500b6c5d691ddaba42ac2fa649c5699eaa70d35</id>
<content type='text'>
The console write code is not entirely race free (e.g. the operations
to disabling the UART interrupts are not atomic) hence locking is
required. This has been become apparent with the PREEMPT RT patchset
applied: With the fully preemptible kernel configuration the system
often ended up in a freeze already at startup.

Disable interrupts and lock using read_lock_irqsave. Try to lock in
the sysrq/oops case, but don't bother if locking fails.

Signed-off-by: Stefan Agner &lt;stefan.agner@toradex.com&gt;
Acked-by: Marcel Ziswiler &lt;marcel.ziswiler@toradex.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The console write code is not entirely race free (e.g. the operations
to disabling the UART interrupts are not atomic) hence locking is
required. This has been become apparent with the PREEMPT RT patchset
applied: With the fully preemptible kernel configuration the system
often ended up in a freeze already at startup.

Disable interrupts and lock using read_lock_irqsave. Try to lock in
the sysrq/oops case, but don't bother if locking fails.

Signed-off-by: Stefan Agner &lt;stefan.agner@toradex.com&gt;
Acked-by: Marcel Ziswiler &lt;marcel.ziswiler@toradex.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tty: serial: fsl_lpuart: fix del_timer_sync() vs timer routine deadlock</title>
<updated>2018-06-04T15:33:34+00:00</updated>
<author>
<name>Nikita Yushchenko</name>
<email>nikita.yoush@cogentembedded.com</email>
</author>
<published>2016-12-04T15:49:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c40abcef423ca42ebe3d629e131ed5df20632e33'/>
<id>c40abcef423ca42ebe3d629e131ed5df20632e33</id>
<content type='text'>
Problem found via lockdep:

- lpuart_set_termios() calls del_timer_sync(&amp;sport-&gt;lpuart_timer) while
  holding sport-&gt;port.lock

- sport-&gt;lpuart_timer routine is lpuart_timer_func() that calls
  lpuart_copy_rx_to_tty() that acquires same lock.

To fix, move Rx DMA stopping out of lock, as it already is in other places
in the same file.

While at it, also make Rx DMA start/stop code to look the same is in
other places in the same file.

Signed-off-by: Nikita Yushchenko &lt;nikita.yoush@cogentembedded.com&gt;
Tested-by: Stefan Agner &lt;stefan@agner.ch&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
(cherry picked from commit 54a44d54be3a7394ebea42bbffd67819e0f3f89a)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem found via lockdep:

- lpuart_set_termios() calls del_timer_sync(&amp;sport-&gt;lpuart_timer) while
  holding sport-&gt;port.lock

- sport-&gt;lpuart_timer routine is lpuart_timer_func() that calls
  lpuart_copy_rx_to_tty() that acquires same lock.

To fix, move Rx DMA stopping out of lock, as it already is in other places
in the same file.

While at it, also make Rx DMA start/stop code to look the same is in
other places in the same file.

Signed-off-by: Nikita Yushchenko &lt;nikita.yoush@cogentembedded.com&gt;
Tested-by: Stefan Agner &lt;stefan@agner.ch&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
(cherry picked from commit 54a44d54be3a7394ebea42bbffd67819e0f3f89a)
</pre>
</div>
</content>
</entry>
<entry>
<title>tty: serial: fsl_lpuart: Fix Tx DMA edge case</title>
<updated>2018-05-30T12:07:05+00:00</updated>
<author>
<name>Aaron Brice</name>
<email>aaron.brice@datasoft.com</email>
</author>
<published>2016-10-06T22:13:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fdd5ac219ee5a69c8c722b4f2162804d59e71cc6'/>
<id>fdd5ac219ee5a69c8c722b4f2162804d59e71cc6</id>
<content type='text'>
In the case where head == 0 on the circular buffer, there should be one
DMA buffer, not two.  The second zero-length buffer would break the
lpuart driver, transfer would never complete.

Signed-off-by: Aaron Brice &lt;aaron.brice@datasoft.com&gt;
Signed-off-by: Stefan Agner &lt;stefan.agner@toradex.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the case where head == 0 on the circular buffer, there should be one
DMA buffer, not two.  The second zero-length buffer would break the
lpuart driver, transfer would never complete.

Signed-off-by: Aaron Brice &lt;aaron.brice@datasoft.com&gt;
Signed-off-by: Stefan Agner &lt;stefan.agner@toradex.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'v4.1.39' into toradex_vf_4.1-next</title>
<updated>2017-03-15T17:35:51+00:00</updated>
<author>
<name>Stefan Agner</name>
<email>stefan@agner.ch</email>
</author>
<published>2017-03-14T20:59:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=39ac0033f2345ce7b5d8ca4439192407dacb2355'/>
<id>39ac0033f2345ce7b5d8ca4439192407dacb2355</id>
<content type='text'>
Linux 4.1.39
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Linux 4.1.39
</pre>
</div>
</content>
</entry>
<entry>
<title>tty: serial: fsl_lpuart: resync with 4.9 kernel</title>
<updated>2017-03-15T17:35:50+00:00</updated>
<author>
<name>Bhuvanchandra DV</name>
<email>bhuvanchandra.dv@toradex.com</email>
</author>
<published>2017-02-17T20:25:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=13f2767f31803754aa883f298737aff866f04628'/>
<id>13f2767f31803754aa883f298737aff866f04628</id>
<content type='text'>
This commit resyncs the driver changes with 4.9 kernel
version of the driver.

Signed-off-by: Bhuvanchandra DV &lt;bhuvanchandra.dv@toradex.com&gt;
Signed-off-by: Stefan Agner &lt;stefan.agner@toradex.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit resyncs the driver changes with 4.9 kernel
version of the driver.

Signed-off-by: Bhuvanchandra DV &lt;bhuvanchandra.dv@toradex.com&gt;
Signed-off-by: Stefan Agner &lt;stefan.agner@toradex.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ARM: configs: colibri_vf: configure IPv6 SIT driver as module</title>
<updated>2017-03-15T17:35:49+00:00</updated>
<author>
<name>Stefan Agner</name>
<email>stefan@agner.ch</email>
</author>
<published>2016-11-08T22:38:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c7feb3cf69a8b662abb0efbbbfde6f116f39b06b'/>
<id>c7feb3cf69a8b662abb0efbbbfde6f116f39b06b</id>
<content type='text'>
SIT tunnels (IPv6 over IPv4) are not often used hence configure
the driver as a module. This also gets rid of the extra network
interface sit0 by default.

Signed-off-by: Stefan Agner &lt;stefan.agner@toradex.com&gt;
Acked-by: Max Krummenacher &lt;max.krummenacher@toradex.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
SIT tunnels (IPv6 over IPv4) are not often used hence configure
the driver as a module. This also gets rid of the extra network
interface sit0 by default.

Signed-off-by: Stefan Agner &lt;stefan.agner@toradex.com&gt;
Acked-by: Max Krummenacher &lt;max.krummenacher@toradex.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ARM: dts: vf610: Add alias for ethernet controller</title>
<updated>2017-03-15T17:35:48+00:00</updated>
<author>
<name>Stefan Agner</name>
<email>stefan@agner.ch</email>
</author>
<published>2016-01-30T00:00:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e7e358c119601938d724a4fe5377a10c638c5197'/>
<id>e7e358c119601938d724a4fe5377a10c638c5197</id>
<content type='text'>
Add alias for FEC ethernet on Vybrid to allow bootloaders (like U-Boot)
patch-in the MAC address using this alias.

Signed-off-by: Stefan Agner &lt;stefan.agner@toradex.com&gt;
Acked-by: Max Krummenacher &lt;max.krummenacher@toradex.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add alias for FEC ethernet on Vybrid to allow bootloaders (like U-Boot)
patch-in the MAC address using this alias.

Signed-off-by: Stefan Agner &lt;stefan.agner@toradex.com&gt;
Acked-by: Max Krummenacher &lt;max.krummenacher@toradex.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'v4.1.32' into toradex_vf_4.1-next</title>
<updated>2017-03-15T17:35:47+00:00</updated>
<author>
<name>Stefan Agner</name>
<email>stefan@agner.ch</email>
</author>
<published>2016-09-16T20:17:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6819e8267b359913b95ccc822ac267454f39a460'/>
<id>6819e8267b359913b95ccc822ac267454f39a460</id>
<content type='text'>
Linux 4.1.32
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Linux 4.1.32
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'v4.1.24' into toradex_vf_4.1-next</title>
<updated>2017-03-15T17:35:46+00:00</updated>
<author>
<name>Stefan Agner</name>
<email>stefan@agner.ch</email>
</author>
<published>2016-06-02T19:22:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=440ef98ad687b210dca17e5c5141b24738f04922'/>
<id>440ef98ad687b210dca17e5c5141b24738f04922</id>
<content type='text'>
Linux 4.1.24
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Linux 4.1.24
</pre>
</div>
</content>
</entry>
<entry>
<title>tty: serial: fsl_lpuart: enable UART DMA by default</title>
<updated>2017-03-15T17:35:45+00:00</updated>
<author>
<name>Stefan Agner</name>
<email>stefan.agner@toradex.com</email>
</author>
<published>2016-03-29T19:58:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=de1c77640710e1cca36091c8e6d7947bff2397e7'/>
<id>de1c77640710e1cca36091c8e6d7947bff2397e7</id>
<content type='text'>
The new DMA implementation uses larger buffer sizes and avoids
overflows in most situations. Enable DMA by default again.

Signed-off-by: Stefan Agner &lt;stefan.agner@toradex.com&gt;
Acked-by: Max Krummenacher &lt;max.krummenacher@toradex.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The new DMA implementation uses larger buffer sizes and avoids
overflows in most situations. Enable DMA by default again.

Signed-off-by: Stefan Agner &lt;stefan.agner@toradex.com&gt;
Acked-by: Max Krummenacher &lt;max.krummenacher@toradex.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
