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

Commit c3de8d21 authored by Udipto Goswami's avatar Udipto Goswami Committed by Gerrit - the friendly Code Review server
Browse files

usb: dwc3: Add support of disable L1 in HS mode



On some platforms, L1 in HS mode is not supported.
Add support to disable L1 in HS mode on those
platforms by default through dt.

Change-Id: I624bde1e091e6e864bf7f7af93804c3728374d0d
Signed-off-by: default avatarUdipto Goswami <ugoswami@codeaurora.org>
parent 9585c2cb
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1485,6 +1485,8 @@ static void dwc3_get_properties(struct dwc3 *dwc)
				"snps,dis-tx-ipgap-linecheck-quirk");
	dwc->parkmode_disable_ss_quirk = device_property_read_bool(dev,
				"snps,parkmode-disable-ss-quirk");
	dwc->usb2_l1_disable = device_property_read_bool(dev,
				"snps,usb2-l1-disable");

	dwc->tx_de_emphasis_quirk = device_property_read_bool(dev,
				"snps,tx_de_emphasis_quirk");
+1 −0
Original line number Diff line number Diff line
@@ -1363,6 +1363,7 @@ struct dwc3 {
	unsigned		tx_de_emphasis:2;
	unsigned		err_evt_seen:1;
	unsigned		enable_bus_suspend:1;
	unsigned		usb2_l1_disable:1;

	atomic_t		in_lpm;
	bool			b_suspend;
+1 −1
Original line number Diff line number Diff line
@@ -4369,7 +4369,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
	dwc->gadget.speed		= USB_SPEED_UNKNOWN;
	dwc->gadget.sg_supported	= true;
	dwc->gadget.name		= "dwc3-gadget";
	dwc->gadget.lpm_capable		= true;
	dwc->gadget.lpm_capable		= !dwc->usb2_l1_disable;

	/*
	 * FIXME We might be setting max_speed to <SUPER, however versions
+2 −1
Original line number Diff line number Diff line
@@ -1726,11 +1726,12 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
				count_configs(cdev, USB_DT_DEVICE);
			cdev->desc.bMaxPacketSize0 =
				cdev->gadget->ep0->maxpacket;
				cdev->desc.bcdUSB = cpu_to_le16(0x0200);
			if (gadget_is_superspeed(gadget)) {
				if (gadget->speed >= USB_SPEED_SUPER) {
					cdev->desc.bcdUSB = cpu_to_le16(0x0320);
					cdev->desc.bMaxPacketSize0 = 9;
				} else {
				} else if (gadget->lpm_capable) {
					cdev->desc.bcdUSB = cpu_to_le16(0x0210);
				}
			} else {