Received: by 2002:a25:d7c1:0:0:0:0:0 with SMTP id o184csp235768ybg; Thu, 17 Oct 2019 22:07:18 -0700 (PDT) X-Google-Smtp-Source: APXvYqyqclVnvm2YkFwBMwv4M6aJ2aZGW0oqTQ5mhu9quF3WhIGMoYo53PNjbuXi2/pgz1Fri7sV X-Received: by 2002:a05:6402:14d6:: with SMTP id f22mr7856609edx.148.1571375238505; Thu, 17 Oct 2019 22:07:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571375238; cv=none; d=google.com; s=arc-20160816; b=w/SP/yEH9n/3OzI1Djycly6TLbrv3QUhQ+6fGQWo2SU+9XdPwPPA8TP3Ac9rOKAJ6C 5wL+98WjCNTNiOxpGfc+pewPQEgLnom9ZXAUCH8OFKAQ0+z038AbX/gkXq9YfL+ag+Ig GflYFHuPlB3aw91vhV5PBhoXe+FkFJhHNoxfd/ur9RskEb5VnaQ7Q5wOablAN6RAPava lu/PYOVN0WQWc7E1y8GMaIdpOmer2nHcPTTkrS0Vmp8E3jd40Z0Xi1VALuqwvEj4OOpC qD1nOD9a6N8ZgupmgEgqvtHSe7yw8DDNJkokXUrig43PD1KCRTPI2W22X4XsGxqt4cmY Q8Tg== 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=l/mVxx7Bc9PIpcvqgBokZdiJ1jls5GiqhhCPrQnFP2E=; b=eUHwu8ASNM00Xb84TdtdurYUEqZFD3nfKr5Dnkx9u+e4A1uLxNSAgSTv8F4GioIgOg R9f5Yt+qC8gklpT1FtD5FPBHCp8MFAkpn92rcMmFrUaBWvTVl9AW7VJ7i3hGl7Qxq1FS gAS83btfBPk4j5GQYBHdTZznAYKYdGzIWR5z3gFAO14Vm/KlaxPZDbWznav3l9Jj/MGu xsiAz4N+nHwEO02s0dNC8Z+d7Tn0CKcVIiVs/HgnlUjF56ni4JYrzqkOhZYaFCAaxXTS wTT+1GFMKuwXUurpfDg61/ND8mBahiMlskDV/2dNi4TayvJup87bi0Rdb2PljHim2tM2 al1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="fR/g7huk"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g23si2680545ejk.186.2019.10.17.22.06.55; Thu, 17 Oct 2019 22:07:18 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="fR/g7huk"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2407639AbfJPWWY (ORCPT + 99 others); Wed, 16 Oct 2019 18:22:24 -0400 Received: from mail.kernel.org ([198.145.29.99]:41998 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2437497AbfJPVxR (ORCPT ); Wed, 16 Oct 2019 17:53:17 -0400 Received: from localhost (unknown [192.55.54.58]) (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 E5DEB21A49; Wed, 16 Oct 2019 21:53:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1571262797; bh=f5umoON5O7p/oyVQf6vH3mRhGZFhmXF8Ui1yyCgKYHw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fR/g7hukAFYb+qHJ8buxdf8Rvs/U1lwWCkLLZEFqsKAOsilHcGl/DzqZqIOklKVPS ery6PyS8R1jJR/KJDBQPPbFgVymcGx7DJpIeCTYvknpukhwpvKON4YlEl+wY3Gdw39 Eqcr3wXD1pnydmKlZsAF6V53aFwdHCmiQFIM6oeE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Rick Tseng , Mathias Nyman Subject: [PATCH 4.4 36/79] usb: xhci: wait for CNR controller not ready bit in xhci resume Date: Wed, 16 Oct 2019 14:50:11 -0700 Message-Id: <20191016214759.581844372@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191016214729.758892904@linuxfoundation.org> References: <20191016214729.758892904@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: Rick Tseng commit a70bcbc322837eda1ab5994d12db941dc9733a7d upstream. NVIDIA 3.1 xHCI card would lose power when moving power state into D3Cold. Thus we need to wait for CNR bit to clear in xhci resume, just as in xhci init. [Minor changes to comment and commit message -Mathias] Cc: Signed-off-by: Rick Tseng Signed-off-by: Mathias Nyman Link: https://lore.kernel.org/r/1570190373-30684-6-git-send-email-mathias.nyman@linux.intel.com Signed-off-by: Greg Kroah-Hartman --- drivers/usb/host/xhci.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -1041,6 +1041,18 @@ int xhci_resume(struct xhci_hcd *xhci, b hibernated = true; if (!hibernated) { + /* + * Some controllers might lose power during suspend, so wait + * for controller not ready bit to clear, just as in xHC init. + */ + retval = xhci_handshake(&xhci->op_regs->status, + STS_CNR, 0, 10 * 1000 * 1000); + if (retval) { + xhci_warn(xhci, "Controller not ready at resume %d\n", + retval); + spin_unlock_irq(&xhci->lock); + return retval; + } /* step 1: restore register */ xhci_restore_registers(xhci); /* step 2: initialize command ring buffer */