Re: [PATCH v2 5/5] usb: gadget: mass_storage: allow for deeper queue lengths

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux