- 29 1月, 2015 1 次提交
-
-
由 Takashi Iwai 提交于
Just reformatting the comments and typos fixed, no functional changes. Particularly, - avoid the kerneldoc marker "/**", - reduce multiple comment lines into single lines, - corrected wrongly referred function names Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 28 1月, 2015 4 次提交
-
-
由 Takashi Iwai 提交于
Both playback and capture callbacks are identical, so let's merge them. Tested-by: NChris Rorvick <chris@rorvick.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
The current code deals with the stream start / stop solely via line6_pcm_acquire() and line6_pcm_release(). This was (supposedly) intended to avoid the races, but it doesn't work as expected. The concurrent acquire and release calls can be performed without proper protections, thus this might result in memory corruption. Furthermore, we can't take a mutex to protect the whole function because it can be called from the PCM trigger callback that is an atomic context. Also spinlock isn't appropriate because the function allocates with kmalloc with GFP_KERNEL. That is, these function just lead to singular problems. This is an attempt to reduce the existing races. First off, separate both the stream buffer management and the stream URB management. The former is protected via a newly introduced state_mutex while the latter is protected via each line6_pcm_stream lock. Secondly, the stream state are now managed in opened and running bit flags of each line6_pcm_stream. Not only this a bit clearer than previous combined bit flags, this also gives a better abstraction. These rewrites allows us to make common hw_params and hw_free callbacks for both playback and capture directions. For the monitor and impulse operations, still line6_pcm_acquire() and line6_pcm_release() are used. They call internally the corresponding functions for both playback and capture streams with proper lock or mutex. Unlike the previous versions, these function don't take the bit masks but the only single type value. Also they are supposed to be applied only as duplex operations. Tested-by: NChris Rorvick <chris@rorvick.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
Introduce a new line6_pcm_stream structure and group individual fields of snd_line6_pcm struct to playback and capture groups. This patch itself just does rename and nothing else. More meaningful cleanups based on these fields shuffling will follow. Tested-by: NChris Rorvick <chris@rorvick.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
The trigger callback is already spinlocked, so we need no more lock here (even for the linked substreams). Let's drop it. Tested-by: NChris Rorvick <chris@rorvick.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 20 1月, 2015 3 次提交
-
-
由 Chris Rorvick 提交于
The driver version string was removed in an ealier commit for being useless. These are equally useless. Signed-off-by: NChris Rorvick <chris@rorvick.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Chris Rorvick 提交于
The correct spelling includes the space. Fix this in strings and comments that refer to the manufacturer. Signed-off-by: NChris Rorvick <chris@rorvick.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
Instead of sysfs and the conditional build with Kconfig, implement the handling of the impulse response controls via control API, and always enable the build. Two new controls, "Impulse Response Volume" and "Impulse Response Period" are added as a replacement for the former sysfs files. Tested-by: NChris Rorvick <chris@rorvick.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 13 1月, 2015 4 次提交
-
-
由 Takashi Iwai 提交于
Promote line6 driver from staging to sound/usb/line6 directory, and maintain through sound subsystem tree. This commit just moves the code and adapts Makefile / Kconfig. The further renames and misc cleanups will follow. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Chris Rorvick 提交于
The device type can now be used to determine the addresses of the audio endpoints for the interface. Drop the conditional logic and make these values properties. Signed-off-by: NChris Rorvick <chris@rorvick.com> Reviewed-by: NStefan Hajnoczi <stefanha@gmail.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Chris Rorvick 提交于
The `device_bit' member was no longer used as of commit 28079044 (staging: line6: drop MIDI parameter sysfs attrs). Signed-off-by: NChris Rorvick <chris@rorvick.com> Reviewed-by: NStefan Hajnoczi <stefanha@gmail.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Jonas Lundqvist 提交于
Fix three space prohibited errors in pcm.h found by checkpatch.pl. Signed-off-by: NJonas Lundqvist <jonas@gannon.se> Reviewed-by: NJeremiah Mahler <jmmahler@gmail.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 14 11月, 2012 1 次提交
-
-
由 Stefan Hajnoczi 提交于
Signed-off-by: NStefan Hajnoczi <stefanha@gmail.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 10 2月, 2012 2 次提交
-
-
由 Markus Grabner 提交于
There are several features of the Line6 USB driver which require PCM data to be exchanged with the device: *) PCM playback and capture via ALSA *) software monitoring (for devices without hardware monitoring) *) optional impulse response measurement However, from the device's point of view, there is just a single capture and playback stream, which must be shared between these subsystems. It is therefore necessary to maintain the state of the subsystems with respect to PCM usage. We define several constants of the form LINE6_BIT_PCM_<subsystem>_<direction>_<resource> with the following meanings: *) <subsystem> is one of -) ALSA: PCM playback and capture via ALSA -) MONITOR: software monitoring -) IMPULSE: optional impulse response measurement *) <direction> is one of -) PLAYBACK: audio output (from host to device) -) CAPTURE: audio input (from device to host) *) <resource> is one of -) BUFFER: buffer required by PCM data stream -) STREAM: actual PCM data stream The subsystems call line6_pcm_acquire() to acquire the (shared) resources needed for a particular operation (e.g., allocate the buffer for ALSA playback or start the capture stream for software monitoring). When a resource is no longer needed, it is released by calling line6_pcm_release(). Buffer allocation and stream startup are handled separately to allow the ALSA kernel driver to perform them at appropriate places (since the callback which starts a PCM stream is not allowed to sleep). Signed-off-by: NMarkus Grabner <grabner@icg.tugraz.at> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Markus Grabner 提交于
Signed-off-by: NMarkus Grabner <grabner@icg.tugraz.at> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 10 12月, 2011 1 次提交
-
-
由 Stefan Hajnoczi 提交于
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: NStefan Hajnoczi <stefanha@gmail.com> Signed-off-by: NMarkus Grabner <grabner@icg.tugraz.at> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 09 12月, 2011 1 次提交
-
-
由 Markus Grabner 提交于
This patch removes experimental code which is no longer used. Signed-off-by: NMarkus Grabner <grabner@icg.tugraz.at> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 22 9月, 2010 1 次提交
-
-
由 Greg Kroah-Hartman 提交于
This fixes up all of the remaining coding style issues that make any sense to make in the line6 driver. Cc: Markus Grabner <grabner@icg.tugraz.at> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 01 9月, 2010 2 次提交
-
-
由 Markus Grabner 提交于
Everything should be in sync now. Signed-off-by: NMarkus Grabner <grabner@icg.tugraz.at> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Markus Grabner 提交于
Big upstream sync. Signed-off-by: NMarkus Grabner <grabner@icg.tugraz.at> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 04 4月, 2009 2 次提交
-
-
由 Greg Kroah-Hartman 提交于
Mostly all line length issues. Skipped the control.h file as it makes sense to leave it alone. Cc: Markus Grabner <grabner@icg.tugraz.at> Cc: Mariusz Kozlowski <m.kozlowski@tuxland.pl> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Markus Grabner 提交于
This is an experimental Linux driver for the guitar amp, cab, and effects modeller PODxt Pro by Line6 (and similar devices), supporting the following features: - Reading/writing individual parameters - Reading/writing complete channel, effects setup, and amp setup data - Channel switching - Virtual MIDI interface - Tuner access - Playback/capture/mixer device for any ALSA-compatible PCM audio application - Signal routing (record clean/processed guitar signal, re-amping) Moreover, preliminary support for the Variax Workbench is included. From: Markus Grabner <grabner@icg.tugraz.at> Cc: Mariusz Kozlowski <m.kozlowski@tuxland.pl> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-