diff options
Diffstat (limited to 'drivers/staging/line6')
-rw-r--r-- | drivers/staging/line6/playback.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/staging/line6/playback.c b/drivers/staging/line6/playback.c index 4192cd9..3431f5c 100644 --- a/drivers/staging/line6/playback.c +++ b/drivers/staging/line6/playback.c @@ -138,7 +138,8 @@ static int submit_audio_out_urb(struct snd_pcm_substream *substream) } } - if ((line6pcm->pos_out += urb_frames) >= runtime->buffer_size) + line6pcm->pos_out += urb_frames; + if (line6pcm->pos_out >= runtime->buffer_size) line6pcm->pos_out -= runtime->buffer_size; urb_out->transfer_buffer_length = urb_size; @@ -281,7 +282,8 @@ static void audio_out_callback(struct urb *urb) if (!shutdown) { submit_audio_out_urb(substream); - if ((line6pcm->bytes_out += length) >= line6pcm->period_out) { + line6pcm->bytes_out += length; + if (line6pcm->bytes_out >= line6pcm->period_out) { line6pcm->bytes_out -= line6pcm->period_out; snd_pcm_period_elapsed(substream); } |