usb: renesas_usbhs: set quirk_avoids_skb_reserve if USB-DMAC is used
authorYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Mon, 22 Aug 2016 08:48:28 +0000 (17:48 +0900)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Wed, 31 Aug 2016 07:06:04 +0000 (10:06 +0300)
This patch sets the quirk_avoids_skb_reserve flag to improve performance
of a network gadget driver (e.g. f_ncm.c) if USB-DMAC is used.

For example (on r8a7795 board + f_ncm.c + iperf udp mode / receiving):
  - without this patch:  90.3 Mbits/sec
  - with    this patch: 273   Mbits/sec

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/renesas_usbhs/mod_gadget.c

index 8e326ac00c9fedb61afbc315b8acce7b2cc71348..5732998de92afb1379f558653c1e9b52a03a1edc 100644 (file)
@@ -1102,6 +1102,8 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
        gpriv->gadget.name              = "renesas_usbhs_udc";
        gpriv->gadget.ops               = &usbhsg_gadget_ops;
        gpriv->gadget.max_speed         = USB_SPEED_HIGH;
+       gpriv->gadget.quirk_avoids_skb_reserve = usbhs_get_dparam(priv,
+                                                               has_usb_dmac);
 
        INIT_LIST_HEAD(&gpriv->gadget.ep_list);