Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp2876936pxu; Sat, 19 Dec 2020 05:04:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJwZMe7ZPmTtkLns07QOzg3ctcRATqnZRjydDP6aCQrdZ+CanuH+ZMI3cIqWTwf0gnjyDYxN X-Received: by 2002:a17:906:2c54:: with SMTP id f20mr8413371ejh.318.1608383079660; Sat, 19 Dec 2020 05:04:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608383079; cv=none; d=google.com; s=arc-20160816; b=ReWvFBE3j0GOIMh1zTQHpoTIJA3geVSot13+L6aNiWsj81hJ9YgHNSSaTxX/s3VP1v t2l1RZ3yhiDmFvZS6rkfNfCC/dtP9EyD4zFReE+AKleZ60r34jVDMYcu4KjA63VAX8or J4nN3Xm0lR9vlhJ2QgLo4dHqx+sw0xy/kNyYNzMZRB9DL9V2npnmFKRAz9nKij/BoiIj /aO1G6pIz6sOHbkn23x7xJ7Uq0T7Ei32Jnnr/1eSY48N0DO5A3CaZLySNZLkxZInAvNT XI23NxYm/2xIERDAiaPyTkkl5q1H2J4CXMFgC5N73T65fyRxqCA3ctUxTT0X2DU6HMQb m2ig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from; bh=+TZhDK+sLKhKvOWpTnolxOSbaygOO0vnoRXMcStnl/U=; b=W43XZYJakSi5nPbM/zqHO1xG/TIfWZI6qGDjTO60C5sHi9N7NM2629Q3NVxrlo4Hm2 JSWBlSLd3Dfq7/krn1oC49RXa/tHi860bl5JqgqLqpfrpWlxVTo5MFEa8UzNb6oDuwVD TQeumhLUYjARutRGzgL3d3CdJ7Z7Jd4pnk3EvwmL7+uGt9jR1SwIKyUlwwRlkFJa5myo kUouuHktzq6+OBADTx0nSGsrB4B+OyUp/px7NWWElisy4lOo+xxYYTSF+Gp7OPBCuu80 YYA1fhMSd+Ll0cQdKIN35iI4hdYLYzxi0e00gnKiHOjaTitN4o4lrazs72VJl2EDydfz MQGQ== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t11si6179770ejr.335.2020.12.19.05.04.17; Sat, 19 Dec 2020 05:04:39 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727290AbgLSNCp (ORCPT + 99 others); Sat, 19 Dec 2020 08:02:45 -0500 Received: from mail.kernel.org ([198.145.29.99]:45308 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726761AbgLSM66 (ORCPT ); Sat, 19 Dec 2020 07:58:58 -0500 From: Greg Kroah-Hartman Authentication-Results: mail.kernel.org; dkim=permerror (bad message/signature format) To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Li Jun , Mathias Nyman Subject: [PATCH 5.9 39/49] xhci: Give USB2 ports time to enter U3 in bus suspend Date: Sat, 19 Dec 2020 13:58:43 +0100 Message-Id: <20201219125346.578741877@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201219125344.671832095@linuxfoundation.org> References: <20201219125344.671832095@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Li Jun commit c1373f10479b624fb6dba0805d673e860f1b421d upstream. If a USB2 device wakeup is not enabled/supported the link state may still be in U0 in xhci_bus_suspend(), where it's then manually put to suspended U3 state. Just as with selective suspend the device needs time to enter U3 suspend before continuing with further suspend operations (e.g. system suspend), otherwise we may enter system suspend with link state in U0. [commit message rewording -Mathias] Cc: Signed-off-by: Li Jun Signed-off-by: Mathias Nyman Link: https://lore.kernel.org/r/20201208092912.1773650-6-mathias.nyman@linux.intel.com Signed-off-by: Greg Kroah-Hartman --- drivers/usb/host/xhci-hub.c | 4 ++++ 1 file changed, 4 insertions(+) --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c @@ -1712,6 +1712,10 @@ retry: hcd->state = HC_STATE_SUSPENDED; bus_state->next_statechange = jiffies + msecs_to_jiffies(10); spin_unlock_irqrestore(&xhci->lock, flags); + + if (bus_state->bus_suspended) + usleep_range(5000, 10000); + return 0; }