Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp220530pxb; Mon, 8 Nov 2021 12:29:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJwV6rlx2vKPQnwjDazGKMN3mvmUfslcS6vT/T9gOB9ZA8iAhLAgL+18hv5zFPr9yL1p7i2w X-Received: by 2002:a17:907:1c15:: with SMTP id nc21mr2507701ejc.510.1636403393666; Mon, 08 Nov 2021 12:29:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1636403393; cv=none; d=google.com; s=arc-20160816; b=oeDS3agdmkBjosSbRri9C0SdnQZPGxy4uskGRimBiC25WW3fJNgvWHBHR3qrWW6BdG K3wJI+V78I3XjiwE62KVNmUDrcJuL4aJLu4yfp8BTl6pHHzgiXqhWtTKoLXHscO43XzZ WRd2G5zvZBXH5pGK6YhEsy5bCnclfx1GznB4SbquDzOgorZDlng4BIh89/swnJMr192N P3xc9En/hi7/m/TuRSMQzfFBudeLkBT+888T4v+PZ1QXZHCQStTcpdmEqcn+VL4c5kDP 9dQU8rGwf6n0mxRb8kK2dV9rEpes4ELgBWMx0Rc7yEomy6DaTrcC6KW73PFX+2twXVeX PW/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=tsPEec06c/evSYUwBeagvZhXkAdm4gzB53uPqsCl3+c=; b=ztD+wKdp1HtA40I/8ZaYWKk6ObtzpkRzDKrdhjdE/rfeODkGW6L2iYUo/9SUmHvOQL PMFk3YoVw5VSc+Ya/p6ruPOpurgTk8Nyntk7RJzLpeajNDHX+RPa0Aqp+wyB06gsC7c4 Kso6uTaZTAsgNxC3cJTSRqZnX+oaZcA5DTnjnz79DTzqFJdbYjxrx9m/ogKTUdS6WMEe 9ohqgsnWtOZhz7Jlj+Rd1NU9bbusRSBVzFgfIm/8rKCi4rybD4MlDpGkTsHyGny75tV/ ORCctBrPm0BS1ry9FHGB2MX4s+F0fCr/QV8FUqGoU2oqklYO7GKwxKTePzEgW9DxcSru pRDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@metanate.com header.s=stronger header.b=Gp5DYwJr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=metanate.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o17si38259817ejy.596.2021.11.08.12.29.06; Mon, 08 Nov 2021 12:29:53 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@metanate.com header.s=stronger header.b=Gp5DYwJr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=metanate.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240572AbhKHOrp (ORCPT + 99 others); Mon, 8 Nov 2021 09:47:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44764 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240562AbhKHOrn (ORCPT ); Mon, 8 Nov 2021 09:47:43 -0500 Received: from metanate.com (unknown [IPv6:2001:8b0:1628:5005::111]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1DE31C061570; Mon, 8 Nov 2021 06:44:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=metanate.com; s=stronger; h=In-Reply-To:Content-Type:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description; bh=tsPEec06c/evSYUwBeagvZhXkAdm4gzB53uPqsCl3+c=; b=Gp5DY wJrsjnHyxwFXvB/JNmO6eTfO9hvWDp5Mq/Y4fnRmunO8aDtJ5wpUXGh9sBJ843n1rhcDsNv9ZNaq+ xb/ezo40P2ire7qA+qQWGq7Flryjz+CHUq9dpYabe3QqUZElnVWOG3HGj/mBy9HXBBS+ADJfD7KKI 0LugtgkjB65eiIWkwNC3ts85uH7m+p+D28nAlGsIVI8FWiFFXBs/9MBXvFf4rNa26ihcfqmN/Tg7T dEjwgXH6G58yHOQrEGdZq9o0yGYICvs6L5DzfC/S8Jom35z8lOxVKPV7sUg3SI4WAXZ1gmrSCEln2 6KxShESwEFuhZb3+mTlrT/sxownow==; Received: from [81.174.171.191] (helo=donbot) by email.metanate.com with esmtpsa (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1mk5tG-0004qs-Rs; Mon, 08 Nov 2021 14:44:54 +0000 Date: Mon, 8 Nov 2021 14:44:53 +0000 From: John Keeping To: Minas Harutyunyan Cc: Greg Kroah-Hartman , "linux-usb@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH] usb: dwc2: gadget: respect driver's max_speed Message-ID: References: <20211105172304.1308458-1-john@metanate.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Authenticated: YES Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Nov 08, 2021 at 07:56:50AM +0000, Minas Harutyunyan wrote: > On 11/5/2021 9:23 PM, John Keeping wrote: > > UDCs should not enumerate faster than the max_speed set by the gadget > > driver. Use this to further restrict the speed set in the DWC2 > > parameters so that the device will not connect faster than is supported > > by the gadget driver. > > > > For configfs-based composite devices this can be set via the max_speed > > configfs file. > > > > Signed-off-by: John Keeping > > Acked-by: Minas Harutyunyan Actually, this isn't needed following commit 5324bad66f09 ("usb: dwc2: gadget: implement udc_set_speed()") - I should have tested on something more recent than 5.10. There are still some problems in this area for dwc2 platforms that do not support high-speed, but this patch is not the fix for them. Please drop this. Sorry for the noise, John > > --- > > drivers/usb/dwc2/gadget.c | 18 +++++++++++++++++- > > 1 file changed, 17 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c > > index 744539b78f6c..1f39c2f1be8e 100644 > > --- a/drivers/usb/dwc2/gadget.c > > +++ b/drivers/usb/dwc2/gadget.c > > @@ -3377,6 +3377,7 @@ void dwc2_hsotg_core_init_disconnected(struct dwc2_hsotg *hsotg, > > u32 val; > > u32 usbcfg; > > u32 dcfg = 0; > > + u8 speed; > > int ep; > > > > /* Kill any ep0 requests as controller will be reinitialized */ > > @@ -3418,7 +3419,22 @@ void dwc2_hsotg_core_init_disconnected(struct dwc2_hsotg *hsotg, > > > > dcfg |= DCFG_EPMISCNT(1); > > > > - switch (hsotg->params.speed) { > > + speed = hsotg->params.speed; > > + if (hsotg->driver) { > > + switch (hsotg->driver->max_speed) { > > + case USB_SPEED_LOW: > > + speed = DWC2_SPEED_PARAM_LOW; > > + break; > > + case USB_SPEED_FULL: > > + if (speed != USB_SPEED_LOW) > > + speed = DWC2_SPEED_PARAM_FULL; > > + break; > > + default: > > + break; > > + } > > + } > > + > > + switch (speed) { > > case DWC2_SPEED_PARAM_LOW: > > dcfg |= DCFG_DEVSPD_LS; > > break; > > >