38 lines
1.5 KiB
Diff
38 lines
1.5 KiB
Diff
From: Stefan Hajnoczi <stefanha@gmail.com>
|
|
Date: Sat, 10 Dec 2011 02:12:28 +0100
|
|
Subject: [013/106] staging: line6: fix playback urb transfer buffer
|
|
calculation
|
|
|
|
commit 2f637ee42d4a60e1c3823beff3699354bd4400be upstream.
|
|
|
|
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 <stefanha@gmail.com>
|
|
Signed-off-by: Markus Grabner <grabner@icg.tugraz.at>
|
|
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
---
|
|
drivers/staging/line6/playback.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/staging/line6/playback.c b/drivers/staging/line6/playback.c
|
|
index ed1b9bd..b17c0a7 100644
|
|
--- a/drivers/staging/line6/playback.c
|
|
+++ b/drivers/staging/line6/playback.c
|
|
@@ -192,7 +192,7 @@ static int submit_audio_out_urb(struct snd_line6_pcm *line6pcm)
|
|
urb_frames = urb_size / bytes_per_frame;
|
|
urb_out->transfer_buffer =
|
|
line6pcm->buffer_out +
|
|
- line6pcm->max_packet_size * line6pcm->index_out;
|
|
+ LINE6_ISO_PACKETS * line6pcm->max_packet_size * line6pcm->index_out;
|
|
urb_out->transfer_buffer_length = urb_size;
|
|
urb_out->context = line6pcm;
|
|
|