Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp1375799ybp; Thu, 17 Oct 2019 11:51:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqyzVI2gyP7e0CUjgp9hBn9O0ZTALLKh7IZBrYVfQY33FXDjn5+GbmF9KieI9Pd1jMri7sUv X-Received: by 2002:a05:6402:13c9:: with SMTP id a9mr5320387edx.141.1571338305150; Thu, 17 Oct 2019 11:51:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571338305; cv=none; d=google.com; s=arc-20160816; b=yaq4JUIpbu4+m3KuQ5isvhrm+p60Df4r+H+JgYikhCEQPupE9w3S8CnlwhXQvJvAsq vP2YokZiXtwxDdkwN6iZmtrjvOw8eWt/ENPzSQokSx41VN6lN0+Jbq6T0Of1RrKp8cf4 T7JmqSpXC6sQkWV9zwQ1NVzvodxYXnwz4KA3EIOH/Uy6tG5Lv9RTl+zCDnC807w4MYPV eNoI5G5XDCmGI5sK0mpIOT5Jcdp/X6R509gPZl/OHngU7+89UB9QFpt70cZ9pQKLCil/ 1Il5SHmuCO+fubnfaERN6dk3xM9zohHfpNNRiY/TlL7PeHDTh8inuBUQbsQ0V1GJULwA mMSw== 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=sRrJfQI7O1LTWYDwhvB2Lw53kIZiX7z5vn7+kQJOXeE=; b=sYBWF57ah7lWvBsQZFAcFxpsFC6h1u8oV997up24bdWfyD5HXOVWsiCQ5f316jhuYC GJqRhHJKvLncfbWJkwrX+bzIySqjFbEWyVvUK1H4HAx3F+rlWeKp//ZNfja53FLVwd9D 8GmGGqwPvzEUx1rbeuecG3PMfHUNf2KD8QAUkcfLEO1Vs1SImJcHzdBvJ36lDHh5+jJH FWq0DQV3OXBishZ9Bd44cIP0uRLJjxmvI8N6txq3Bw8ieCkJNr1T2jO1hygElwT6GMol CX/4BP9dqzbdvPhTkx1lcIJgyF/92AxrhrsOuStH83UHRvsyX061r1gLh8kcHW6208DE X8zQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=MrjHYQ31; 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 h3si1871202ejt.380.2019.10.17.11.51.21; Thu, 17 Oct 2019 11:51:45 -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=MrjHYQ31; 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 S2407268AbfJPWLR (ORCPT + 99 others); Wed, 16 Oct 2019 18:11:17 -0400 Received: from mail.kernel.org ([198.145.29.99]:48956 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2437924AbfJPV4u (ORCPT ); Wed, 16 Oct 2019 17:56:50 -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 8562F21925; Wed, 16 Oct 2019 21:56:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1571263009; bh=BakXtVNyWxfe6/6cNUyEpr7kiZiRERaM4EkEd9adm7w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MrjHYQ31+PRoLRWDOnF6Q+H4bNorriRjz7/fC5CRprVOVFSgtq67WsMjY2QHF3jvw UqOeO5Vh6OLROtNs9zpzbJI3PZTPRFAharsv/oRiSVIHLwJJqqr5LzmxG+Jys6ft0r PMGtq3l0gteBLNXLOdvMbMtKeXMONOcsTfEwtUSY= 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.19 12/81] usb: xhci: wait for CNR controller not ready bit in xhci resume Date: Wed, 16 Oct 2019 14:50:23 -0700 Message-Id: <20191016214817.920493885@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191016214805.727399379@linuxfoundation.org> References: <20191016214805.727399379@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 @@ -1098,6 +1098,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 */