Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp4477069ybz; Tue, 28 Apr 2020 11:58:33 -0700 (PDT) X-Google-Smtp-Source: APiQypKPXwBUOiITWJxf03n/2waXfNnbG2jL3LpS7RultInYnk4TDo1UIYMyud7s8oWPsausBNkS X-Received: by 2002:aa7:d143:: with SMTP id r3mr17935352edo.147.1588100313747; Tue, 28 Apr 2020 11:58:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588100313; cv=none; d=google.com; s=arc-20160816; b=fMlHpnV1WygUPRQxfZubB0UZ2Oood7qqEmtbF1CGIBEkQRflCNAEckuR6iQ0kUefkd mSjamA9ABh2MMeyYMviUr8I4GJp1LEdEwWKTtQJO8GRwoBUN5KW/VRKBwwBfrrgr1CgO 8CTzk9dnX6qjWBL2w8TtZ3CcPQrj7zR/PbDDpq0bcn25UvSxFBTFZwDJIR1abm+bfmEc 9xguogOKLaZEhH/xFLXRQMBBKjqmlmiIHJt5IDXy3/K89iaO3QMOKMR0aSAB0BD12xeD wLheVdk0zzz+yw1aV+5Af0+SORqPnTlz1Fx0wYvoWfCAyhWm3l3YqVcddmg5tOnzMGoK b5SA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ujhcZ4VsAYEYn1DDsb/o4mQACZZ1tCoCsdKzZhoypcY=; b=JqJ0qGxQQLNYZWEGhEGB5GGfk+8wuTfl5Q1ye1U9/f26IVqf77MdagXMAKFSjD6xFw hFbAg9ohT96GtI++1g5bgoEHOqwWhvFVxjkx/NGgQOeosZJbY8wAwbepvIROzZqE/7BG v5NLRB2la3Dxgol5wT5S/IQq/tW/suXpYlNh9b2OBpCbugAF69q1UwsQHKTEHgxzz4TV WbQPq4oFIkxfNdiPc53CPIeO8y/F387XHh+iaIUq61DAMjZWr6GGakqpWY1jYkJx8nuf pZ5+7pcI+/0liQyVBp06/k/LfjrCTeqw+dkhe4PxeCIpPQV2vuzPaCDLlzolsqxOYM8F 1IUg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=wc6fL052; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e23si2125819edy.578.2020.04.28.11.58.10; Tue, 28 Apr 2020 11:58:33 -0700 (PDT) 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 header.i=@kernel.org header.s=default header.b=wc6fL052; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730400AbgD1S4w (ORCPT + 99 others); Tue, 28 Apr 2020 14:56:52 -0400 Received: from mail.kernel.org ([198.145.29.99]:46408 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729609AbgD1SbG (ORCPT ); Tue, 28 Apr 2020 14:31:06 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 7578B20B80; Tue, 28 Apr 2020 18:31:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1588098665; bh=867do9hTzqcEkt0IFww02ROCovyUlEcrtv9bcwkx+/g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=wc6fL0526WWrpBXCIMhec893SN82qS9XC7PwsYZPwyb4OPfuKUh7xWDTlzoz7Mqc5 tU5IOrti5ouBQFfJqIfP6HpqPMR2ZsY2bDoKGncWKuwmzwffe0cLZgy540/rsxCUHX AlF6ymBVsp9lgL3wsOg6HXGIEvUgrLD1L/zErm9s= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Alan Stern , Zeng Tao , William Bader Subject: [PATCH 5.6 095/167] USB: hub: Revert commit bd0e6c9614b9 ("usb: hub: try old enumeration scheme first for high speed devices") Date: Tue, 28 Apr 2020 20:24:31 +0200 Message-Id: <20200428182237.114346325@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200428182225.451225420@linuxfoundation.org> References: <20200428182225.451225420@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Alan Stern commit 3155f4f40811c5d7e3c686215051acf504e05565 upstream. Commit bd0e6c9614b9 ("usb: hub: try old enumeration scheme first for high speed devices") changed the way the hub driver enumerates high-speed devices. Instead of using the "new" enumeration scheme first and switching to the "old" scheme if that doesn't work, we start with the "old" scheme. In theory this is better because the "old" scheme is slightly faster -- it involves resetting the device only once instead of twice. However, for a long time Windows used only the "new" scheme. Zeng Tao said that Windows 8 and later use the "old" scheme for high-speed devices, but apparently there are some devices that don't like it. William Bader reports that the Ricoh webcam built into his Sony Vaio laptop not only doesn't enumerate under the "old" scheme, it gets hung up so badly that it won't then enumerate under the "new" scheme! Only a cold reset will fix it. Therefore we will revert the commit and go back to trying the "new" scheme first for high-speed devices. Reported-and-tested-by: William Bader Ref: https://bugzilla.kernel.org/show_bug.cgi?id=207219 Signed-off-by: Alan Stern Fixes: bd0e6c9614b9 ("usb: hub: try old enumeration scheme first for high speed devices") CC: Zeng Tao CC: Link: https://lore.kernel.org/r/Pine.LNX.4.44L0.2004221611230.11262-100000@iolanthe.rowland.org Signed-off-by: Greg Kroah-Hartman --- Documentation/admin-guide/kernel-parameters.txt | 3 +-- drivers/usb/core/hub.c | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -5085,8 +5085,7 @@ usbcore.old_scheme_first= [USB] Start with the old device initialization - scheme, applies only to low and full-speed devices - (default 0 = off). + scheme (default 0 = off). usbcore.usbfs_memory_mb= [USB] Memory limit (in MB) for buffers allocated by --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -2728,13 +2728,11 @@ static bool use_new_scheme(struct usb_de { int old_scheme_first_port = port_dev->quirks & USB_PORT_QUIRK_OLD_SCHEME; - int quick_enumeration = (udev->speed == USB_SPEED_HIGH); if (udev->speed >= USB_SPEED_SUPER) return false; - return USE_NEW_SCHEME(retry, old_scheme_first_port || old_scheme_first - || quick_enumeration); + return USE_NEW_SCHEME(retry, old_scheme_first_port || old_scheme_first); } /* Is a USB 3.0 port in the Inactive or Compliance Mode state?