OSDN Git Service

usb: bdc: driver runs out of buffer descriptors on large ADB transfers
authorAl Cooper <alcooperx@gmail.com>
Wed, 22 Jul 2020 17:07:44 +0000 (13:07 -0400)
committerFelipe Balbi <balbi@kernel.org>
Fri, 24 Jul 2020 13:45:14 +0000 (16:45 +0300)
Version v1.0.40 of the Android host ADB software increased maximum
transfer sizes from 256K to 1M. Since the STB ADB gadget driver
requests only 16K at a time, the BDC driver ran out of buffer
descriptors (BDs) if the queuing happens faster than the incoming
16K transfers. This issue is fixed by doubling the number of BDs
that can be queued so that the entire 1M request can be queued
without running out of buffers.

Signed-off-by: Al Cooper <alcooperx@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
drivers/usb/gadget/udc/bdc/bdc.h

index 6e1e881..ac75e25 100644 (file)
@@ -44,7 +44,7 @@
 #define NUM_SR_ENTRIES 64
 
 /* Num of bds per table */
-#define NUM_BDS_PER_TABLE      32
+#define NUM_BDS_PER_TABLE      64
 
 /* Num of tables in bd list for control,bulk and Int ep */
 #define NUM_TABLES     2