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

Commit 0159c368 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "usb: gadget: Disable L1 LPM capability"

parents dd73f488 628fd947
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2926,6 +2926,7 @@ static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc)
	reg = dwc3_readl(dwc->regs, DWC3_DSTS);
	speed = reg & DWC3_DSTS_CONNECTSPD;
	dwc->speed = speed;
	dwc->gadget.l1_supported = true;

	dwc3_update_ram_clk_sel(dwc, speed);

@@ -2954,6 +2955,7 @@ static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc)
	case DWC3_DCFG_HIGHSPEED:
		dwc3_gadget_ep0_desc.wMaxPacketSize = cpu_to_le16(64);
		dwc->gadget.ep0->maxpacket = 64;
		dwc->gadget.l1_supported = false;
		dwc->gadget.speed = USB_SPEED_HIGH;
		break;
	case DWC3_DCFG_FULLSPEED2:
+11 −3
Original line number Diff line number Diff line
@@ -23,6 +23,10 @@

#include "u_os_desc.h"

static bool enable_l1_for_hs;
module_param(enable_l1_for_hs, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(enable_l1_for_hs, "Enable support for L1 LPM for HS devices");

/**
 * struct usb_os_string - represents OS String to be reported by a gadget
 * @bLength: total length of the entire descritor, always 0x12
@@ -1621,8 +1625,11 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
				if (gadget->speed >= USB_SPEED_SUPER) {
					cdev->desc.bcdUSB = cpu_to_le16(0x0300);
					cdev->desc.bMaxPacketSize0 = 9;
				} else {
				} else if (gadget->l1_supported ||
						enable_l1_for_hs) {
					cdev->desc.bcdUSB = cpu_to_le16(0x0210);
					DBG(cdev,
					"Config HS device with LPM(L1)\n");
				}
			} else if (gadget->l1_supported) {
				cdev->desc.bcdUSB = cpu_to_le16(0x0210);
@@ -1657,8 +1664,9 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
				value = min(w_length, (u16) value);
			break;
		case USB_DT_BOS:
			if (gadget_is_superspeed(gadget) ||
				gadget->l1_supported) {
			if ((gadget_is_superspeed(gadget) &&
				(gadget->speed >= USB_SPEED_SUPER))
				 || gadget->l1_supported) {
				value = bos_desc(cdev);
				value = min(w_length, (u16) value);
			}