summaryrefslogtreecommitdiffstats
path: root/sound/usb/line6/capture.c
diff options
context:
space:
mode:
authorAndrej Krutak <dev@andree.sk>2016-09-18 20:59:25 +0200
committerTakashi Iwai <tiwai@suse.de>2016-09-19 23:00:37 +0200
commitf56742cc41895b1ed3742406dc3587b0d6424acb (patch)
tree8c359bd99c6905273dc9968c4de13c895010e1e6 /sound/usb/line6/capture.c
parentALSA: line6: Allow different channel numbers for in/out (diff)
downloadlinux-f56742cc41895b1ed3742406dc3587b0d6424acb.tar.xz
linux-f56742cc41895b1ed3742406dc3587b0d6424acb.zip
ALSA: line6: Add LINE6_CAP_IN_NEEDS_OUT, a void playback stream during capture
E.g. POD X3 seems to require playback data to be sent to it to generate capture data. Otherwise the device stalls and doesn't send any more capture data until it's reset. Signed-off-by: Andrej Krutak <dev@andree.sk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb/line6/capture.c')
-rw-r--r--sound/usb/line6/capture.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/usb/line6/capture.c b/sound/usb/line6/capture.c
index 0228cb4bdfcf..7c812565f90d 100644
--- a/sound/usb/line6/capture.c
+++ b/sound/usb/line6/capture.c
@@ -232,6 +232,8 @@ static int snd_line6_capture_open(struct snd_pcm_substream *substream)
if (err < 0)
return err;
+ line6_pcm_acquire(line6pcm, LINE6_STREAM_CAPTURE_HELPER, false);
+
runtime->hw = line6pcm->properties->capture_hw;
return 0;
}
@@ -239,6 +241,9 @@ static int snd_line6_capture_open(struct snd_pcm_substream *substream)
/* close capture callback */
static int snd_line6_capture_close(struct snd_pcm_substream *substream)
{
+ struct snd_line6_pcm *line6pcm = snd_pcm_substream_chip(substream);
+
+ line6_pcm_release(line6pcm, LINE6_STREAM_CAPTURE_HELPER);
return 0;
}