usb: musb: Fix transmission of bigger buffers
authorPali Rohár <pali@kernel.org>
Sun, 7 Feb 2021 13:50:07 +0000 (14:50 +0100)
committerMarek Vasut <marex@denx.de>
Wed, 3 Mar 2021 03:12:46 +0000 (04:12 +0100)
commitea7125c4c6d25bbaf7927efc753357e64612bffb
tree01c5e66ea4afa119a43fbfd61e86fe6c956b8dbf
parent7d7ae28c8b568ff1db38f7520b8ae892b4d93eee
usb: musb: Fix transmission of bigger buffers

If udc_endpoint_write() was called with bigger payload which does not fit
into one USB packet it is needed to transmit payload in more USB packets.
First packet is transmitted by udc_endpoint_write() call itself and other
packets are put into waiting queue.

Implement function musb_peri_tx() which checks if endpoints are ready for
transmit and continue transmission of waiting queue.

This patch fixes sending big output from printenv command over usbtty
serial console.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Acked-by: Pavel Machek <pavel@ucw.cz>>
drivers/usb/musb/musb_udc.c