Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp1049492ybp; Thu, 17 Oct 2019 07:20:58 -0700 (PDT) X-Google-Smtp-Source: APXvYqy5OZEA0pCLHJxsT/96vd+81n4xpYdmlQbMCMj6+CBmLvKbzhCtp452AMwahKPdThHkPBYG X-Received: by 2002:a17:906:f258:: with SMTP id gy24mr3785164ejb.25.1571322058531; Thu, 17 Oct 2019 07:20:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571322058; cv=none; d=google.com; s=arc-20160816; b=RoopEeBWoCm9Wc/CHYa2jGPBPykyThAhUqWL773Bccrx98hB4u+T2x3XADHj37HWDf 5DaFKEjofT0RuffiCeoPr7vkYHVrp74ZgIAq4rGKfivfrbhH40y/5PzcIg+wZitjFtVw S4sws6YPEgIeYljUTqLh3WGllEnIU2FdUJjWn1bxnDaw0sozzQXj2KJtKN9W3M4ur79p 3UnCQ8d/VWkLqf9ZENlZAAh6OsuQMpJ3bpjwLxhsRcPf213o8v2STrwGXI+saoNRvWq8 oOM4Y50PZcQhE1Z29HRrm9IGZUqCw4KNVPAveRgR9yX6lrqKxzM7Lm6YEYoKgHqM4ccv kO4g== 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=y/3yCx5+M9kY3wp60Crtx/LM+cPyvKubqoeRJhTbh0c=; b=o3SM7DbTpfimTIMBtHC+1ZKqU3O/62SM4gU7aC0ju1P1rpVY5HmWsUKuORIc/GBiKh sroTevNoHL7aZzCbCw8AnEo4Uxi6ZWDWoBfg2+xCQw1rqMAnEjie/PHrEkc1RZw0R/My LTb/YvBIzr6yNgg67r1MUiqyuGIjU0tcGxBM4o+6wIcXVY8LpwfvRW8CcGfrfsW2hPU4 uYQHIYqJ/oRnfU1qmsugQWkQ1v/IzhRdBYjEkwMbkce/RBIdW7rStSxGGriLbachVbaB qLhRNZ0FntxvvI9E/w0o/Ol6I4PDOrebQHnlqTmSug9ZcWqNiQz4wzKMTA6N4PZxeudz pU5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=r3cc0Lqb; 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 m39si1686469edc.243.2019.10.17.07.20.34; Thu, 17 Oct 2019 07:20:58 -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=r3cc0Lqb; 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 S2395080AbfJPVyw (ORCPT + 99 others); Wed, 16 Oct 2019 17:54:52 -0400 Received: from mail.kernel.org ([198.145.29.99]:44904 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2395077AbfJPVyt (ORCPT ); Wed, 16 Oct 2019 17:54:49 -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 C525621925; Wed, 16 Oct 2019 21:54:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1571262888; bh=P5NtuhAKJT/bg8hSfmlpvsSZBTc9coutHozqB4XXYcY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=r3cc0LqbgLurJqsCZMJK54LR+aLnBXE10OhT/cr8V6X7ArLlto+eC5NUIDHdISVbw 8EEVDl9L9BvVjruIp2sgyXnfqx1uRnbxpqDSJH4Y2neLEU7FvucxWPjBo45amyHEv+ VPWz7TzxQc+mlQ/LXCXswhST90l4u0PF4rI8Uwog= 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.9 45/92] usb: xhci: wait for CNR controller not ready bit in xhci resume Date: Wed, 16 Oct 2019 14:50:18 -0700 Message-Id: <20191016214833.875184728@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191016214759.600329427@linuxfoundation.org> References: <20191016214759.600329427@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 @@ -1045,6 +1045,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 */