hi, On Tue, Sep 15, 2015 at 03:24:19PM -0400, Alan Stern wrote: > > @@ -2662,7 +2662,7 @@ EXPORT_SYMBOL_GPL(fsg_common_put); > > /* check if fsg_num_buffers is within a valid range */ > > static inline int fsg_num_buffers_validate(unsigned int fsg_num_buffers) > > { > > - if (fsg_num_buffers >= 2 && fsg_num_buffers <= 4) > > + if (fsg_num_buffers >= 2 && fsg_num_buffers <= 32) > > return 0; > > pr_err("fsg_num_buffers %u is out of range (%d to %d)\n", > > fsg_num_buffers, 2, 4); > > You should fix up this pr_err() statement accordingly. Maybe #define a > preprocessor symbol for the upper limit. 8<----------------------------------------------------------------------- From b1ede0faf6e4961842f80e5e2fc1bf5373fef235 Mon Sep 17 00:00:00 2001 From: Felipe Balbi <balbi@xxxxxx> Date: Tue, 15 Sep 2015 09:39:45 -0500 Subject: [PATCHv3] usb: gadget: mass_storage: allow for deeper queue lengths Instead of allowing a range of 2 to 4 requests, let's allow the user choose up to 32 requests as that will give us a better chance of keeping controller busy. We still maintain default of 2 so users shouldn't be affected. Signed-off-by: Felipe Balbi <balbi@xxxxxx> --- changes since v2: - fix pr_err() - add max_num_buffers macro drivers/usb/gadget/Kconfig | 2 +- drivers/usb/gadget/function/f_mass_storage.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig index bcf83c0a6e62..33834aa09ed4 100644 --- a/drivers/usb/gadget/Kconfig +++ b/drivers/usb/gadget/Kconfig @@ -113,7 +113,7 @@ config USB_GADGET_VBUS_DRAW config USB_GADGET_STORAGE_NUM_BUFFERS int "Number of storage pipeline buffers" - range 2 4 + range 2 32 default 2 help Usually 2 buffers are enough to establish a good buffering diff --git a/drivers/usb/gadget/function/f_mass_storage.c b/drivers/usb/gadget/function/f_mass_storage.c index a6eb537d7768..ef3a1164b58c 100644 --- a/drivers/usb/gadget/function/f_mass_storage.c +++ b/drivers/usb/gadget/function/f_mass_storage.c @@ -2662,10 +2662,12 @@ EXPORT_SYMBOL_GPL(fsg_common_put); /* check if fsg_num_buffers is within a valid range */ static inline int fsg_num_buffers_validate(unsigned int fsg_num_buffers) { - if (fsg_num_buffers >= 2 && fsg_num_buffers <= 4) +#define FSG_MAX_NUM_BUFFERS 32 + + if (fsg_num_buffers >= 2 && fsg_num_buffers <= FGS_MAX_NUM_BUFFERS) return 0; pr_err("fsg_num_buffers %u is out of range (%d to %d)\n", - fsg_num_buffers, 2, 4); + fsg_num_buffers, 2, FSG_MAX_NUM_BUFFERS); return -EINVAL; } -- 2.5.0 -- balbi
Attachment:
signature.asc
Description: Digital signature