Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp712466ybz; Wed, 15 Apr 2020 17:17:21 -0700 (PDT) X-Google-Smtp-Source: APiQypI3F20XUl9FrF6cS+K/uc5dI5Gx7RcOoKO/q9VgQAVuEMCsykHUTpXTQgbo708saepiZ7NA X-Received: by 2002:a17:906:496:: with SMTP id f22mr7259723eja.311.1586996241645; Wed, 15 Apr 2020 17:17:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586996241; cv=none; d=google.com; s=arc-20160816; b=0yBih56+RFCsiXQzX0g978hRVlJmq30Y77D1X7Hs4FT68+UAfKKgiemmQIvBeremwo d+zCP09/UjLjU85S6xY+bEeRNcQAxjrvITo7/ks7Kwd+SmeaHFraofmcE5pPur4nFpEJ gevtfd9FMXsEgI9C4XanpWg9NbjIDOdfSCQbuPC96EbIlhb7HkakXOVp3PuKr+Hmfur2 8sJw1ovPJqsuFOMDoI+Q5+Wf3YRtavvCCbJNW4cToqeNC75BfNzc78HGru8uANAHmh1l 6ioO+Fo5H+S7E5STvsomxHrm9SEZNqpb4pL8y6ApllEHsTndqnSv8SjG5ZO6WWJ2iypG PTJg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=P+ccoKStVdRinIe5CFRBLNO9JHKbY3AzPmhrB2uvndo=; b=YAWv2sgLoPL/snIE2DfQy6unHQDXXhrogEBrjNEldMutmt0dJe3jJpFXSPTaRZyzEt PYUM5tcZmvC7/Z9/aqIlkmcyQdgiFoKKVt9BqEGwD/leGp+XhVFkT5SgkncnW/XjCmV+ 3X2K5B6jJmG29f3vdExsCac35RdrJS0yxLjZAT+dJbJzz5cgcR8rJDMrY9+8XUsCi5EX ck1P8anM1LIBhKKk4m99jXnIJwsEh9F8iwq8Byt0oCHCOm+rrr0Y1Yo5OsSHxPll+vYZ xJz4eHobyTGoIpTElHAUvPEnTbMLcNVZcX7g9CozEekSER/Ft6P3LT6DbqSK1M/uXyc7 Bl+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=aaonqigE; 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=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p1si9362167ejw.313.2020.04.15.17.16.57; Wed, 15 Apr 2020 17:17:21 -0700 (PDT) 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=@kernel.org header.s=default header.b=aaonqigE; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2410070AbgDOQCH (ORCPT + 99 others); Wed, 15 Apr 2020 12:02:07 -0400 Received: from mail.kernel.org ([198.145.29.99]:52436 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1415143AbgDOQB2 (ORCPT ); Wed, 15 Apr 2020 12:01:28 -0400 Received: from pali.im (pali.im [31.31.79.79]) (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 8699E2137B; Wed, 15 Apr 2020 16:01:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1586966487; bh=qo96f8y7Ue3uthU1Q4HKKMi97vHqkzY5w+REOuqCXMQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aaonqigEYT5dMYmA3jOv/SCvtJ7IFgBOwME1O7eG4Px6MM/tN35uGtsFHQU8m3Joo cftOVLOp8D2S55eENIK9OS24i0O9f09lSVZPZ0DVH+8gMAMZUN8msOnVHrw+WoibHY mKojLMJcvI3erCXx459yhdfw86/pA8JlUeQY189E= Received: by pali.im (Postfix) id 8ECC49CC; Wed, 15 Apr 2020 18:01:25 +0200 (CEST) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: Jason Cooper , Andrew Lunn , Gregory Clement , Sebastian Hesselbarth , Rob Herring , Thomas Petazzoni , Lorenzo Pieralisi , Andrew Murray , Bjorn Helgaas , Remi Pommarel , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Tomasz Maciej Nowak , Xogium Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org Subject: [PATCH 3/8] PCI: aardvark: Start link training immediately after enabling link training Date: Wed, 15 Apr 2020 18:00:49 +0200 Message-Id: <20200415160054.951-4-pali@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200415160054.951-1-pali@kernel.org> References: <20200415160054.951-1-pali@kernel.org> 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 Adding even 100ms (PCI_PM_D3COLD_WAIT) delay between enabling link training and starting link training cause that some Compex WLE900VX cards are not detected. So move code for enabling link training after PCI_PM_D3COLD_WAIT delay. This change fixes Compex WLE900VX cards detection on Turris MOX after cold boot. Fixes: f4c7d053d7f7 ("PCI: aardvark: Wait for endpoint to be ready before training link") Signed-off-by: Pali Rohár --- drivers/pci/controller/pci-aardvark.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c index ad4f0fa57624..756b31c4d20b 100644 --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c @@ -322,11 +322,6 @@ static void advk_pcie_setup_hw(struct advk_pcie *pcie) reg |= LANE_COUNT_1; advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG); - /* Enable link training */ - reg = advk_readl(pcie, PCIE_CORE_CTRL0_REG); - reg |= LINK_TRAINING_EN; - advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG); - /* Enable MSI */ reg = advk_readl(pcie, PCIE_CORE_CTRL2_REG); reg |= PCIE_CORE_CTRL2_MSI_ENABLE; @@ -368,6 +363,16 @@ static void advk_pcie_setup_hw(struct advk_pcie *pcie) */ msleep(PCI_PM_D3COLD_WAIT); + /* + * Do "Enable link training" and "Start link training" in a row without + * any delay between them. Adding even 100ms delay (PCI_PM_D3COLD_WAIT) + * cause that some Compex WLE900VX cards are not detected. + */ + + /* Enable link training */ + reg = advk_readl(pcie, PCIE_CORE_CTRL0_REG); + reg |= LINK_TRAINING_EN; + advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG); /* Start link training */ reg = advk_readl(pcie, PCIE_CORE_LINK_CTRL_STAT_REG); reg |= PCIE_CORE_LINK_TRAINING; -- 2.20.1