diff mbox series

[4/4] usb: musb: Ensure that we set musb dynamic FIFO buffer for every endpoint

Message ID 20201226182851.18493-5-pali@kernel.org
State Not Applicable
Delegated to: Lukasz Majewski
Headers show
Series usbtty/musb: Fix file transfers | expand

Commit Message

Pali Rohár Dec. 26, 2020, 6:28 p.m. UTC
If we do not set FIFO buffer address and size for some endpoint which is in
use then default address 0x0 would be used which is in conflict with FIFO
buffer for endpoint 0 which is at fixed address 0x0. Sharing address space
between more endpoint cause data loss and unexpected errors.

This patch is fixing transmission of characters over usbtty serial console
and allow using of usbtty for debugging purposes on Nokia N900.

Signed-off-by: Pali Rohár <pali@kernel.org>
---
 drivers/usb/musb/musb_udc.c | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)
diff mbox series

Patch

diff --git a/drivers/usb/musb/musb_udc.c b/drivers/usb/musb/musb_udc.c
index 50d8bc319c..ea1284850e 100644
--- a/drivers/usb/musb/musb_udc.c
+++ b/drivers/usb/musb/musb_udc.c
@@ -875,18 +875,8 @@  void udc_setup_ep(struct usb_device_instance *device, unsigned int id,
 		ep0_endpoint->endpoint_address = 0xff;
 		ep0_urb = usbd_alloc_urb(device, endpoint);
 	} else if (MAX_ENDPOINT >= id) {
-		int ep_addr;
-
-		/* Check the direction */
-		ep_addr = endpoint->endpoint_address;
-		if (USB_DIR_IN == (ep_addr & USB_ENDPOINT_DIR_MASK)) {
-			/* IN */
-			epinfo[(id * 2) + 1].epsize = endpoint->tx_packetSize;
-		} else {
-			/* OUT */
-			epinfo[id * 2].epsize = endpoint->rcv_packetSize;
-		}
-
+		epinfo[(id * 2) + 0].epsize = endpoint->rcv_packetSize;
+		epinfo[(id * 2) + 1].epsize = endpoint->tx_packetSize;
 		musb_configure_ep(&epinfo[0], ARRAY_SIZE(epinfo));
 	} else {
 		if (debug_level > 0)