From 2f637ee42d4a60e1c3823beff3699354bd4400be Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Sat, 10 Dec 2011 02:12:28 +0100 Subject: staging: line6: fix playback urb transfer buffer calculation 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 Signed-off-by: Markus Grabner Signed-off-by: Greg Kroah-Hartman 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; -- cgit v0.10.2