Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp3369736pxb; Mon, 9 Nov 2020 09:22:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJyonW5eo7ud3D8nSrhs1i25X5qw1eJUWrSTXD7Ei6ol15OTXdxmC/BYkSaEWyk3S5rHYuXr X-Received: by 2002:a17:906:6c93:: with SMTP id s19mr16628988ejr.544.1604942573110; Mon, 09 Nov 2020 09:22:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604942573; cv=none; d=google.com; s=arc-20160816; b=kjrHchxKTJHMFY7vtFpKVS841Fl6ra5oOTef38svpFQZrvjJlvrADmGolSvKBKanX2 OcVdpyRVVWXW3vaZ0OABOlggtQzw6+cetOjXsESd1dE52aRnAvvo/Fo35r1hkr4dnkBh iVHkf7FJ19714tzPvXOD9LZFpHcziYLuFRTTgrRKy4aUBdL4tGUMGDmSReXaL3bsissx D0WG48YgdOEVhOKj2t+DaFdnEXao+0Iwj9YJG3sWWEDyOiYdfvLMwNKc/WccID078cVp rOC718gGUdEEyqUrSrkfQlD1Ij8z0sXT1oztGS8f0f9gNyDpd6z/XyhQi8b2nA/ZgUnX 6w/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:dkim-signature:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from; bh=K99h23gugfP4Evxq0Qx1iksWffmd1YF23yjNhOHjM18=; b=aV6yRNsLOKklQ21UNmVejn/PM6yItx2ykorOvaZWVAppGwfuZslD3WYZqNQc2ARuL2 AlXCtXPMoonbX59WmXEm8KeA+Jzwtew3cTEBTeaW2G3PyRzmOWoA/uXnhxI6M6Xa82f9 ly7aYvDnKIxBRaI8vo7nowhzKmaLbptRx+lBaz74Yk1wazSOQBUiFb8SxaaZQIskiMDF K3rNnM/X75JA3RFvWinfSWXIqI3CuF0aYaoeTkCaWSf9kgY6SzhVDOUpLh/10v1R4z2I wCIlcGAJRT9MO5FKHnIRSOjrcIDY8ihsgL0KY9EHgrP3odmsvI/XOjXKixznVmDtaC9Q P6Ig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nvidia.com header.s=n1 header.b=XrFDO2ot; 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=pass (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v17si7837208ejh.77.2020.11.09.09.22.29; Mon, 09 Nov 2020 09:22:53 -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; dkim=pass header.i=@nvidia.com header.s=n1 header.b=XrFDO2ot; 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=pass (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731384AbgKIRU1 (ORCPT + 99 others); Mon, 9 Nov 2020 12:20:27 -0500 Received: from hqnvemgate25.nvidia.com ([216.228.121.64]:1384 "EHLO hqnvemgate25.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729999AbgKIRU1 (ORCPT ); Mon, 9 Nov 2020 12:20:27 -0500 Received: from hqmail.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate25.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Mon, 09 Nov 2020 09:20:22 -0800 Received: from HQMAIL105.nvidia.com (172.20.187.12) by HQMAIL111.nvidia.com (172.20.187.18) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Mon, 9 Nov 2020 17:20:22 +0000 Received: from vidyas-desktop.nvidia.com (10.124.1.5) by mail.nvidia.com (172.20.187.12) with Microsoft SMTP Server id 15.0.1473.3 via Frontend Transport; Mon, 9 Nov 2020 17:20:18 +0000 From: Vidya Sagar To: , , , , , , , CC: , , , , , , Subject: [PATCH V4 6/6] PCI: tegra: Disable LTSSM during L2 entry Date: Mon, 9 Nov 2020 22:49:37 +0530 Message-ID: <20201109171937.28326-7-vidyas@nvidia.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201109171937.28326-1-vidyas@nvidia.com> References: <20201109171937.28326-1-vidyas@nvidia.com> X-NVConfidentiality: public MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1604942422; bh=K99h23gugfP4Evxq0Qx1iksWffmd1YF23yjNhOHjM18=; h=From:To:CC:Subject:Date:Message-ID:X-Mailer:In-Reply-To: References:X-NVConfidentiality:MIME-Version:Content-Type; b=XrFDO2otaP7S6Uk1pWnkv/2zx2P3DOrGFJ6BusH33HbJi8LpoorPUDIofWMyCIn25 ypnaJZkepwI+8wyYA+MWa195Z1CeyrLs1GJM6x7iWxp265N/DYAqO5Sh+o36+4I9Gk /BvoHWYgnzr5UtNb9meiwzUTdg7LvdwDHijrVxI6sHpni0NQ00f6FbqkvZRG6JbCwE C1KObnvEVUCpDajvW+/cSFAr/QeD23c/vAE7VdSjrMeH0/8V9rJ/UWKCZaDJs/rpDz JFwoIHhMRnU88EQ4h0KifSs3z9Jeyqsp1v675XGbn8XHk1ZeGz22SwYgvBoC46OLOb 3DoNoliyC5dNw== Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PCIe cards like Marvell SATA controller and some of the Samsung NVMe drives don't support taking the link to L2 state. When the link doesn't go to L2 state, Tegra194 requires the LTSSM to be disabled to allow PHY to start the next link up process cleanly during suspend/resume sequence. Failing to disable LTSSM results in the PCIe link not coming up in the next resume cycle. Signed-off-by: Vidya Sagar --- V4: * New patch in this series drivers/pci/controller/dwc/pcie-tegra194.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c index 8c08998b9ce1..57ff0657bbe2 100644 --- a/drivers/pci/controller/dwc/pcie-tegra194.c +++ b/drivers/pci/controller/dwc/pcie-tegra194.c @@ -1513,6 +1513,14 @@ static void tegra_pcie_dw_pme_turnoff(struct tegra_pcie_dw *pcie) data &= ~APPL_PINMUX_PEX_RST; appl_writel(pcie, data, APPL_PINMUX); + /* + * Some cards do not go to detect state even after de-asserting + * PERST#. So, de-assert LTSSM to bring link to detect state. + */ + data = readl(pcie->appl_base + APPL_CTRL); + data &= ~APPL_CTRL_LTSSM_EN; + writel(data, pcie->appl_base + APPL_CTRL); + err = readl_poll_timeout_atomic(pcie->appl_base + APPL_DEBUG, data, ((data & @@ -1520,14 +1528,8 @@ static void tegra_pcie_dw_pme_turnoff(struct tegra_pcie_dw *pcie) APPL_DEBUG_LTSSM_STATE_SHIFT) == LTSSM_STATE_PRE_DETECT, 1, LTSSM_TIMEOUT); - if (err) { + if (err) dev_info(pcie->dev, "Link didn't go to detect state\n"); - } else { - /* Disable LTSSM after link is in detect state */ - data = appl_readl(pcie, APPL_CTRL); - data &= ~APPL_CTRL_LTSSM_EN; - appl_writel(pcie, data, APPL_CTRL); - } } /* * DBI registers may not be accessible after this as PLL-E would be -- 2.17.1