Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e9ab4d0a authored by Mian Yousaf Kaukab's avatar Mian Yousaf Kaukab Committed by Felipe Balbi
Browse files

usb: gadget: autoconf: net2280: match hardware and usb ep address



USB3380 GPEP can be used in IN and OUT directions however, both
directions should use same endpoint address. Fulfil this requirement
by mapping usb endpoint to hardware endpoint with the same address.

Tested-by: default avatarRicardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: default avatarMian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent c65c4f05
Loading
Loading
Loading
Loading
+17 −7
Original line number Diff line number Diff line
@@ -258,7 +258,10 @@ struct usb_ep *usb_ep_autoconfig_ss(
	/* First, apply chip-specific "best usage" knowledge.
	 * This might make a good usb_gadget_ops hook ...
	 */
	if (gadget_is_net2280 (gadget) && type == USB_ENDPOINT_XFER_INT) {
	if (gadget_is_net2280(gadget)) {
		char name[8];

		if (type == USB_ENDPOINT_XFER_INT) {
			/* ep-e, ep-f are PIO with only 64 byte fifos */
			ep = find_ep(gadget, "ep-e");
			if (ep && ep_matches(gadget, ep, desc, ep_comp))
@@ -266,7 +269,14 @@ struct usb_ep *usb_ep_autoconfig_ss(
			ep = find_ep(gadget, "ep-f");
			if (ep && ep_matches(gadget, ep, desc, ep_comp))
				goto found_ep;
		}

		/* USB3380: use same address for usb and hardware endpoints */
		snprintf(name, sizeof(name), "ep%d%s", usb_endpoint_num(desc),
				usb_endpoint_dir_in(desc) ? "in" : "out");
		ep = find_ep(gadget, name);
		if (ep && ep_matches(gadget, ep, desc, ep_comp))
			goto found_ep;
	} else if (gadget_is_goku (gadget)) {
		if (USB_ENDPOINT_XFER_INT == type) {
			/* single buffering is enough */