aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb/usbaudio.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/usb/usbaudio.c')
-rw-r--r--sound/usb/usbaudio.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c
index d28106e390c4..49075f06f846 100644
--- a/sound/usb/usbaudio.c
+++ b/sound/usb/usbaudio.c
@@ -79,7 +79,7 @@ module_param_array(vid, int, NULL, 0444);
79MODULE_PARM_DESC(vid, "Vendor ID for the USB audio device."); 79MODULE_PARM_DESC(vid, "Vendor ID for the USB audio device.");
80module_param_array(pid, int, NULL, 0444); 80module_param_array(pid, int, NULL, 0444);
81MODULE_PARM_DESC(pid, "Product ID for the USB audio device."); 81MODULE_PARM_DESC(pid, "Product ID for the USB audio device.");
82module_param(nrpacks, int, 0444); 82module_param(nrpacks, int, 0644);
83MODULE_PARM_DESC(nrpacks, "Max. number of packets per URB."); 83MODULE_PARM_DESC(nrpacks, "Max. number of packets per URB.");
84module_param(async_unlink, bool, 0444); 84module_param(async_unlink, bool, 0444);
85MODULE_PARM_DESC(async_unlink, "Use async unlink mode."); 85MODULE_PARM_DESC(async_unlink, "Use async unlink mode.");
@@ -920,9 +920,11 @@ static int init_substream_urbs(snd_usb_substream_t *subs, unsigned int period_by
920 else 920 else
921 subs->curpacksize = maxsize; 921 subs->curpacksize = maxsize;
922 922
923 if (is_playback) 923 if (is_playback) {
924 urb_packs = nrpacks; 924 urb_packs = nrpacks;
925 else 925 urb_packs = max(urb_packs, (unsigned int)MIN_PACKS_URB);
926 urb_packs = min(urb_packs, (unsigned int)MAX_PACKS);
927 } else
926 urb_packs = 1; 928 urb_packs = 1;
927 if (snd_usb_get_speed(subs->dev) == USB_SPEED_HIGH) 929 if (snd_usb_get_speed(subs->dev) == USB_SPEED_HIGH)
928 urb_packs = (urb_packs * 8) >> subs->datainterval; 930 urb_packs = (urb_packs * 8) >> subs->datainterval;