drivers: musb_gadget: Save endpoint desc to usb_ep->desc
authorqianfan Zhao <qianfanguijin@163.com>
Tue, 16 Nov 2021 00:30:12 +0000 (08:30 +0800)
committerTom Rini <trini@konsulko.com>
Mon, 17 Jan 2022 19:45:24 +0000 (14:45 -0500)
Fix fastboot flash bug.

If the downloading file size is equal to the partition size, "fastboot
flash" can't work, at least in sunxi platform, because used an
uninitalized point: ep->desc.

This patch also fixed 'data abort' bug in am335x platform.

Reproduce: fastboot flash loader1 spl/sunxi-spl.bin.

Signed-off-by: qianfan Zhao <qianfanguijin@163.com>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
drivers/usb/musb-new/musb_gadget.c

index 1fef00b..7cca92b 100644 (file)
@@ -1188,6 +1188,7 @@ static int musb_gadget_enable(struct usb_ep *ep,
        } else
                musb_ep->dma = NULL;
 
+       musb_ep->end_point.desc = desc;
        musb_ep->desc = desc;
        musb_ep->busy = 0;
        musb_ep->wedged = 0;
@@ -1245,9 +1246,7 @@ static int musb_gadget_disable(struct usb_ep *ep)
        }
 
        musb_ep->desc = NULL;
-#ifndef __UBOOT__
        musb_ep->end_point.desc = NULL;
-#endif
 
        /* abort all pending DMA and requests */
        nuke(musb_ep, -ESHUTDOWN);