summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2005-08-12 15:18:00 +0200
committerJaroslav Kysela <perex@suse.cz>2005-08-30 08:45:14 +0200
commit71d848ca00a16179b17e58e5f51c2d9a6c4f97a2 (patch)
tree5dd195f2e30f6dbc225b97c03cc52d49a31033b7 /sound
parent[ALSA] usb-audio: fix packets per URB calculation for playback (diff)
downloadlinux-71d848ca00a16179b17e58e5f51c2d9a6c4f97a2.tar.xz
linux-71d848ca00a16179b17e58e5f51c2d9a6c4f97a2.zip
[ALSA] usb-audio: make nrpacks parameter writeable
USB generic driver The nrpacks module parameter is used only when initializing a playback stream, so it doesn't hurt to make it writeable. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Diffstat (limited to 'sound')
-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);
MODULE_PARM_DESC(vid, "Vendor ID for the USB audio device.");
module_param_array(pid, int, NULL, 0444);
MODULE_PARM_DESC(pid, "Product ID for the USB audio device.");
-module_param(nrpacks, int, 0444);
+module_param(nrpacks, int, 0644);
MODULE_PARM_DESC(nrpacks, "Max. number of packets per URB.");
module_param(async_unlink, bool, 0444);
MODULE_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
else
subs->curpacksize = maxsize;
- if (is_playback)
+ if (is_playback) {
urb_packs = nrpacks;
- else
+ urb_packs = max(urb_packs, (unsigned int)MIN_PACKS_URB);
+ urb_packs = min(urb_packs, (unsigned int)MAX_PACKS);
+ } else
urb_packs = 1;
if (snd_usb_get_speed(subs->dev) == USB_SPEED_HIGH)
urb_packs = (urb_packs * 8) >> subs->datainterval;