ALSA: line6: Use guard() for spin locks
Clean up the code using guard() for spin locks. Merely code refactoring, and no behavior change. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
d20cce1ca5
commit
bdcdb4e7aa
@ -145,8 +145,6 @@ void line6_capture_check_period(struct snd_line6_pcm *line6pcm, int length)
|
||||
static void audio_in_callback(struct urb *urb)
|
||||
{
|
||||
int i, index, length = 0, shutdown = 0;
|
||||
unsigned long flags;
|
||||
|
||||
struct snd_line6_pcm *line6pcm = (struct snd_line6_pcm *)urb->context;
|
||||
|
||||
line6pcm->in.last_frame = urb->start_frame;
|
||||
@ -156,7 +154,7 @@ static void audio_in_callback(struct urb *urb)
|
||||
if (urb == line6pcm->in.urbs[index])
|
||||
break;
|
||||
|
||||
spin_lock_irqsave(&line6pcm->in.lock, flags);
|
||||
guard(spinlock_irqsave)(&line6pcm->in.lock);
|
||||
|
||||
for (i = 0; i < LINE6_ISO_PACKETS; ++i) {
|
||||
char *fbuf;
|
||||
@ -211,8 +209,6 @@ static void audio_in_callback(struct urb *urb)
|
||||
test_bit(LINE6_STREAM_PCM, &line6pcm->in.running))
|
||||
line6_capture_check_period(line6pcm, length);
|
||||
}
|
||||
|
||||
spin_unlock_irqrestore(&line6pcm->in.lock, flags);
|
||||
}
|
||||
|
||||
/* open capture callback */
|
||||
|
||||
@ -286,31 +286,30 @@ static void line6_data_received(struct urb *urb)
|
||||
{
|
||||
struct usb_line6 *line6 = (struct usb_line6 *)urb->context;
|
||||
struct midi_buffer *mb = &line6->line6midi->midibuf_in;
|
||||
unsigned long flags;
|
||||
int done;
|
||||
|
||||
if (urb->status == -ESHUTDOWN)
|
||||
return;
|
||||
|
||||
if (line6->properties->capabilities & LINE6_CAP_CONTROL_MIDI) {
|
||||
spin_lock_irqsave(&line6->line6midi->lock, flags);
|
||||
done =
|
||||
line6_midibuf_write(mb, urb->transfer_buffer, urb->actual_length);
|
||||
scoped_guard(spinlock_irqsave, &line6->line6midi->lock) {
|
||||
done =
|
||||
line6_midibuf_write(mb, urb->transfer_buffer, urb->actual_length);
|
||||
|
||||
if (done < urb->actual_length) {
|
||||
line6_midibuf_ignore(mb, done);
|
||||
dev_dbg(line6->ifcdev, "%d %d buffer overflow - message skipped\n",
|
||||
done, urb->actual_length);
|
||||
if (done < urb->actual_length) {
|
||||
line6_midibuf_ignore(mb, done);
|
||||
dev_dbg(line6->ifcdev, "%d %d buffer overflow - message skipped\n",
|
||||
done, urb->actual_length);
|
||||
}
|
||||
}
|
||||
spin_unlock_irqrestore(&line6->line6midi->lock, flags);
|
||||
|
||||
for (;;) {
|
||||
spin_lock_irqsave(&line6->line6midi->lock, flags);
|
||||
done =
|
||||
line6_midibuf_read(mb, line6->buffer_message,
|
||||
LINE6_MIDI_MESSAGE_MAXLEN,
|
||||
LINE6_MIDIBUF_READ_RX);
|
||||
spin_unlock_irqrestore(&line6->line6midi->lock, flags);
|
||||
scoped_guard(spinlock_irqsave, &line6->line6midi->lock) {
|
||||
done =
|
||||
line6_midibuf_read(mb, line6->buffer_message,
|
||||
LINE6_MIDI_MESSAGE_MAXLEN,
|
||||
LINE6_MIDIBUF_READ_RX);
|
||||
}
|
||||
|
||||
if (done <= 0)
|
||||
break;
|
||||
|
||||
@ -72,7 +72,6 @@ static void line6_midi_transmit(struct snd_rawmidi_substream *substream)
|
||||
*/
|
||||
static void midi_sent(struct urb *urb)
|
||||
{
|
||||
unsigned long flags;
|
||||
int status;
|
||||
int num;
|
||||
struct usb_line6 *line6 = (struct usb_line6 *)urb->context;
|
||||
@ -84,7 +83,7 @@ static void midi_sent(struct urb *urb)
|
||||
if (status == -ESHUTDOWN)
|
||||
return;
|
||||
|
||||
spin_lock_irqsave(&line6->line6midi->lock, flags);
|
||||
guard(spinlock_irqsave)(&line6->line6midi->lock);
|
||||
num = --line6->line6midi->num_active_send_urbs;
|
||||
|
||||
if (num == 0) {
|
||||
@ -94,8 +93,6 @@ static void midi_sent(struct urb *urb)
|
||||
|
||||
if (num == 0)
|
||||
wake_up(&line6->line6midi->send_wait);
|
||||
|
||||
spin_unlock_irqrestore(&line6->line6midi->lock, flags);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -158,17 +155,14 @@ static int line6_midi_output_close(struct snd_rawmidi_substream *substream)
|
||||
static void line6_midi_output_trigger(struct snd_rawmidi_substream *substream,
|
||||
int up)
|
||||
{
|
||||
unsigned long flags;
|
||||
struct usb_line6 *line6 =
|
||||
line6_rawmidi_substream_midi(substream)->line6;
|
||||
|
||||
line6->line6midi->substream_transmit = substream;
|
||||
spin_lock_irqsave(&line6->line6midi->lock, flags);
|
||||
guard(spinlock_irqsave)(&line6->line6midi->lock);
|
||||
|
||||
if (line6->line6midi->num_active_send_urbs == 0)
|
||||
line6_midi_transmit(substream);
|
||||
|
||||
spin_unlock_irqrestore(&line6->line6midi->lock, flags);
|
||||
}
|
||||
|
||||
static void line6_midi_output_drain(struct snd_rawmidi_substream *substream)
|
||||
|
||||
@ -182,11 +182,10 @@ static void line6_buffer_release(struct snd_line6_pcm *line6pcm,
|
||||
static int line6_stream_start(struct snd_line6_pcm *line6pcm, int direction,
|
||||
int type)
|
||||
{
|
||||
unsigned long flags;
|
||||
struct line6_pcm_stream *pstr = get_stream(line6pcm, direction);
|
||||
int ret = 0;
|
||||
|
||||
spin_lock_irqsave(&pstr->lock, flags);
|
||||
guard(spinlock_irqsave)(&pstr->lock);
|
||||
if (!test_and_set_bit(type, &pstr->running) &&
|
||||
!(pstr->active_urbs || pstr->unlink_urbs)) {
|
||||
pstr->count = 0;
|
||||
@ -199,7 +198,6 @@ static int line6_stream_start(struct snd_line6_pcm *line6pcm, int direction,
|
||||
|
||||
if (ret < 0)
|
||||
clear_bit(type, &pstr->running);
|
||||
spin_unlock_irqrestore(&pstr->lock, flags);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -207,21 +205,20 @@ static int line6_stream_start(struct snd_line6_pcm *line6pcm, int direction,
|
||||
static void line6_stream_stop(struct snd_line6_pcm *line6pcm, int direction,
|
||||
int type)
|
||||
{
|
||||
unsigned long flags;
|
||||
struct line6_pcm_stream *pstr = get_stream(line6pcm, direction);
|
||||
|
||||
spin_lock_irqsave(&pstr->lock, flags);
|
||||
clear_bit(type, &pstr->running);
|
||||
if (!pstr->running) {
|
||||
spin_unlock_irqrestore(&pstr->lock, flags);
|
||||
line6_unlink_audio_urbs(line6pcm, pstr);
|
||||
spin_lock_irqsave(&pstr->lock, flags);
|
||||
if (direction == SNDRV_PCM_STREAM_CAPTURE) {
|
||||
line6pcm->prev_fbuf = NULL;
|
||||
line6pcm->prev_fsize = 0;
|
||||
}
|
||||
scoped_guard(spinlock_irqsave, &pstr->lock) {
|
||||
clear_bit(type, &pstr->running);
|
||||
if (pstr->running)
|
||||
return;
|
||||
}
|
||||
|
||||
line6_unlink_audio_urbs(line6pcm, pstr);
|
||||
if (direction == SNDRV_PCM_STREAM_CAPTURE) {
|
||||
guard(spinlock_irqsave)(&pstr->lock);
|
||||
line6pcm->prev_fbuf = NULL;
|
||||
line6pcm->prev_fsize = 0;
|
||||
}
|
||||
spin_unlock_irqrestore(&pstr->lock, flags);
|
||||
}
|
||||
|
||||
/* common PCM trigger callback */
|
||||
|
||||
Loading…
Reference in New Issue
Block a user