@@ -52,7 +52,6 @@ static int submit_audio_in_urb(struct snd_line6_pcm *line6pcm)
line6pcm->in.buffer +
index * LINE6_ISO_PACKETS * line6pcm->max_packet_size_in;
urb_in->transfer_buffer_length = urb_size;
- urb_in->context = line6pcm;
ret = usb_submit_urb(urb_in, GFP_ATOMIC);
@@ -280,17 +279,14 @@ int line6_create_audio_in_urbs(struct snd_line6_pcm *line6pcm)
if (urb == NULL)
return -ENOMEM;
- urb->dev = line6->usbdev;
- urb->pipe =
- usb_rcvisocpipe(line6->usbdev,
- line6->properties->ep_audio_r &
- USB_ENDPOINT_NUMBER_MASK);
+ usb_fill_int_urb(urb, line6->usbdev,
+ usb_rcvisocpipe(line6->usbdev,
+ line6->properties->ep_audio_r &
+ USB_ENDPOINT_NUMBER_MASK),
+ NULL, 0, audio_in_callback, line6pcm,
+ LINE6_ISO_INTERVAL);
urb->transfer_flags = URB_ISO_ASAP;
- urb->start_frame = -1;
urb->number_of_packets = LINE6_ISO_PACKETS;
- urb->interval = LINE6_ISO_INTERVAL;
- urb->error_count = 0;
- urb->complete = audio_in_callback;
}
return 0;
@@ -202,7 +202,6 @@ static int submit_audio_out_urb(struct snd_line6_pcm *line6pcm)
line6pcm->out.buffer +
index * LINE6_ISO_PACKETS * line6pcm->max_packet_size_out;
urb_out->transfer_buffer_length = urb_size;
- urb_out->context = line6pcm;
if (test_bit(LINE6_STREAM_PCM, &line6pcm->out.running) &&
!test_bit(LINE6_FLAG_PAUSE_PLAYBACK, &line6pcm->flags)) {
@@ -425,17 +424,14 @@ int line6_create_audio_out_urbs(struct snd_line6_pcm *line6pcm)
if (urb == NULL)
return -ENOMEM;
- urb->dev = line6->usbdev;
- urb->pipe =
- usb_sndisocpipe(line6->usbdev,
- line6->properties->ep_audio_w &
- USB_ENDPOINT_NUMBER_MASK);
+ usb_fill_int_urb(urb, line6->usbdev,
+ usb_sndisocpipe(line6->usbdev,
+ line6->properties->ep_audio_w &
+ USB_ENDPOINT_NUMBER_MASK),
+ NULL, 0, audio_out_callback, line6pcm,
+ LINE6_ISO_INTERVAL);
urb->transfer_flags = URB_ISO_ASAP;
- urb->start_frame = -1;
urb->number_of_packets = LINE6_ISO_PACKETS;
- urb->interval = LINE6_ISO_INTERVAL;
- urb->error_count = 0;
- urb->complete = audio_out_callback;
}
return 0;
Using usb_fill_int_urb() helps to find code which initializes an URB. A grep for members of the struct (like ->complete) reveal lots of other things, too. Data pointer & size is filled out later so they are not considered. Cc: Jaroslav Kysela <perex@perex.cz> Cc: Takashi Iwai <tiwai@suse.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- sound/usb/line6/capture.c | 16 ++++++---------- sound/usb/line6/playback.c | 16 ++++++---------- 2 files changed, 12 insertions(+), 20 deletions(-)