]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
usb: gadget: f_ncm/u_ether: Move 'SKB reserve' quirk setup to u_ether
authorDmitry Osipenko <digetx@gmail.com>
Wed, 16 Aug 2017 10:32:38 +0000 (13:32 +0300)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Fri, 18 Aug 2017 09:29:10 +0000 (12:29 +0300)
That quirk is required to make USB Ethernet gadget working on HW that
can't cope with unaligned DMA. For some reason only f_ncm sets up that
quirk, let's setup it directly in u_ether so other network models would
have that quirk applied as well. All network models have been tested with
ChipIdea UDC driver on NVIDIA Tegra20 SoC that require DMA to be aligned.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/gadget/function/f_ncm.c
drivers/usb/gadget/function/u_ether.c
drivers/usb/gadget/function/u_ether.h

index 24e34cfcb4bd9104b444c47274bf63ca7c868359..45b334ceaf2e399987661652219f6af7032b139c 100644 (file)
@@ -925,8 +925,6 @@ static int ncm_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
                         */
                        ncm->port.is_zlp_ok =
                                gadget_is_zlp_supported(cdev->gadget);
-                       ncm->port.no_skb_reserve =
-                               gadget_avoids_skb_reserve(cdev->gadget);
                        ncm->port.cdc_filter = DEFAULT_FILTER;
                        DBG(cdev, "activate ncm\n");
                        net = gether_connect(&ncm->port);
index a8b40d07e927bb78e835b40efeea9bb83fb19bf8..bdbc3fdc7c4ff4f395cecc1688e9fe58762e2fb0 100644 (file)
@@ -1073,7 +1073,7 @@ struct net_device *gether_connect(struct gether *link)
 
        if (result == 0) {
                dev->zlp = link->is_zlp_ok;
-               dev->no_skb_reserve = link->no_skb_reserve;
+               dev->no_skb_reserve = gadget_avoids_skb_reserve(dev->gadget);
                DBG(dev, "qlen %d\n", qlen(dev->gadget, dev->qmult));
 
                dev->header_len = link->header_len;
index 81d94a7ae4b4da5d04e17a0ea8e98080c4a62da9..c77145bd6b5b94f65b8531f2ab061c2770edbae5 100644 (file)
@@ -64,7 +64,6 @@ struct gether {
        struct usb_ep                   *out_ep;
 
        bool                            is_zlp_ok;
-       bool                            no_skb_reserve;
 
        u16                             cdc_filter;