<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/staging/line6, branch v3.3</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>staging: line6: fixed ALSA/PCM interaction</title>
<updated>2011-12-10T03:26:09+00:00</updated>
<author>
<name>Markus Grabner</name>
<email>grabner@icg.tugraz.at</email>
</author>
<published>2011-12-10T01:12:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6b02a17ee5cd5d200dbe4a285a4e750f70884967'/>
<id>6b02a17ee5cd5d200dbe4a285a4e750f70884967</id>
<content type='text'>
The PCM subsystem in the Line6 driver is mainly used for PCM playback and
capture by ALSA, but also has other tasks, most notably providing a
low-latency software monitor for devices which don't support hardware
monitoring (e.g., the TonePort series). This patch makes ALSA "play nicely"
with the other components, i.e., prevents it from resetting the isochronous
USB transfer while other PCM tasks (software monitoring) are running.

Signed-off-by: Markus Grabner &lt;grabner@icg.tugraz.at&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The PCM subsystem in the Line6 driver is mainly used for PCM playback and
capture by ALSA, but also has other tasks, most notably providing a
low-latency software monitor for devices which don't support hardware
monitoring (e.g., the TonePort series). This patch makes ALSA "play nicely"
with the other components, i.e., prevents it from resetting the isochronous
USB transfer while other PCM tasks (software monitoring) are running.

Signed-off-by: Markus Grabner &lt;grabner@icg.tugraz.at&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>staging: line6: wait for urbs in snd_line6_prepare()</title>
<updated>2011-12-10T03:26:09+00:00</updated>
<author>
<name>Stefan Hajnoczi</name>
<email>stefanha@gmail.com</email>
</author>
<published>2011-12-10T01:12:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=665f3f506b1c2684d6f78d6d03c038d1712e561d'/>
<id>665f3f506b1c2684d6f78d6d03c038d1712e561d</id>
<content type='text'>
The .trigger() pcm callbacks are not allowed to block and cannot wait
until urbs have completed.  We need to ensure that stopping, preparing,
and then restarting a stream always works.

Currently the driver will sometimes return -EBUSY when restarting the
stream because urbs have not completed yet.  This can be triggered by
jackd from userspace.

The solution is to wait on urbs in the .prepare() pcm callback since
blocking is allowed in that callback.  This guarantees that all urbs are
quiesced and ready to be submitted when the start trigger callback is
invoked.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Markus Grabner &lt;grabner@icg.tugraz.at&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The .trigger() pcm callbacks are not allowed to block and cannot wait
until urbs have completed.  We need to ensure that stopping, preparing,
and then restarting a stream always works.

Currently the driver will sometimes return -EBUSY when restarting the
stream because urbs have not completed yet.  This can be triggered by
jackd from userspace.

The solution is to wait on urbs in the .prepare() pcm callback since
blocking is allowed in that callback.  This guarantees that all urbs are
quiesced and ready to be submitted when the start trigger callback is
invoked.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Markus Grabner &lt;grabner@icg.tugraz.at&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>staging: line6: eliminate useless NULL checks</title>
<updated>2011-12-10T03:26:09+00:00</updated>
<author>
<name>Stefan Hajnoczi</name>
<email>stefanha@gmail.com</email>
</author>
<published>2011-12-10T01:12:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=188e664502dc47f83775a556e6db52cd8cc0b5fc'/>
<id>188e664502dc47f83775a556e6db52cd8cc0b5fc</id>
<content type='text'>
The line6 driver checks struct field addresses for NULL where it does
not make sense to do so.  The struct has already been checked for NULL
and there is no value in checking the first field's address too.

Suggested-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Markus Grabner &lt;grabner@icg.tugraz.at&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The line6 driver checks struct field addresses for NULL where it does
not make sense to do so.  The struct has already been checked for NULL
and there is no value in checking the first field's address too.

Suggested-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Markus Grabner &lt;grabner@icg.tugraz.at&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>staging: line6: eliminate useless index_out variable</title>
<updated>2011-12-10T03:26:09+00:00</updated>
<author>
<name>Stefan Hajnoczi</name>
<email>stefanha@gmail.com</email>
</author>
<published>2011-12-10T01:12:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=153e38761d27f29edf436f11da3dbfb4fb8edcc1'/>
<id>153e38761d27f29edf436f11da3dbfb4fb8edcc1</id>
<content type='text'>
Playback urbs use the index_out counter to decide which part of the
playback buffer to use.  Since the urb already has a unique index in
range [0, LINE6_ISO_BUFFERS) there is no need to keep a separate
counter.

Use the urb index instead.  This also eliminates the possibility of two
urbs using the same playback buffer space if they ever complete
out-of-order for some reason.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Markus Grabner &lt;grabner@icg.tugraz.at&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Playback urbs use the index_out counter to decide which part of the
playback buffer to use.  Since the urb already has a unique index in
range [0, LINE6_ISO_BUFFERS) there is no need to keep a separate
counter.

Use the urb index instead.  This also eliminates the possibility of two
urbs using the same playback buffer space if they ever complete
out-of-order for some reason.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Markus Grabner &lt;grabner@icg.tugraz.at&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>staging: line6: fix playback urb transfer buffer calculation</title>
<updated>2011-12-10T03:26:09+00:00</updated>
<author>
<name>Stefan Hajnoczi</name>
<email>stefanha@gmail.com</email>
</author>
<published>2011-12-10T01:12:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=2f637ee42d4a60e1c3823beff3699354bd4400be'/>
<id>2f637ee42d4a60e1c3823beff3699354bd4400be</id>
<content type='text'>
The playback urb transfer buffer calculation does not factor in
LINE6_ISO_PACKETS.  Buffer memory is organized like this in the driver:

  Buffer 0                 Buffer 1                 ...
  [Packet 0, Packet 1, ...][Packet 0, Packet 1, ...][Packet 0, ...]

However, we're lucky that LINE6_ISO_PACKETS is currently defined as 1 so
this patch does not change any behavior.  It's still worth including
this fix in case the LINE6_ISO_PACKETS value is changed in the future.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Markus Grabner &lt;grabner@icg.tugraz.at&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The playback urb transfer buffer calculation does not factor in
LINE6_ISO_PACKETS.  Buffer memory is organized like this in the driver:

  Buffer 0                 Buffer 1                 ...
  [Packet 0, Packet 1, ...][Packet 0, Packet 1, ...][Packet 0, ...]

However, we're lucky that LINE6_ISO_PACKETS is currently defined as 1 so
this patch does not change any behavior.  It's still worth including
this fix in case the LINE6_ISO_PACKETS value is changed in the future.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Markus Grabner &lt;grabner@icg.tugraz.at&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>staging: line6: fix memory leak in .hw_params()</title>
<updated>2011-12-10T03:26:09+00:00</updated>
<author>
<name>Stefan Hajnoczi</name>
<email>stefanha@gmail.com</email>
</author>
<published>2011-12-10T01:12:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=60c01a977814788178362ff0e1a22dfbf106eede'/>
<id>60c01a977814788178362ff0e1a22dfbf106eede</id>
<content type='text'>
The .hw_params() pcm callback can be invoked multiple times in a row.
Ensure that the URB data buffer is only allocated once.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Markus Grabner &lt;grabner@icg.tugraz.at&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The .hw_params() pcm callback can be invoked multiple times in a row.
Ensure that the URB data buffer is only allocated once.

Signed-off-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Markus Grabner &lt;grabner@icg.tugraz.at&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>staging/line6: refactor device information and add POD HD 500</title>
<updated>2011-12-08T20:33:49+00:00</updated>
<author>
<name>Markus Grabner</name>
<email>grabner@icg.tugraz.at</email>
</author>
<published>2011-12-05T22:51:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=4c6fb5fc050a4430363d92994132fffa6776c9d4'/>
<id>4c6fb5fc050a4430363d92994132fffa6776c9d4</id>
<content type='text'>
This patch refactors the device information code and adds preliminary support for the POD HD 500 device.

Signed-off-by: Markus Grabner &lt;grabner@icg.tugraz.at&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch refactors the device information code and adds preliminary support for the POD HD 500 device.

Signed-off-by: Markus Grabner &lt;grabner@icg.tugraz.at&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>staging/line6: Remove obsolete code</title>
<updated>2011-12-08T20:33:48+00:00</updated>
<author>
<name>Markus Grabner</name>
<email>grabner@icg.tugraz.at</email>
</author>
<published>2011-12-05T22:51:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=3b35de4126f03d8df089c5fc908c40bb91485f6c'/>
<id>3b35de4126f03d8df089c5fc908c40bb91485f6c</id>
<content type='text'>
This patch removes experimental code which is no longer used.

Signed-off-by: Markus Grabner &lt;grabner@icg.tugraz.at&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch removes experimental code which is no longer used.

Signed-off-by: Markus Grabner &lt;grabner@icg.tugraz.at&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Staging: line6/midi.c: Fixed call of obsolete function strict_strtoul</title>
<updated>2011-12-08T20:32:55+00:00</updated>
<author>
<name>Andor Daam</name>
<email>andor.daam@googlemail.com</email>
</author>
<published>2011-12-05T09:10:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=251c3948808046c39359658fa2faffff45b825d3'/>
<id>251c3948808046c39359658fa2faffff45b825d3</id>
<content type='text'>
The obsolete function strict_strtoul should be replaced by the kstrto*
functions.

In this context kstrtou16 should be use, as midi_mask_receive is only
used as unsigned short. All corresponding datatypes were adapted
accordingly.

Signed-off-by: Andor Daam &lt;andor.daam@googlemail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The obsolete function strict_strtoul should be replaced by the kstrto*
functions.

In this context kstrtou16 should be use, as midi_mask_receive is only
used as unsigned short. All corresponding datatypes were adapted
accordingly.

Signed-off-by: Andor Daam &lt;andor.daam@googlemail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Staging: line6/midi.c: Fixed call of obsolete function strict_strtoul</title>
<updated>2011-12-08T20:32:54+00:00</updated>
<author>
<name>Andor Daam</name>
<email>andor.daam@googlemail.com</email>
</author>
<published>2011-12-05T09:09:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=4d85fae04f23ebbdbbb11061b8eec48082ecdc43'/>
<id>4d85fae04f23ebbdbbb11061b8eec48082ecdc43</id>
<content type='text'>
The function strict_strtoul is obsolete and should be replaced by the
new kstrto* functions.

The variable midi_mask_transmit is only used as unsigned short and the
datatypes of all affected variables were adjusted accordingly.

Signed-off-by: Andor Daam &lt;andor.daam@googlemail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The function strict_strtoul is obsolete and should be replaced by the
new kstrto* functions.

The variable midi_mask_transmit is only used as unsigned short and the
datatypes of all affected variables were adjusted accordingly.

Signed-off-by: Andor Daam &lt;andor.daam@googlemail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
</feed>
